法人番号システムWeb-APIの使い方:アプリケーションID申請から名称検索・差分取得まで
国税庁の法人番号システムWeb-API(Ver.4.0)について、アプリケーションIDの種類と発行届出、法人番号指定・期間指定・法人名指定の3リクエストとパラメータ、CSV/XMLレスポンス、変更履歴の扱いを公式仕様で整理(IDの届出は2026-10-29に再確認)。AIエージェントで取引先マスタを照合する時の注意も。
国税庁の法人番号システムWeb-APIは、アプリケーションIDを付けたGETリクエスト1本で、法人番号・法人名・更新期間のいずれかを条件に、基本3情報(商号又は名称、本店又は主たる事務所の所在地、法人番号)と付随情報をCSVまたはXMLで返すAPIです。 最新版はVer.4.0で、Ver.1.0〜3.0も並行して稼働しています。
この記事では、アプリケーションIDの発行届出、3種類のリクエストとパラメータ、レスポンスの読み方、変更履歴の扱いを公式仕様から整理し、最後にAIエージェントで取引先マスタを照合するときの手順と注意をまとめます。
先に押さえること
- IDは無料だが時間がかかる。 国税庁適格請求書発行事業者公表サイトの届出フォームから申請し、13桁のIDがメールで届く。目安は2週間〜1か月半で、案内ページによって幅が違う。法人番号だけなら「法人番号用アプリケーションID」でよい。
- リクエストは3種類、GETのみ。
/4/num(法人番号指定)、/4/diff(期間指定)、/4/name(法人名指定)。type=01/02/12でCSV(Shift-JIS)/CSV(Unicode)/XMLを選ぶ。 - 上限は num 10件、diff 50日、diff と name は2,000件超で分割。 全件は取れない。
- 照合は「名称→候補→人が法人番号を確定→番号で再取得→差分で追従」。 名称一致で自動確定しない。
アプリケーションIDを申請する
共通編4.10版(令和8年9月)の5章は、届出を国税庁適格請求書発行事業者公表サイトの「適格請求書発行事業者公表システムWeb-API機能」画面から行うよう案内しています。同画面とFAQ(4-3)、同システムの利用手続(第一編1.6版)に書かれた手順はこうです。
- 「発行届出」ボタンから進む「アプリケーションID発行届出仮登録」画面(
https://www.invoice-kohyo.nta.go.jp/web-api/pre-reg/)にメールアドレスを入力して送信する(仮登録) - 届いたメールのURLから基本情報等を入力して送信する(本登録)
- アプリケーションIDがメールで通知される
IDは2種類あります。 「法人番号用アプリケーションID」は法人番号システムWeb-APIだけに使え、「インボイス用アプリケーションID」は法人番号システムWeb-APIと適格請求書発行事業者公表システムWeb-APIの両方に使えます(FAQ 4-6)。法人番号だけなら法人番号用で足ります。インボイス用は、本登録の際に「公表情報の取得方法及び利用方法」が分かる資料をデータで提出し、国税庁の審査を受けます。法人番号用を取った後でインボイスWeb-APIの権限を足す場合も、「登録情報変更届出」から同じ資料の提出と審査が要ります。
書面では受け付けておらず、手数料は不要です。IDは原則としてWeb-APIサーバと通信するシステムごとに発行され、同一のメールアドレスで複数のIDを届け出ることはできません。発行までの目安は案内によって異なり、法人番号公表サイトのWeb-APIページは2週間から1か月程度、適格請求書発行事業者公表サイトのWeb-APIページは法人番号用IDについて1か月程度、同サイトのFAQ(4-3)は新規発行に1か月から1か月半程度としています(いずれも2026年10月29日確認)。
9月14日の初版では「法人番号システムWeb-APIだけを使う場合は、届出とは別にメールで連絡する」と書いていました。10月29日に確認した共通編4.10版と両サイトのWeb-APIページにはこの手順がなく、IDの種類を選ぶ案内に変わっていたため訂正しました。[email protected] は、現在はIDを取得していない人の仕様に関する問い合わせ先として案内されています。
架空の法人名を使った検証環境もあります。IDは本番・検証環境どちらでも使え、利用したい場合はWeb-APIお問い合わせフォームからID、法人名又は氏名、メールアドレス、電話番号、利用予定期間(3か月以内)を連絡すると、概ね1週間以内に案内が届きます。
利用規約で運用に効く条項は次のとおりです(令和8年9月24日施行の改正後の条文で、2026年10月29日に確認)。
- 第4条:利用者は通知を受けたIDの管理責任を負う。不正利用・亡失・利用停止は速やかに連絡する。3年間アクセスがないと利用停止されることがある
- 第6条:Web-APIを利用したサービスを提供する場合、「このサービスは、国税庁法人番号システムWeb-API機能を利用して取得した情報をもとに作成しているが、サービスの内容は国税庁によって保証されたものではない」を適宜の場所に明示する
- 第8条:利用が著しく集中した場合等には利用を制限できる
- 第9条:短時間における大量アクセス、IDの第三者への譲渡・貸与・開示の禁止
- 第10条:国税庁の故意又は重過失による場合を除き免責
IDはコードやプロンプトに書かず、環境変数で渡します。
export HOUJIN_APP_ID="メールで通知された13桁のアプリケーションID"3種類のリクエスト
Web-APIはREST方式で、メソッドはGETです。バージョンはURLのパスに 1〜4 の数字で指定します。
- 2015-12Ver.1.0 提供開始法人番号指定と期間指定の2機能。差分データはこの日以降のみ
- 2017-04Ver.2.0法人名指定機能を追加。商号・所在地の英語表記項目を追加
- 2018-04Ver.3.0商号又は名称のフリガナ項目を追加
- 2019-03Ver.4.0検索対象除外(hihyoji)項目を追加。現行の最新版
法人番号を指定して取得する(num)
https://api.houjin-bangou.nta.go.jp/4/num?id=<アプリケーションID>&number=<法人番号>[,<法人番号>…]&type=12&history=0| パラメータ | 必須 | 意味 |
|---|---|---|
id | 必須 | 13桁のアプリケーションID |
number | 必須 | 13桁の法人番号。カンマ区切りで最大10件 |
type | 必須 | 01 CSV/Shift-JIS、02 CSV/Unicode、12 XML/Unicode |
history | 任意 | 0 変更履歴なし(既定)、1 変更履歴あり |
history=1 にすると、商号変更などの履歴が古い順に複数行で返り、latest が 1 の行が最新情報です。
curl -s "https://api.houjin-bangou.nta.go.jp/4/num?id=${HOUJIN_APP_ID}&number=7000012050002&type=12&history=1"(7000012050002 は公表サイトのフッターに記載されている国税庁自身の法人番号です。)
期間を指定して差分を取得する(diff)
https://api.houjin-bangou.nta.go.jp/4/diff?id=<アプリケーションID>&from=YYYY-MM-DD&to=YYYY-MM-DD&type=12[&address=..&kind=..÷=..]| パラメータ | 必須 | 意味 |
|---|---|---|
from / to | 必須 | 更新年月日の範囲。最大50日。2015年12月1日より前はエラー(コード013) |
type | 必須 | numと同じ |
address | 任意 | 都道府県コード2桁(JIS X 0401)、または都道府県2桁+市区町村3桁(JIS X 0402)。国外は 99。市区町村コードのみはエラー(コード051) |
kind | 任意 | 法人種別。01 国の機関、02 地方公共団体、03 設立登記法人、04 外国会社等・その他。最大4種類 |
divide | 任意 | 分割番号 1〜99999。省略時 1 |
期間指定で取れるのはWeb-API公開日(2015年12月1日)以後の差分だけです。全件(前月末時点の最新情報)が必要なら公表サイトのダウンロード機能を使う、と共通編は明記しています。
法人名を指定して取得する(name)
Ver.2.0以降で使えます。
https://api.houjin-bangou.nta.go.jp/4/name?id=<アプリケーションID>&name=<URLエンコードした法人名>&type=12[&mode=..&target=..&address=..&kind=..&change=..&close=..&from=..&to=..÷=..]| パラメータ | 必須 | 意味 |
|---|---|---|
name | 必須 | UTF-8でURLエンコードした商号又は名称。複数指定不可 |
mode | 任意 | 1 前方一致(既定)、2 部分一致 |
target | 任意 | 1 JIS第一・第二水準(あいまい検索、既定)、2 JIS第一〜第四水準(完全一致)、3 英語表記 |
change | 任意 | 0 変更履歴を含めない(既定)、1 旧商号も検索対象にする |
close | 任意 | 0 登記記録の閉鎖等を含めない、1 含める(既定) |
from / to | 任意 | 法人番号指定年月日の範囲。2015年10月5日より前はエラー(コード152) |
address / kind / divide | 任意 | diffと同じ |
前方一致は「株式会社」などの法人種別を除いた名称の先頭から照合し、部分一致は法人種別を含めて照合します。あいまい検索(target=1)はひらがなをカタカナに、英小文字を英大文字に置き換え、中点や全角スペースを削除した上で照合するので、表記ゆれに強い代わりに候補が広がります。
curl -s -G "https://api.houjin-bangou.nta.go.jp/4/name" \ --data-urlencode "id=${HOUJIN_APP_ID}" \ --data-urlencode "name=国税商事" \ --data-urlencode "type=12" \ --data-urlencode "mode=2"有効なIDがない状態で num を叩くと、2026年9月14日の実行ではHTTP 404で Not Found のHTMLが返りました(空のIDでも dummy でも同じ)。仕様書にあるCSV形式のエラーコード応答はこの条件では返らなかったので、IDの有無はHTTPステータスで先に検知できます。
レスポンスの読み方
CSVでもXMLでも、先頭にヘッダー情報4項目が付き、その後に法人ごとのデータが続きます。
| 項目名 | XMLタグ | 意味 |
|---|---|---|
| 最終更新年月日 | lastUpdateDate | 公表用データベースを最後に更新した日付 |
| 総件数 | count | 条件に合致したデータの総件数 |
| 分割番号 | divideNumber | 分割ファイルの通し番号(分子) |
| 分割数 | divideSize | 分割ファイルの総数(分母)。分割されなければ 1 |
CSVには項目名が入りません。 2行目以降のカンマ区切りの並びは、別紙のリソース定義書で「提供項目_Web-API(ver1〜4)」に○が付いた項目の順です。位置で意味が決まるので、CSVを扱うならXMLのタグ名(=リソース名)と対応させたマッピングを持っておくのが安全です。
仕様書に載っている、架空の法人番号 8040001999013 をXMLで引いたときのサンプルはこの形です(項目を抜粋)。
<corporations> <lastUpdateDate>2017-05-10</lastUpdateDate> <count>1</count> <divideNumber>1</divideNumber> <divideSize>1</divideSize> <corporation> <sequenceNumber>1</sequenceNumber> <corporateNumber>8040001999013</corporateNumber> <process>11</process> <correct>0</correct> <updateDate>2017-05-09</updateDate> <changeDate>2017-05-09</changeDate> <name>株式会社商号変更後</name> <kind>301</kind> <prefectureName>千葉県</prefectureName> <cityName>千葉市中央区</cityName> <streetNumber>蘇我5丁目9番1号</streetNumber> <prefectureCode>12</prefectureCode> <cityCode>101</cityCode> <postCode>2600822</postCode> <assignmentDate>2015-10-05</assignmentDate> <latest>1</latest> <furigana/> <hihyoji>0</hihyoji> </corporation></corporations>照合で効く項目は次のとおりです。
process(処理区分):01新規、11商号又は名称の変更、12国内所在地の変更、13国外所在地の変更、21登記記録の閉鎖等 などlatest(最新履歴):1が最新、0が過去の情報closeDate/closeCause/successorCorporateNumber:登記記録の閉鎖等の年月日・事由・承継先法人番号changeCause(変更事由の詳細)、assignmentDate(法人番号指定年月日)enName等はVer.2.0以降、furiganaはVer.3.0以降、hihyoji(検索対象除外)はVer.4.0以降
並び順も決まっています。numは法人番号昇順→履歴の古い順、diffは更新年月日→法人番号、nameは名称のUTF-8コード順→法人番号で、sequenceNumber はその順に振られます。
更新タイミングは、公表用データベースが当日11時と16時の2回更新され、num・nameは登記完了日の16時又は翌稼働日の11時に反映、diffは登記完了日の翌日午前0時に反映です。休祝日と12月29日〜1月3日は更新されません。当日分をすべて差分で取りたい場合は、日付切替後に前日の日付で diff を呼びます。
diffとnameは応答が2,000件を超えると分割されます。ヘッダーの divideSize が 1 でなければ、divide を divideNumber が divideSize に一致するまでカウントアップして再リクエストします。
AIエージェントで取引先マスタを照合する
取引先マスタの「社名」を法人番号に紐づける作業は、エージェントに任せやすい半面、同名法人と表記ゆれで事故が起きやすい領域です。次の手順に固定します。
- マスタの社名で
nameを引く。mode=2(部分一致)、target=1(あいまい検索)で候補を広めに取り、法人番号・所在地・kind・closeDateを並べる。 - 候補が複数なら所在地で絞る。 マスタに都道府県があれば
addressに都道府県コードを渡す。それでも複数残るなら、エージェントは候補を提示して止まり、人が法人番号を選ぶ。 - 確定した法人番号で
numをhistory=1で取り直す。latest=1の行をマスタの正とし、旧商号は別名として保持する。 - 以後は
diffを日次で回す。 前日の日付で取得し、マスタにある法人番号のprocessが11(商号変更)、12(所在地変更)、21(閉鎖等)なら差分として提示する。successorCorporateNumberがあれば承継先を添える。 - 閉鎖法人は削除せずフラグを立てる。
closeDateが入った法人はマスタから消さず「閉鎖」として残す。
エージェントへの指示は、CLAUDE.mdやAGENTS.mdに次の程度で置きます。
## 法人番号 Web-API を使うときのルール- 社名で検索したら候補(法人番号・所在地・closeDate)を表にして止まる。私が法人番号を選ぶまで確定しない- 確定後は法人番号で num を history=1 で取り直し、latest=1 の行を採用する- change=1 で旧商号がヒットしても、その行を最新として扱わない(num で取り直す)- 結果には corporateNumber・lastUpdateDate・取得日時を必ず付ける- アプリケーションIDは環境変数 HOUJIN_APP_ID から読む。URL・ログ・出力に含めない- 公開するサービスには規約第6条の出典明示文言を入れるAPI側に用意されている「あいまい検索」と「変更履歴」は、人が最終確定する前提でこそ役に立ちます。エージェントに全部を任せて確定まで進めると、あいまい検索の広さがそのまま誤マッチの広さになります。
まとめ
- アプリケーションIDは適格請求書発行事業者公表サイトの届出フォームから無料で申請。法人番号用とインボイス用の2種類、13桁、発行まで2週間〜1か月半、システムごとに1つ
- リクエストは
num(法人番号最大10件)、diff(最大50日、2015-12-01以降)、name(Ver.2.0以降)の3種類。type=01/02/12で形式を選ぶ - レスポンスは4項目のヘッダー+法人データ。CSVには項目名がないのでリソース定義書で位置を確認。
latest、process、closeDate、successorCorporateNumberが照合の鍵 - 2,000件超は
divideで分割取得。更新は11時・16時、diffは翌日0時 - 取引先マスタの照合は「名称→候補→人が法人番号を確定→番号で再取得→差分で追従」に固定する
法人番号で確定した後、行政保有情報(認定・調達・補助金など)へ広げるならGビズインフォ、法定開示書類へ広げるならEDINETが法人番号を持っています。その組み合わせと、認証キーを持つAPIをMCPにするときの共通設計は公共データAPIをMCP化する設計パターンで扱います。IDのような秘密をエージェントから隔離する一般論はAIエージェントの秘密情報保護を参照してください。
関連して読む
-
ai-agent・mcpを続けて読む
· 参考リンク 8件e-Stat API 3.0の使い方:appId発行手順とgetStatsList・getMetaInfo・getStatsDataのURL
政府統計e-Stat API 3.0のappId発行手順(マイページ・最大3個)と、getStatsList・getMetaInfo・getStatsDataの3段階URL・パラメータ・JSON/XML/CSV形式の違いを公式仕様(2026-09-14確認)で整理。10万件上限とNEXT_KEY、商用利用・クレジット表示も解説。
-
public-data・ai-agentを続けて読む
· 参考リンク 4件国土地理院の標高APIの使い方:「-----」の返り方、hsrcの精度、大量の地点は標高タイルで
国土地理院の標高API(getelevation.php)を2026年10月20日に実測しました。海上・国外・緯度と経度の取り違えは、どれもHTTP 200で「-----」が返ります。hsrcは1m(レーザ)から10mまでの5種類です。標高タイル(PNG)を依存なしのNode.jsで読み、7地点でAPIと同じ値になることと、51地点の断面を12回のタイル取得で求めた結果も載せます。
この記事の情報・検証メモ
- 公開日
- 情報確認
- 参考リンク
- 7件
- 更新性
- 定期更新
仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。
一次情報・参考リンク
- 国税庁法人番号公表サイト:法人番号システム Web-API(2026-10-29確認) https://www.houjin-bangou.nta.go.jp/webapi/
- 第一編 Web-APIの利用手続について(共通編)4.10版(令和8年9月、2026-10-29確認) https://www.houjin-bangou.nta.go.jp/pc/webapi/images/k-web-api-tetuduki.pdf
- 第二編 Web-APIのリクエストの設定方法及び提供データの内容について(概要編)1.2版・別紙 リソース定義書4.1版 https://www.houjin-bangou.nta.go.jp/pc/webapi/images/k-web-api-kinou-gaiyo.pdf
- WEB-API仕様書(各バージョン) https://www.houjin-bangou.nta.go.jp/pc/webapi/kyuusiyousyo.html
- 法人番号システムWeb-API機能利用規約(令和8年9月24日施行、2026-10-29確認) https://www.houjin-bangou.nta.go.jp/webapi/riyokiyaku.html
- 国税庁適格請求書発行事業者公表サイト:適格請求書発行事業者公表システムWeb-API機能(アプリケーションIDの種類と届出、2026-10-29確認) https://www.invoice-kohyo.nta.go.jp/web-api/index.html
- 同サイト よくある質問 4-3 アプリケーションIDを発行する場合の手続(2026-10-29確認) https://www.invoice-kohyo.nta.go.jp/faq/faq-category/400/faq0017.html