法人番号システムWeb-APIの使い方:アプリケーションID申請から名称検索・差分取得まで
国税庁の法人番号システムWeb-API(Ver.4.0)について、アプリケーションIDの発行届出、法人番号指定・期間指定・法人名指定の3リクエストとパラメータ、CSV/XMLレスポンス、変更履歴の扱いを公式仕様(2026-09-14確認)で整理。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か月。
- リクエストは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を申請する
共通編の仕様書(5章)が示す手順はこうです。
- 国税庁適格請求書発行事業者公表サイト内の「アプリケーションID発行届出仮登録」画面(
https://www.invoice-kohyo.nta.go.jp/web-api/pre-reg/)にメールアドレスを入力して送信する - 届いたメールに「アプリケーションID発行届出フォーム」のURLがあるので、届出情報を入力して送信する
- 届出後、アプリケーションIDがメールで通知される
書面など受付画面以外での申請は受け付けておらず、添付書類・手数料は不要です。IDは原則としてWeb-APIサーバと通信するシステムごとに発行され、同一のメールアドレスで複数のIDを届け出ることはできません。公表サイトのWeb-APIページは、発行に2週間から1か月程度かかると案内しています。
法人番号システムWeb-APIだけを使う場合は追加の連絡が要ります。 届出フォームは適格請求書発行事業者公表システムのWeb-APIと共通のため、届出とは別に、フォームで入力した氏名又は名称、メールアドレス、法人番号システムWeb-APIのみ利用希望である旨の3点を、国税庁軽減税率・インボイス制度対応室宛にメール([email protected])で連絡します。
架空の法人名を使った検証環境もあります。IDは本番・検証環境どちらでも使え、利用したい場合はWeb-APIお問い合わせフォームからID、法人名又は氏名、メールアドレス、電話番号、利用予定期間(3か月以内)を連絡すると、概ね1週間以内に案内が届きます。
利用規約で運用に効く条項は次のとおりです。
- 第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は適格請求書発行事業者公表サイトの届出フォームから無料で申請。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取得と統計表・メタ情報・統計データの取得手順
政府統計e-Stat API 3.0のappId取得手順、getStatsList・getMetaInfo・getStatsDataのURLとパラメータ、レスポンス構造、10万件上限とNEXT_KEYを公式仕様(2026-09-14確認)で整理。AIエージェントに統計を引かせる時の表ID・単位・注記の扱いも。
ai-agent・mcpを続けて読む
· 参考リンク 8件国土地理院の住所検索APIと逆ジオコーダーの使い方:表記ゆれと複数候補を実測
国土地理院の住所検索API(住所→緯度経度)と逆ジオコーダー(緯度経度→住所)を2026年9月14日に実測。応答の構造、漢数字・全角・旧地名での結果の違い、複数候補の扱い、muniCdの読み方、公式な位置づけと利用規約、AIエージェントで住所を検証する設計まで。
この記事の情報・検証メモ
- 公開日
- 情報確認
- 参考リンク
- 5件
- 更新性
- 定期更新
仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。
一次情報・参考リンク
- 国税庁法人番号公表サイト:法人番号システム Web-API https://www.houjin-bangou.nta.go.jp/webapi/
- 第一編 Web-APIの利用手続について(共通編)4.9版(令和7年2月) 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機能利用規約 https://www.houjin-bangou.nta.go.jp/webapi/riyokiyaku.html