CUSIPチェックディジット
CUSIPの先頭8文字を入力すると、9文字目が分かります。03783310のチェックディジットは0で、完全なコードは037833100です。9文字そろったコードなら、取引を記録する前に最後の数字を確認できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- CUSIP番号
- 03783310
- 計算モード
- Compute
- 入力
- 03783310
- チェックディジット
- 0
- CUSIP番号
- 037833100
CUSIP識別子は北米の株式・債券などの証券に付けられ、清算システム、注文票、ポートフォリオファイルが同じ9文字コードで一致するようにします。先頭8文字が発行体と銘柄を示し、9文字目は本体から計算されるチェックディジットで、誤入力や桁入れ替えがしばしば検証で弾かれ、誤った銘柄に約定が付く前に止まります。本機能はその標準チェックディジットアルゴリズムを実装します。数字と文字を値に写像し、交互位置を倍にし、十進桁を合算し、合計が10の倍数になる桁を返します。8文字本体だけがあり末尾桁が必要なときはcomputeモードを、完全な9文字CUSIPを受け取り真偽値と期待桁が必要なときはvalidateモードをご利用ください。
CUSIPチェックディジットの計算方法
CUSIPは馴染みのANSI X9.6様式レイアウトで9文字です。発行体6文字、銘柄2文字、末尾のチェックディジット1文字です。本体の各文字は数値に写像されます。
数字0から9はそのまま、文字AからZは10から35、特殊記号のアスタリスク、アットマーク、ハッシュは出現時に36、37、38になります。本体8文字を左から右へ走査し、2番目・4番目・6番目・8番目の位置の値を倍にします。得られた各数は十進桁の和で縮約します。
たとえば14は5になり、大きな文字値が合計を支配しないようにします。それらの桁和を足し合わせます。チェックディジットは合計の10を法とした値を10から引き、その結果を再び10を法とした値で、0から9の1桁になります。
その桁を付けると、重み付き桁和が10を法として0と合同な完全な9文字CUSIPになります。本ツールはその標準走査を正確に適用し、独自変種は作りません。EAN-13などの小売バーコードや決済カードのLuhnと比べ、CUSIPは英数字で固定長のため、商品バーコード検証ではなく証券識別子の符号化ユーティリティに位置づけられます。
computeモードとvalidateモード
computeは既定でちょうど8文字が必要です。validateはちょうど9文字を期待し、9文字目は0から9の数字です。空文字、cusip欠落、モードに合わない長さ、validate時の非数字の9文字目、無効なmode値は、重み付き合算の前に失敗し課金されません。
文字は大文字小文字を区別せず、エコーされた入力では大文字に正規化されるため、スプレッドシートからの混在貼り付けにも対応します。データベンダーがチェックディジットを省略した本体を完成させるときはcomputeを、ユーザー・パートナーファイル・スキャナが完全CUSIPを送り銘柄照会前に真偽ゲートが必要なときはvalidateを優先してください。
実務ワークフローでのCUSIPチェックディジット
ブローカーディーラーとバイサイド運用チームは日次のポジション・約定ファイルを取り込みます。1文字の入れ替えで誤った債券や株式にリスクが計上され得ます。取込時に全CUSIPを検証しvalidがfalseの行を隔離すれば、マスターデータの静かな汚染を防げます。
名義書換代理人やコーポレートアクションデスクは、別フィードから組み立てた発行体・銘柄コードに対しcomputeでチェックディジットを再計算し、保存する9文字が業界慣行に合うようにします。
統合テストとデータ品質ジョブはCSVエクスポートの各行で期待チェックディジットを再計算し、保存済み完全CUSIPが一致しない行をフラグし、人手編集と生成器の1ずれを捕捉します。どの流れでも契約は同じです。通過したCUSIP検査を、証券の存在・流動性・取引権限の証明と見なさないでください。
このアルゴリズム下で9文字が整形式であることだけを示し、他のチェックサムと同じ誠実さの基準です。
活用例
8文字のCUSIP本体を完成させる
フィードや表計算が発行体と銘柄の8文字本体だけを渡すときは、computeモードを呼び、返された完全なcusipを保存し、下流のすべてが標準の9文字識別子を受け取るようにします。
証券マスターのエクスポートを監査する
ポートフォリオ・保管・コーポレートアクションのエクスポートの各CUSIP列を一括検証し、末尾チェックディジットが再計算の期待値と一致しない行を隔離します。
よくある質問
CUSIPチェックディジットとは何ですか?
CUSIPの9文字目で、8文字本体から算出される0–9の1桁です。よくある誤入力が、誤った証券が使われる前にモジュラチェックサムでしばしば失敗するようにします。
どの文字が使えますか?
数字0–9、文字A–Z(大文字小文字不問)、任意で* @ #です。空白とハイフンは除去されます。
CUSIPチェックディジットツールは無料ですか?
ブラウザツールは無料でローカル実行です。無効入力は課金されません。
CUSIPのチェックディジットはどう計算しますか?
8文字をそれぞれ数値に置き換えます。数字はそのまま、AからZの文字は10以上の値になります。偶数番目の値を2倍にし、各結果の桁を足し合わせ、合計を10の倍数にする数字がチェックディジットになります。
有効なCUSIPなら、その証券は実在しますか?
いいえ、そうとは限りません。チェックディジットが合うことは、9文字がCUSIPの規則どおりに組み立てられていることを示すだけです。このツールは何も照会しないため、証券の実在や売買の可否は確認できません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/cusip \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"cusip":"03783310"}'const res = await fetch("https://api.kit.forhosting.com/enc/cusip", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"cusip": "03783310"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/cusip",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"cusip": "03783310"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/cusip", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"cusip":"03783310"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"cusip":"03783310"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/cusip", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"cusip": "03783310"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.cusip",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
CUSIP以外の文字や長さ不正は、黙って壊すのではなく明確なinvalid_inputで失敗します。ブラウザでは無料、KIT APIは公開価格で同じ純粋算術を使い、証券マスターへのネットワーク照会はありません。
CUSIPチェックディジットの計算方法
下流ログがどの方式でフィールドを守ったかを記録できるよう、JSONでは常にalgorithmをcusipと名付けます。
computeモードとvalidateモード
任意の空白とハイフンを除いたあと、許可文字だけを含むcusipフィールドを送ってください。エンジンが本体を写像・重み付けし、check_digitを1文字の文字列で返し、cusipを完全な9文字識別子として返すので、1本の文字列として保存や印刷ができます。格納された末尾桁が再計算したexpected_check_digitと一致するとvalidはtrueになり、常に末尾を除いたbodyを含み、UIが入力と期待値を対比できるようにします。経路は純粋なparseで、時計・乱数・ネットワークがなく、同じ入力は無料ブラウザとAPIで常に同じJSONになります。成功リクエスト1件あたり$0.002で、証券マスター一括取込、オンボーディング、注文入力画面をカスタム契約なしで守れます。
実務ワークフローでのCUSIPチェックディジット
手動銘柄入力を受けるポートフォリオやパフォーマンスシステムは、失敗フィールド横にexpected_check_digitを示し、調査チケットの代わりに1回の誤入力修正を促せます。注文票やウォッチリストを作るプロダクトチームは、市場データや取引APIを呼ぶ前にvalidateで送信をゲートし、より不明瞭なエラーでシンボル拒否されるのを避けられます。
連携の活用例
入力時に手入力・取込CUSIPを検証する
ユーザーやパートナーファイルが完全な9文字CUSIPを送るときは、validateモードを呼び、validがfalseなら照会を止め、expected_check_digitを示して1回の誤入力修正を助けます。
技術的な質問
このAPIでCUSIPチェックディジットを計算するには?
cusipに8文字本体を入れ、modeをcomputeにしてPOSTします(mode省略可)。応答にはcheck_digitとcusip(本体+チェックディジット)が含まれます。
完全な9文字CUSIPを検証するには?
完全な9文字文字列とmode validateでPOSTします。応答にはvalid、check_digit、expected_check_digit、末尾を除いたbodyが含まれます。