本文へスキップ

法人番号システムWeb-APIの使い方:アプリケーションID申請から名称検索・差分取得まで

国税庁の法人番号システムWeb-API(Ver.4.0)について、アプリケーションIDの発行届出、法人番号指定・期間指定・法人名指定の3リクエストとパラメータ、CSV/XMLレスポンス、変更履歴の扱いを公式仕様(2026-09-14確認)で整理。AIエージェントで取引先マスタを照合する時の注意も。

SHAYOUWORLD 更新 約9分

国税庁の法人番号システムWeb-APIは、アプリケーションIDを付けたGETリクエスト1本で、法人番号・法人名・更新期間のいずれかを条件に、基本3情報(商号又は名称、本店又は主たる事務所の所在地、法人番号)と付随情報をCSVまたはXMLで返すAPIです。 最新版はVer.4.0で、Ver.1.0〜3.0も並行して稼働しています。

この記事では、アプリケーションIDの発行届出、3種類のリクエストとパラメータ、レスポンスの読み方、変更履歴の扱いを公式仕様から整理し、最後にAIエージェントで取引先マスタを照合するときの手順と注意をまとめます。

先に押さえること

  1. IDは無料だが時間がかかる。 国税庁適格請求書発行事業者公表サイトの届出フォームから申請し、13桁のIDがメールで届く。2週間〜1か月。
  2. リクエストは3種類、GETのみ。 /4/num(法人番号指定)、/4/diff(期間指定)、/4/name(法人名指定)。type=01/02/12 でCSV(Shift-JIS)/CSV(Unicode)/XMLを選ぶ。
  3. 上限は num 10件、diff 50日、diff と name は2,000件超で分割。 全件は取れない。
  4. 照合は「名称→候補→人が法人番号を確定→番号で再取得→差分で追従」。 名称一致で自動確定しない。

アプリケーションIDを申請する

共通編の仕様書(5章)が示す手順はこうです。

  1. 国税庁適格請求書発行事業者公表サイト内の「アプリケーションID発行届出仮登録」画面(https://www.invoice-kohyo.nta.go.jp/web-api/pre-reg/)にメールアドレスを入力して送信する
  2. 届いたメールに「アプリケーションID発行届出フォーム」のURLがあるので、届出情報を入力して送信する
  3. 届出後、アプリケーション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はコードやプロンプトに書かず、環境変数で渡します。

Terminal window
export HOUJIN_APP_ID="メールで通知された13桁のアプリケーションID"

3種類のリクエスト

Web-APIはREST方式で、メソッドはGETです。バージョンはURLのパスに 14 の数字で指定します。

  1. 2015-12
    Ver.1.0 提供開始
    法人番号指定と期間指定の2機能。差分データはこの日以降のみ
  2. 2017-04
    Ver.2.0
    法人名指定機能を追加。商号・所在地の英語表記項目を追加
  3. 2018-04
    Ver.3.0
    商号又は名称のフリガナ項目を追加
  4. 2019-03
    Ver.4.0
    検索対象除外(hihyoji)項目を追加。現行の最新版
共通編 表1「各バージョンの相違点」より。下位バージョンは新版提供後も並行稼働する

法人番号を指定して取得する(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 にすると、商号変更などの履歴が古い順に複数行で返り、latest1 の行が最新情報です。

Terminal window
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=..&divide=..]
パラメータ必須意味
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任意分割番号 199999。省略時 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=..&divide=..]
パラメータ必須意味
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)はひらがなをカタカナに、英小文字を英大文字に置き換え、中点や全角スペースを削除した上で照合するので、表記ゆれに強い代わりに候補が広がります。

Terminal window
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件を超えると分割されます。ヘッダーの divideSize1 でなければ、dividedivideNumberdivideSize に一致するまでカウントアップして再リクエストします。

AIエージェントで取引先マスタを照合する

取引先マスタの「社名」を法人番号に紐づける作業は、エージェントに任せやすい半面、同名法人と表記ゆれで事故が起きやすい領域です。次の手順に固定します。

  1. マスタの社名で name を引く。 mode=2(部分一致)、target=1(あいまい検索)で候補を広めに取り、法人番号・所在地・kindcloseDate を並べる。
  2. 候補が複数なら所在地で絞る。 マスタに都道府県があれば address に都道府県コードを渡す。それでも複数残るなら、エージェントは候補を提示して止まり、人が法人番号を選ぶ。
  3. 確定した法人番号で numhistory=1 で取り直す。 latest=1 の行をマスタの正とし、旧商号は別名として保持する。
  4. 以後は diff を日次で回す。 前日の日付で取得し、マスタにある法人番号の process11(商号変更)、12(所在地変更)、21(閉鎖等)なら差分として提示する。successorCorporateNumber があれば承継先を添える。
  5. 閉鎖法人は削除せずフラグを立てる。 closeDate が入った法人はマスタから消さず「閉鎖」として残す。
名称の文字列一致で自動確定
法人番号で確定して追従
同名法人
先頭の候補を採用してしまう
候補を提示して人が選ぶ。以後は番号で引く
商号変更
旧社名で0件になり別法人と判定
change=1 で旧名を拾い、num の history=1 で最新へ
閉鎖・合併
検索に出続けて気づかない
diff の process=21 と successorCorporateNumber で検知
表記ゆれ
「・」や全角空白で一致しない
target=1 のあいまい検索に寄せ、確定は番号で
監査
なぜその法人にしたか残らない
法人番号・lastUpdateDate・取得日時・選定理由を記録
法人名指定・法人番号指定・期間指定の仕様(概要編)から整理した運用の比較

エージェントへの指示は、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には項目名がないのでリソース定義書で位置を確認。latestprocesscloseDatesuccessorCorporateNumber が照合の鍵
  • 2,000件超は divide で分割取得。更新は11時・16時、diffは翌日0時
  • 取引先マスタの照合は「名称→候補→人が法人番号を確定→番号で再取得→差分で追従」に固定する

法人番号で確定した後、行政保有情報(認定・調達・補助金など)へ広げるならGビズインフォ、法定開示書類へ広げるならEDINETが法人番号を持っています。その組み合わせと、認証キーを持つAPIをMCPにするときの共通設計は公共データAPIをMCP化する設計パターンで扱います。IDのような秘密をエージェントから隔離する一般論はAIエージェントの秘密情報保護を参照してください。

関連して読む

この記事の情報・検証メモ
Tags
公開日
情報確認
参考リンク
5件
更新性
定期更新
更新管理

仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。

図解を保存・共有

記事の要点を1枚にまとめました。画像は新しいタブで開いて保存できます。

法人番号システムWeb-APIの使い方:アプリケーションID申請から名称検索・差分取得まで 法人番号Web-APIはID付きGET1本で基本3情報を返す。照合は名称ではなく法人番号で確定し、差分取得で追従する IDの取り方:適格請求書発行事業者公表サイトの届出フォームから申請。無料で13桁。発行に2週間〜1か月。システムごとに1つ、同一メールで複数不可。出典明示の文言が規約で決まっている。 3つのリクエスト:numは法人番号最大10件、historyで変更履歴。diffは最大50日、2,000件超で分割。nameは前方/部分一致とあいまい検索を選べる。 AIで照合する時:名称一致で自動確定せず候補を人に返す。確定後は法人番号で取り直しlatestを見る。閉鎖・承継先・商号変更はdiffで検知する。
法人番号システムWeb-APIの使い方:アプリケーションID申請から名称検索・差分取得まで 記事の要約 2026.09.14 入門・導入ガイド
Primary sources

一次情報・参考リンク

About the author
SHAYOUWORLD

日本の公共データAPIを使うMCPサーバーを作って公開し、ローカルLLMを自分のGPUで測った記録を、一次情報・検証ログ・失敗例とあわせて整理します。