EU VAT番号の国別形式を確認
VAT番号がそのEU加盟国の形に合っているかを確かめます。「DE 136-695-976」はDE136695976として読まれ、ドイツの形式に合格します。請求書から写した空白、点、ハイフンは無視されます。確認するのは形式で、登録の有無ではありません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- DE 136-695-976
- 正規化値
- DE136695976
- 国コード
- DE
- 国名
- Germany
- 期待される形式
- DE123456789
VAT番号は一見正しくても、対象国の構成規則に合っていない場合があります。このツールは2文字の国別接頭辞を読み取り、対応するEU形式を選んで、残りの文字をその国の公表パターンと照合します。EU内で異なる桁数や必須の英字に対応し、一般的な空白、ピリオド、ハイフンは無視します。得られるのは迅速な構文確認であり、事業者の実在やVAT登録が現在有効であることの証明ではありません。
VAT形式チェックで確認できること
形式チェックが答えるのは、限定的ですが実務上重要な問いです。入力された文字列が、指定したEU加盟国の構文に従って発行され得るVAT番号かどうかを確認します。判定規則は国別接頭辞によって決まります。
たとえばドイツの番号とベルギーの番号では桁数が異なり、オーストリア、オランダ、アイルランド、スペイン、キプロス、フランスの形式では、所定の位置に英字が必要な場合があります。このツールは英字を大文字に変換し、通常の空白、ピリオド、ハイフンを除去してから、該当国の規則を適用します。正規化済みの値、認識した国、想定形式の例、真偽値の結果を返します。
これにより、数字の不足、英字の位置違い、国際接頭辞を付けずに入力された国内税務番号、末尾が欠けたコピーなどを検出できます。国ごとのチェックディジットは意図的に計算も検証もしません。そのため、構造検査に合格しても、誤記、未割当、失効、別組織への登録といった可能性は残ります。
肯定結果は次の検証へ進むための条件であり、登録や本人性の証明ではありません。
国別接頭辞と区切り記号の入力方法
2文字のVAT接頭辞から始まる完全なVAT番号を入力してください。多くの接頭辞は一般的な国コードと一致しますが、ギリシャはEU VATの用途でELを使用します。そのため、ギリシャの番号はGRではなくELで始める必要があります。
このツールは現在のEU加盟27か国のVAT接頭辞を認識し、不明な接頭辞には入力エラーを返します。この区別は重要です。 認識済みの国で番号の形が誤っている場合は、validがfalseの通常結果になります。一方、不明な接頭辞では、適用できる国別規則自体がありません。
空白、ピリオド、ハイフンは見やすさのための区切りとして受け入れ、照合前に削除しますので、請求書からコピーした値も扱いやすくなります。それ以外の句読記号は残り、通常は形式不正になります。番号の前後にVAT、TVA、MwStなどのラベルを追加しないでください。
接頭辞の後が数字だけの形式も多い一方、1文字以上の英字が必須の国もあります。英字を数字に置き換えると形式が変わるため、正しく不合格になります。応答の正規化値には、実際に評価した短縮表記がそのまま示されます。
形式検証と登録確認の違い
構文検証は、データ受付フローの早い段階に置くのが適切です。結果は決定的かつ即時に得られ、入力された識別番号が外部の登録機関へ送信されることもありません。請求情報フォームの入力中、仕入先データの取り込み時、またはVAT番号を時間のかかる公的照会の待ち行列へ追加する前に利用できます。
falseであれば、ネットワーク要求を行う前に訂正を依頼する明確な理由が得られます。trueが示すのは、その接頭辞で許可された位置に文字が並んでいることだけです。VIES、各国の税務当局、企業登記簿への照会は行わないため、番号が実際に発行済みか、越境取引で有効か、記載された顧客に属するかは判断できません。
税務判断、VATを課さない請求、コンプライアンス証跡に用いる場合は、形式チェックの合格後に適切な公的登録確認を行い、社内手順で必要な証拠を保管してください。この二段階化により、障害も理解しやすくなります。ローカルな構文誤りは即座に直せる一方、登録サービスの停止、加盟国サービスの利用不能、実際の登録失効は後続の確認段階で扱われ、書式ミスと混同されません。
活用例
請求情報フォームの検証
顧客が請求プロフィールを送信する前に、非対応の接頭辞や国別の桁数誤りを検出できます。
仕入先データの整備
仕入先や顧客の取り込み時に区切り記号を正規化し、構造が不正なVAT番号を特定できます。
公的照会の事前確認
妥当と思われる番号を公的確認サービスへ送る前に、明白な構文誤りをローカルで除外できます。
よくある質問
有効という結果はVAT登録済みであることを証明しますか?
いいえ。 認識した国の文字パターンに合うことだけを示します。登録状況は公的な登録確認で確かめてください。
どの国に対応していますか?
現在のEU加盟27か国のVAT接頭辞に対応しています。ギリシャについてはEU VAT接頭辞のELを使用してください。
国別接頭辞の後に英字を含められますか?
はい。 複数の公的VAT形式で所定位置の英字が必須となっており、このツールは英字を保持して検証します。
空白やハイフンは使用できますか?
はい。 国別パターンの検査前に空白、ピリオド、ハイフンを削除し、正規化した短縮値を返します。
ギリシャのVAT番号がELで始まるのはなぜですか?
ギリシャはEUのVATではGRではなくELを使うためです。GRで入力したギリシャの番号は不明な接頭辞として扱われ、当てはめる国の規則がないためエラーになります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/data/vat-number-format-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"DE 136 695 976"}'const res = await fetch("https://api.kit.forhosting.com/data/vat-number-format-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "DE 136 695 976"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/vat-number-format-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "DE 136 695 976"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/vat-number-format-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"DE 136 695 976"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"DE 136 695 976"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/vat-number-format-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "DE 136 695 976"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.vat_number_format_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 25 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な質問
不明な国別接頭辞を入力するとどうなりますか?
その接頭辞に利用できる国別VATパターンがないため、リクエストはinvalid_inputエラーになります。
APIリクエストの料金はいくらですか?
APIリクエスト1件につき$0.002です。ブラウザー版はネットワーク照会を行わず、ローカルで実行されます。