国税庁法人番号公表サイトの、法人番号システムWeb-APIを利用して法人名を入力すると法人番号、商号、本店所在地が出力されるようにならないかなと作ってみました。
国税庁法人番号公表サイト「法人番号システムWeb-API」
https://www.houjin-bangou.nta.go.jp/webapi/
アプリケーションIDの発行手続
https://www.invoice-kohyo.nta.go.jp/web-api/pre-reg
Web-APIを利用するためには、国税庁が発行するアプリケーションIDが必要です(アプリケーションIDの発行は無料です。)。アプリケーションID発行届出はアプリケーションID発行届出フォームに必要事項を入力し、送信をすることにより行うことが可能です。
アプリケーションID発行届出フォームへは仮登録後に国税庁から送信されるメールに記載されているURLからアクセスすることが可能です。なお、このサイトから取得したアプリケーションIDは「法人番号システムWeb-API」においても利用することが可能です。
今回は、Excelで作ってみました。GoogleスプレッドシートのGoogle Apps Script(GAS)や、プログラム言語を書いて、WEB上で利用できるようにするコtも出来ると思います。
最近は、まずExcelやワード等で使えないかなと考えてやってみて、可能なら他の方法でも出来るんじゃないかなと思っています。
今回は個人でしか使わないこともあり、WEBサイト等を作成する必要もありません。既に国税庁、経済産業省にあります。
まず、青い枠で囲っている箇所に法人名を入れてみます。
Web-API の利用手続について(共通編)-公表サイト-4.4 版 -
令和3年 10 月国税庁法人番号管理室
https://www.houjin-bangou.nta.go.jp/documents/k-web-api-tetuduki.pdf
法人名を入力した後、マクロというものを実行します。
マイクロソフトサポートセンター「マクロ記録で作業を自動化する」
下のような言葉が、Excelのマクロという場所に入っています。
Option Explicit
Sub 法人番号()
'---------------------------------------
Dim CorpName As String
Dim i As Long
Dim arr As Variant
For i = 2 To ThisWorkbook.Sheets(2).Cells(Rows.Count, 2).End(xlUp).Row
CorpName = Cells(i, 2)
On Error Resume Next
arr = CorpCode(URL_Encode(CorpName))
Cells(i, 3) = arr(4)
Cells(i, 4) = arr(9)
Cells(i, 5) = arr(12)
Cells(i, 6) = arr(13)
Cells(i, 7) = arr(14)
Next i
End Sub
Function CorpCode(CorpName As String) As String()
Dim objXMLHttp As Object
Dim tmp
Set objXMLHttp = CreateObject("MSXML2.XMLHTTP")
objXMLHttp.Open "GET", "https://api.houjin-bangou.nta.go.jp/4/name?id=KQTiv2Hfbj5kJ&type=02&mode=2&name=" & CorpName, False
objXMLHttp.Send
tmp = Split(Replace(objXMLHttp.responseText, """", ""), ",")
CorpCode = tmp
'---------------------------------------
End Function
Function URL_Encode(ByVal strOrg As String) As String
With CreateObject("ScriptControl")
.Language = "JScript"
URL_Encode = .CodeObject.encodeURI(strOrg)
End With
End Function
マクロを実行すると、法人番号、商号、本店所在地が出力されました。おそらく、琉球銀行と入力したときにマクロが実行されるようにすることも出来ると思いますが、現在そこまで出来ていません。
銀行などは、正確な情報が出てきましたが、法務省や沖縄県、商号が複数あるような法人は正確な情報が出てきません。法人名だけではなく、都道府県、知っていたら市区町村の情報まで含めて、国税庁の法人番号システムWeb-API機能に対して送ることが出来れば、もう少し正確な情報が出てくるのかなと思います。
なぜ、法人番号なのか。司法書士であれば、登記情報を取得する際に会社法人等番号を知ることが出来ます。登記情報のPDFファイルは、テキストのコピー&ペーストが可能な構造になっています。
法人番号と会社法人等番号の違いを教えてください。
https://www.houjin-bangou.nta.go.jp/shitsumon/shosai.html?selQaId=00128
法人番号は、番号法に基づき、国税庁長官が指定する13桁の番号です。1法人に対し一つの番号が指定され、どなたでも自由に利用することができます。
会社法人等番号は、商業登記法に基づき登記簿に記録される12桁の番号です。
(参考)
外国法人は、「法律の規定により設立の登記をした法人」に当たらないため、日本国内に外国会社の登記をしても、自動的に法人番号は指定されません。外国法人に対する法人番号の指定については「外国法人に法人番号は指定されますか。」を参照願います。
外国法人に法人番号は指定されますか。
外国に本店がある法人(以下「外国法人」といいます。)は、次のいずれかの場合に法人番号が指定されます。
https://www.houjin-bangou.nta.go.jp/shitsumon/shosai.html?selQaId=00089
1. 税務署に、給与支払事務所等の開設届出書、法人設立届出書、外国普通法人となった旨の届出書、収益事業開始届出書、消費税課税事業者届出書、消費税の新設法人に該当する旨の届出書又は消費税の特定新規設立法人に該当する旨の届出書を提出している場合
2. 1以外の外国法人で、一定の要件に該当し、国税庁長官に届出書を提出した場合
(参考)
外国法人は、国内事務所を支店登記しただけでは法人番号は指定されません。
なお、外国法人に指定される法人番号は、12桁の会社法人等番号の前に1桁の数字を付した番号ではなく、国税庁長官が定めた会社法人等番号と重複することのない12桁の番号を基礎番号とし、その前に1桁の検査用数字を付した番号になります。
法人番号はどのように指定されますか(桁数)。
https://www.houjin-bangou.nta.go.jp/shitsumon/shosai.html?selQaId=00007
法人番号は、12桁の基礎番号及びその前に付された1桁の検査用数字(チェックデジット)の数字のみで構成される13桁の番号になります。
例えば、株式会社など、会社法等の規定により設立の登記をした法人(設立登記法人)の法人番号を構成する基礎番号は、法務省から提供を受ける商業登記法に基づく「会社法人等番号(12桁)」となります。
また、設立登記法人以外の団体は、国税庁長官が会社法人等番号(12桁)と重複することのない12桁の基礎番号を定めます。
この12桁の基礎番号の前に1桁の検査用数字を付した番号を法人番号として指定することになります。
なお、一度指定された法人番号を変更することはできません。
(注) 検査用数字(チェックデジット)とは、法人番号をコンピューターに入力するときに誤りのないことを確認することを目的として、基礎番号を基礎として財務省令で定める算式により算出される一から九までの整数をいいます。
具体的な計算方法は「チェックデジットの計算」を参照してください。
行政手続における特定の個人を識別するための番号の利用等に関する法律施行令
https://elaws.e-gov.go.jp/document?lawid=426CO0000000155
第七章 法人番号(法人番号の構成)第三十五条以下
なぜ会社等法人番号を利用せずに、法人番号を利用するかというと一法人・団体に1つしかなく、国税庁法人番号システム、経済産業省ジービズインフォでも法人番号で検索可能な仕様になっているからです。私の利用用途としては、沖縄県や法務省が依頼者になることはないので、今のやり方より、会社法人等番号を法人番号に変換するような仕組みを作った方が良いのかもしれません。
なぜ、ジービズインフォではなく、国税庁法人番号システムを利用したのか。経済産業省のジービズインフォでもAPIを提供しています。ジービズインフォは、アプリケーションIDの発行手続が不要で、法人の情報も国税庁法人番号システムより多いようです。
gBizINFO API利用方法
https://info.gbiz.go.jp/api/index.html
目的が法人番号の取得のみで、補助金や他の情報が不要だったので国税庁法人番号システムのAPIを利用しました。利用目的によっては、ジービズインフォのAPIを利用した方が良い場合もあると思います。