ISINチェックディジット
本体US037833100のチェックディジットは5で、完全なISINはUS0378331005になります。保存や印刷の前に証券コードを完成させたり、取引先のファイルにある12文字のISINを確かめたりできます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- コード
- US037833100
- 変換後
- 3028037833100
- 計算モード
- Compute
- 入力
- US037833100
- 国コード
- US
International Securities Identification Number(ISIN)は、ISO 6166 に基づき市場横断で有価証券を一意に識別する12文字のコードです。先頭2文字は国コード、続く9文字は国内証券識別番号(NSIN)、12文字目は文字を数字に変換してLuhnアルゴリズムを適用して得られる1桁の数値チェックディジットです。本機能はその公式規則のみを実装します。computeモードは英数字ちょうど11文字を受け取り、チェックディジットと完全な12文字ISINを返します。validateモードは完全な12文字ISINを受け取り、末尾桁が再計算した期待値と一致するかを報告します。
ISINのLuhnチェックディジットの計算方法
ISO 6166 ではISINは常に12文字です。発行国または地域を示す大文字2文字、NSIN用の英数字9文字(CUSIPやSEDOLなどゼロ埋めの国内番号であることが多い)、およびチェック文字となる末尾1桁です。その桁を計算するには、11文字の本体を取り、固定写像(Aは10、Zは35)で各文字を2桁の十進数に展開し、数字はそのまま1桁にします。
結果は本体に含まれる文字数に依存する純数字列になり、国コードだけでも両文字が文字のため常に4桁を寄与します。その展開列の右から古典的なLuhnを適用します。チェックディジットを付けた後、本体の右端桁が全番号の右から2番目になるため、本体の右端桁から始めて1つおきに2倍します。
2倍が9を超えたら9を引きます(積の十の位と一の位を足すのと同等です)。加重値をすべて足し、チェックディジットは「10マイナスその和のmod 10」をさらにmod 10したもので、チェックを含む完全な数字列のLuhn合計が10で割り切れるようにします。検証では先頭11文字から期待桁を再計算し、12文字目と比較します。
12文字目は常に0から9の十進桁でなければなりません。アルゴリズムは決定的かつローカルで、発行体レジストリ呼び出し、時計、乱数はありません。本ツールはISINを名称に解決せず、FIGIなど代替識別子も扱わず、コードが取引所で有効であることも証明しません。
ISO 6166 のLuhn規則の下で文字列が整形式であることの証明だけです。カードやIMEIのLuhnツールと比べ、ここでの検索意図は狭いです。11文字本体用のISINチェックディジット計算機、または12文字の証券ISINチェッカーを求める方向けであり、決済や端末向けではありません。
入力契約、モード、エラー挙動
computeが既定モードです。長さ誤りはモードと送った長さを名指しする明示エラーで、computeは11、validateは12です。クライアントフォームは推測せず「11文字が必要」と表示できます。
空文字、欠落した code、無効な mode、validate時の非数字の12文字目、2文字+9英数字の形状に合わない本体は、Luhn合計の前に失敗し課金されません。
マスタデータやラベル向けにISINを生成・完成するときは compute を、ユーザー・取引先ファイル・市場データフィードからの完全ISINで取引・取込み・照会をゲートするときは validate を選んでください。形状不良を拒否する検証タスクは課金されません。
形状は正しいがチェックディジットだけが違う12文字列は例外を投げず valid false を返します。
実務フローでのISINチェックディジットの位置づけ
発行体、代理人、番号付与機関は国内コードを受け取り、目論見書、コーポレートアクション、規制提出物にISINを印刷する前に公式のLuhnチェックディジットを付けます。ブローカーやカストディアンのオンボーディング画面は入口で12文字ISINを検証し、1回の転置が幽霊ポジションや失敗した決済指図を生まないようにします。
銘柄マスタを読み込むETLはCSVやFIXのセキュリティ定義の各ISIN列を走査し、validateモードを呼び、valid が false の行を隔離します。人手編集と生成器のずれの両方を捉えます。どのフローでも契約は同じです。
チェックが通ったISINを、上場・流動性・コーポレートアクションなしの証明とみなさないでください。それは国際証券識別のISO 6166標準重みの下で、展開した国コードとNSINにLuhn桁が整合することの証明に過ぎません。
活用例
証券在庫のISIN列を監査する
ミドルオフィス、カストディ、市場データのCSV内の各12文字ISINを一括検証し、チェックディジットが再計算した期待値と一致しない行を隔離します。
よくある質問
ISINチェックディジットとは何ですか?
ISINの12文字目で、先頭11文字について文字A–Zを10–35に展開したうえでLuhnアルゴリズムにより0から9の桁として計算され、入力や読取の誤りを保存・取引前に多く検出します。
ISINの各部分は何を表していますか?
最初の2文字は発行国や地域、続く9文字は国内の証券番号、12文字目はチェックディジットです。US0378331005なら、USが国、037833100が国内番号、5がチェックディジットです。
ISINのチェックディジットはどう計算しますか?
文字はAを十、Zを三十五として2桁の数に置き換え、数字はそのまま使います。そのうえで右からLuhn方式を当てはめ、最後の桁から1つおきに2倍し、9を超えたら9を引いて合計し、10から余りを引きます。
正しいISINなら証券は上場していますか?
いいえ。チェックディジットが合っていれば、12文字が互いに矛盾していないと分かるだけです。発行体の名簿などは照会しないため、上場や決済の状況は分かりません。
ISINの中の9文字はCUSIPと同じですか?
多くの場合そうです。中央の9文字は国内の番号で、CUSIPやSEDOLをゼロで埋めたものがよく使われます。US0378331005では037833100がそれに当たります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/isin \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"code":"US037833100"}'const res = await fetch("https://api.kit.forhosting.com/enc/isin", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"code": "US037833100"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/isin",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"code": "US037833100"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/isin", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"code":"US037833100"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"code":"US037833100"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/isin", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"code": "US037833100"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.isin",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
英数字以外、誤った長さ、不正な国コードまたはNSIN形状は黙って削らず invalid_input で失敗するため、中途半端な識別子を永続化しません。同じ純粋な算術がブラウザで無料、公開API価格でも動き、発行体データベースへのネットワーク照会はなく、チェックサムが通ったからといって上場・決済済み・コーポレートアクションなしを主張しません。
入力契約、モード、エラー挙動
trimと大文字化の後、AからZの文字と0から9の数字だけを含む code フィールドを送ってください。空白、ハイフン、記号、句読点は非英数字入力として invalid_input で拒否され、黙って削られた値が保存に届きません。エンジンは国コード2文字+英数字NSIN9文字のちょうど11文字を要求し、check_digitを1文字の文字列で、with_checkを印刷・保存できる12文字ISINで返し、監査用に converted(展開数字列)、country_code、nsin も返します。validateは末尾が数字であるちょうど12文字を要求し、末尾桁が再計算した expected_check_digit と一致すれば valid true を報告し、常に payload(先頭11文字)、converted、check_digit、expected_check_digit、length 12 を含みます。isin、number、text などの別名が同じペイロード欄に使え、「isin」を既に使う統合のリネームは不要です。時計・乱数源・ネットワークのない純粋なparse経路のため、同一JSONボディは無料ブラウザツールでもAPIでも、成功リクエストあたり $0.002 で常に同じJSON結果になります。
実務フローでのISINチェックディジットの位置づけ
ミドルオフィスと静的データチームは、相手方が電話でコードを読み上げたりPDFから貼り付けたりしたときに expected_check_digit を再計算し、誤った証券への約定前に打ち間違いを捕捉します。結合テストは US0378331005 のような既知フィクスチャの with_check を固定し、マッピングライブラリ、ラベルプリンタ、本APIがずれないようにします。
連携の活用例
マスタデータ向けに11文字本体を完成させる
国+NSINの11文字本体でcomputeモードを呼び、with_checkを保存し、12文字ISINを銘柄マスタ、目論見書、コーポレートアクション通知に公開します。
入力時に手入力・取込みISINを検証する
フォーム、FIXフィード、取引先ファイルが12文字を送ったときvalidateモードを呼び、validがfalseなら予約を止め、expected_check_digitを示して1文字の打ち間違い修正を助けます。
技術的な質問
このAPIでISINチェックディジットを計算するには?
codeを英数字ちょうど11文字(国コード2文字+NSIN9文字)にし、mode compute(またはmode省略)でPOSTします。応答に check_digit と with_check(完全な12文字ISIN)が含まれます。
完全な12文字ISINを検証するには?
12文字の文字列と mode validate でPOSTします。応答に valid、check_digit、expected_check_digit、payload(末尾以外)、converted(展開数字列)が含まれます。
長さ誤り、ハイフン、文字のチェックディジットでは?
非英数字入力、computeで11以外・validateで12以外の長さ、非数字の12文字目、2文字+9英数字でない本体は invalid_input で拒否されます。形状不良の検証失敗は課金されません。
ISINチェックディジットツールは無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは公開基本価格 $0.002 の前払いKIT残高を使い、無効入力は課金されません。