17文字のVINチェックデジットを無料で検証
車両識別番号には、VINを車両台帳、在庫管理、保険手続き、整備データベースへ登録する前に転記ミスを発見するためのチェックデジットが含まれます。この検証ツールは17文字すべてに標準の数値変換と位置別の重み付けを適用し、期待される9文字目を算出して入力値と比較します。合否に加えて、入力された文字、算出された文字、剰余を明示します。車両情報の検索や保存は行いません。
無料で実行
VINのチェックデジットから分かること
現在のVINは17文字で構成される識別子であり、標準規則を採用する仕組みでは9文字目がチェックデジットです。このツールが確認するのは、9文字目が重み付き数値変換の計算上、ほかの文字と整合するかという一点です。合格なら、識別子が一貫して転記されたことを示す有用な手掛かりになります。不合格の場合は、ダッシュボードの表示板、認証ラベル、車検証などの書類、または原本と照合してください。ただし、合格しても車両が実在すること、適法に登録されていること、記載内容が正しいことの証明にはなりません。架空のVINにも数学的に正しいチェックデジットを付けられます。また、メーカー、市場、製造時期によってこの規則を使用しない場合があります。一般的な入力ミスを見つける品質確認として利用し、車両の同一性、所有権、盗難、リコール、仕様については公的または信頼できる記録をご確認ください。
重み付き数値変換の計算方法
最初に、使用可能な各英字を所定の数値へ変換し、数字はそのままの値として扱います。I、O、Qは数字と見間違いやすいため、VINでは使用できません。17個の値には位置ごとに次の重みを掛けます。8、7、6、5、4、3、2、10、チェックデジット位置のゼロ、続いて9、8、7、6、5、4、3、2です。積をすべて合計し、その値を11で割ります。剰余が期待されるチェックデジットとなり、ゼロから九までは対応する数字、剰余10はXで表します。9文字目の重みがゼロなので、入力されたチェックデジットが自身の計算に影響することはありません。この機能は、大文字に正規化したVIN、入力された9文字目、算出した文字、剰余を返します。単なる真偽値ではなく根拠も確認できるため、システム連携時の調査や利用者への説明にも役立ちます。
フォームや自動処理で安全に検証する方法
VINは17文字の文字列として、そのまま送信してください。小文字は受け付けて大文字へ変換しますが、空白、句読点、装飾用の区切り文字、改行を自動的に削除することはありません。この厳密な動作には、想定外の入力を連携処理で検出し、識別子を無断で変更しないという目的があります。長さが17文字でない場合や、VINで認められない文字がある場合は入力エラーになります。一方、形式が正しくてもチェックデジットが一致しないVINは、不正な形式とは区別され、validが偽の通常結果を返します。画面では、入力形式を直すべきか、識別子を原本で再確認すべきかを適切に案内できます。一括取り込みでは元データを正規化結果とともに保存し、不一致を確認作業へ回してください。地域やモデル年で異なる規則があり得るため、この計算だけで法的資料や古い記録を拒否しないでください。APIによる自動処理は1回$0.002で、ブラウザーでは同じ決定的計算を端末内で実行します。
活用例
車両在庫の入力ミスを検出
在庫レコードを作成する前に、入力または読み取ったVINを確認し、不一致があれば実車と照合できます。
整備予約フォームを検証
形式に誤りがある識別子と、形式は正しいものの9文字目が計算結果と異なるVINを区別できます。
取り込んだ車両記録を確認
決定的な品質検査をインポート処理に加え、公的な車両同一性の確認は別工程として維持できます。
よくある質問
VINチェックデジットの検証料金はいくらですか?
APIは1回$0.002です。このページのブラウザー実行機能では、同じ決定的計算を無料で利用できます。
VINのチェックデジットは何文字目ですか?
17文字のVINの9文字目です。0から9までの数字、またはXを使用します。
計算結果がXになるのはなぜですか?
計算には11を法とする剰余を使います。剰余が10の場合、チェックデジットをXで表すのが標準です。
合格すれば車両が本物だと証明できますか?
いいえ。確認できるのは数学的な整合性だけです。同一性、所有権、盗難、リコール、仕様は公的な記録でご確認ください。
VINに小文字を入力できますか?
はい。大文字へ変換されます。空白や記号は削除されず、I、O、Qは無効な文字として拒否されます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/misc2/vin-check-digit-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"vin":"1M8GDM9AXKP042788"}'const res = await fetch("https://api.kit.forhosting.com/misc2/vin-check-digit-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"vin": "1M8GDM9AXKP042788"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/misc2/vin-check-digit-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"vin": "1M8GDM9AXKP042788"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/misc2/vin-check-digit-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"vin":"1M8GDM9AXKP042788"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"vin":"1M8GDM9AXKP042788"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/misc2/vin-check-digit-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"vin": "1M8GDM9AXKP042788"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "misc2.vin_check_digit_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |