Web-APIを利用して、インボイス登録情報を取得する


どうも、にゃん太です
先日、インボイス登録番号から企業情報を取得する必要に迫られました
色々調べてみると、国税庁がWeb-APIを公開している様です
今回のメモでは、APIでインボイス情報を取得する方法を書いていきます
適格請求書発行事業者公表サイト
Web-API機能で出来る事
- 登録番号を指定して情報を取得
- 取得期間を指定して情報を取得
- 登録番号と日付を指定して情報を取得
登録番号を指定して情報を取得
- バージョン
-
現行バージョンである「1」を指定します
- アプリケーションID
-
国税庁より発行されたIDを指定します
- 登録番号
-
"T"+13桁の登録番号を指定します
カンマ区切りで最大10件まで指定可能です
- 応答形式
-
リクエストの結果、戻ってくるデータ形式を指定します
01:CSV形式、11:XML形式、21:JSON形式
- 履歴情報
-
履歴情報を取得するかを指定します
0:なし、1:取得(未指定は0として処理)
スクリプト
変数を設定 [$id; 値: "xxxxxxxxxxxxx"] 変数を設定 [$invoiceNo; 値: "T4010005002276"] 変数を設定 [$url; 値: "https://web-api.invoice-kohyo.nta.go.jp/1/num?id=" & $id & "&number=" & $invoiceNo & "&type=21&history=0"] URLから挿入 [ダイアログあり:オフ; ターゲット:$result; $url] フィールド設定 [test::結果; $json]
キー | データ項目 |
---|---|
lastUpdateDate | 最終更新年月日 |
count | 総件数 |
divideNumber | 分割番号 |
divideSize | 分割数 |
announcement | 取得情報(配列) |
sequenceNumber | 一連番号 |
registratedNumber | 登録番号 |
process | 事業者処理区分 |
correct | 訂正区分 |
kind | 人格区分 |
country | 国内外区分 |
latest | 最新履歴 |
registrationDate | 登録年月日 |
updateDate | 更新年月日 |
disposalDate | 取消年月日 |
expireDate | 失効年月日 |
address | 主たる事務所の所在地 |
addressPrefectureCode | 主たる事務所の都道府県コード |
addressCityCode | 主たる事務所の市区町村コード |
addressRequest | 主たる事務所の所在地(公表申出) |
addressRequestPrefectureCode | 主たる事務所の都道府県コード(公表申出) |
addressRequestCityCode | 主たる事務所の市区町村コード(公表申出) |
kana | 日本語(カナ) |
name | 氏名、名称 |
addressInside | 資産譲渡等に係る所在地 |
addressInsidePrefectureCode | 資産譲渡等に係る所在地の都道府県コード |
addressInsideCityCode | 資産譲渡等に係る所在地の市区町村コード |
tradeName | 主たる屋号 |
popularName_previousName | 通称・旧姓 |
スクリプト
変数を設定 [$id; 値: "xxxxxxxxxxxxx"] 変数を設定 [$invoiceNo; 値: "T4010005002276"] 変数を設定 [$url; 値: "https://web-api.invoice-kohyo.nta.go.jp/1/num?id=" & $id & "&number=" & $invoiceNo & "&type=21&history=0"] URLから挿入 [ダイアログあり:オフ; ターゲット:$result; $url] フィールド設定 [test::登録番号; JSONGetElement ( $json; "announcement[0]registratedNumber" )] フィールド設定 [test::登録年月日; JSONGetElement ( $json; "announcement[0]registrationDate" )] フィールド設定 [test::所在地; JSONGetElement ( $json; "announcement[0]address" )] フィールド設定 [test::名称; JSONGetElement ( $json; "announcement[0]name" )]

取得期間を指定して情報を取得
- バージョン
-
現行バージョンである「1」を指定します
- アプリケーションID
-
国税庁より発行されたIDを指定します
- 取得期間開始日
-
yyyy-mm-ddの形式で指定します
令和3年10月1日以前の日付を指定するとエラーとなります
- 取得期間終了日
-
yyyy-mm-ddの形式で指定します
取得期間は最大50日なので、開始日から50日以内の日付を指定します
- 応答形式
-
リクエストの結果、戻ってくるデータ形式を指定します
01:CSV形式、11:XML形式、21:JSON形式
- 人格区分
-
個人・法人を指定します
1:個人、2:法人(未指定は両方取得)
- 分割番号
-
1回の取得件数は500件までの為、500件を超過する場合に取得位置を指定します
スクリプト
変数を設定 [$id; 値: "xxxxxxxxxxxxx"] 変数を設定 [$from; 値: "2024-11-01"] 変数を設定 [$to; 値: "2024-11-30"] 変数を設定 [$url; 値: "https://web-api.invoice-kohyo.nta.go.jp/1/diff?id=" & $id & "&from=" & $from & "&to=" & $to & "&type=21"] URLから挿入 [ダイアログあり:オフ; ターゲット:$result; $url] フィールド設定 [test::結果; $json]
"divideNumber" : "1", "divideSize" : "82",
スクリプト
変数を設定 [$id; 値: "xxxxxxxxxxxxx"] 変数を設定 [$from; 値: "2024-11-01"] 変数を設定 [$to; 値: "2024-11-30"] 変数を設定 [$url; 値: "https://web-api.invoice-kohyo.nta.go.jp/1/diff?id=" & $id & "&from=" & $from & "&to=" & $to & "&type=21÷=2"] URLから挿入 [ダイアログあり:オフ; ターゲット:$result; $url] フィールド設定 [test::結果; $json]
登録番号と日付を指定して情報を取得
- バージョン
-
現行バージョンである「1」を指定します
- アプリケーションID
-
国税庁より発行されたIDを指定します
- 登録番号
-
"T"+13桁の登録番号を指定します
カンマ区切りで最大10件まで指定可能です
- 判定基準日
-
yyyy-mm-ddの形式で指定します
登録状況を確認した日付を指定します
- 応答形式
-
リクエストの結果、戻ってくるデータ形式を指定します
01:CSV形式、11:XML形式、21:JSON形式
スクリプト
変数を設定 [$id; 値: "xxxxxxxxxxxxx"] 変数を設定 [$invoiceNo; 値: "T8011105001478"] 変数を設定 [$day; 値: "2024-12-09"] 変数を設定 [$url; 値: "https://web-api.invoice-kohyo.nta.go.jp/1/valid?id=" & $id & "&number=" & $invoiceNo & "&day=" & $day & "&type=21"] URLから挿入 [ダイアログあり:オフ; ターゲット:$result; $url] フィールド設定 [test::結果; $json]
スクリプト
変数を設定 [$id; 値: "xxxxxxxxxxxxx"] 変数を設定 [$invoiceNo; 値: "T8011105001478"] 変数を設定 [$day; 値: "2023-09-30"] 変数を設定 [$url; 値: "https://web-api.invoice-kohyo.nta.go.jp/1/valid?id=" & $id & "&number=" & $invoiceNo & "&day=" & $day & "&type=21"] URLから挿入 [ダイアログあり:オフ; ターゲット:$result; $url] フィールド設定 [test::結果; $json]

以上で今日のメモ書きは終了です
内容はいかがでしたか?
もしご意見やご要望、誤りの指摘などありましたら、下記フォームよりお気軽にご連絡ください