台帳堂Daichodo

番号の検証

法人番号と登録番号の形式・チェックディジット検証です。無料で、回数の制限もありません。

数分あれば誰でも実装できる仕様が国税庁から公表されている以上、これを従量課金の対象にするのは筋が通りません。

API で

一度に最大 100 件まで受け付けます。認証は不要です。

curl -X POST https://api.daichodo.com/v1/validate \
  -H "content-type: application/json" \
  -d '{"numbers": ["T8000000000001", "8000000000001", "not-a-number"]}'
{
  "results": [
    { "value": "T8000000000001", "valid": true, "reason": null,
      "corporate_number": "8000000000001" },
    { "value": "8000000000001", "valid": true, "reason": null,
      "corporate_number": "8000000000001" },
    { "value": "not-a-number", "valid": false,
      "reason": "must be exactly 13 digits", "corporate_number": null }
  ]
}

区切り文字や空白は取り除いてから判定するので、請求書や表計算ソフトから貼り付けたままの値を渡して構いません。

ライブラリで

ネットワークを介さずに済ませたい場合は、同じロジックをオープンソースで公開しています。

npm install @daichodo/validate
import { isValid } from '@daichodo/validate';

isValid('8000000000001'); // true
isValid('T8000000000001'); // true
pip install daichodo-validate

チェックディジットの仕様

法人番号は 13 桁で、先頭 1 桁が残り 12 桁に対する検査用数字です。桁の入れ替えのような誤りを検出できます。

登録番号(T + 13 桁)にも同じ検証がすべて適用されます。法人・個人事業者を問いません。2026年9月5日に登録簿全体で実測した結果、5,421,496 件すべてがチェックディジットを満たし、例外はありませんでした。

個人事業者の 13 桁は法人番号ではなく、法人番号登録簿には存在しません。しかし採番規則が同じであるため、チェックディジットは成立します。つまり番号だけでは事業者の種別を判別できません。判別には照会が必要です。

したがってチェックディジットの不一致は打ち間違いか架空の番号を意味し、 valid: false を返します。2026年9月5日以前は、これらを「個人事業者」として valid: true としていました。その扱いでは入力ミスがすべて通過します。

検証と照会は別のことです

検証が答えるのは「これは番号として成立しているか」だけです。「その番号が実際に登録されているか」は照会の役割です。

形式として正しいが登録されていない番号は、いくらでも作れます。