台帳堂Daichodo

クイックスタート

適格請求書発行事業者の登録番号を検証するまで、3 分ほどです。

1. APIキーを発行する

ダッシュボード にサインインし、「APIキー」から作成します。キーは作成時に一度だけ表示され、再表示できません。その場で保存してください。

  • dc_live_… — 本番。実際の登録簿を参照します。
  • dc_test_… — テスト。固定されたスナップショットを参照します。

テストキーが固定データを返すのは意図的な設計です。実データを返すと、ドキュメントの例に使った登録番号がある日失効し、お客様のテストが登録簿の変化によって落ちるようになります。詳しくは認証を参照してください。

2. 最初のリクエスト

curl https://api.daichodo.com/v1/invoice-issuers/T8000000000001 \
  -H "Authorization: Bearer dc_test_..."
{
  "registration_number": "T8000000000001",
  "corporate_number": "8000000000001",
  "kind": "corporate",
  "country": "domestic",
  "name": "株式会社ダイチョウドウ・テスト",
  "kana": "カブシキガイシャダイチョウドウテスト",
  "address": "東京都千代田区丸の内一丁目1番1号",
  "registration_date": "2023-10-01",
  "update_date": "2023-10-01",
  "disposal_date": null,
  "expire_date": null
}

disposal_date(取消年月日)と expire_date(失効年月日)が null であれば、現時点で有効な登録です。取消は国税庁による登録の取消し、失効は事業者側の登録の失効を指します。

3. 請求書の日付時点で有効だったかを確認する

実務で必要になるのは「今有効か」ではなく「その請求書の日付時点で有効だったか」です。現在の状態だけでは答えられません。

この機能は Standard プラン以上です。 作成したばかりのキーは無料プランのため、この呼び出しは 403 plan_required を返します。必要なプランは details.required_plan に入ります。手順 1 と 2 は無料プランで動作します。

curl "https://api.daichodo.com/v1/invoice-issuers/T8000000000001/validity?on=2024-06-30" \
  -H "Authorization: Bearer dc_test_..."
{
  "registration_number": "T8000000000001",
  "on": "2024-06-30",
  "valid": true,
  "reason": "valid",
  "registered_on": "2023-10-01",
  "ended_on": null
}

これは Daichodo が差分データを蓄積しているから答えられる質問です。国税庁は1社ごとの履歴を求めに応じて提供しています。本サービスは蓄積した変更履歴から判定するため、公表サイトの稼働状況に依存しません。

4. SDK を使う

npm install daichodo
import { getInvoiceIssuer } from 'daichodo';

const { data, error } = await getInvoiceIssuer({
  auth: () => process.env.DAICHODO_API_KEY,
  path: { registration_number: 'T8000000000001' },
});

if (error) throw new Error(error.message);
console.log(data.name);
pip install daichodo
from daichodo import AuthenticatedClient
from daichodo.api.registry import get_invoice_issuer

client = AuthenticatedClient(
    base_url="https://api.daichodo.com",
    token="dc_test_...",
)

issuer = get_invoice_issuer.sync(
    client=client, registration_number="T8000000000001"
)

いずれも OpenAPI スキーマから生成しています。手書きのコードはありません。

次に読むもの