カナダSINチェックディジット
基数04645428のチェックディジットは6で、完全なSINは046454286です。8桁を入力すれば計算、9桁なら検証ができ、税や給与の書類に入る前に入力ミスを見つけられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数
- 04645428
- 計算モード
- Compute
- 入力
- 04645428
- チェックディジット
- 6
- チェックディジット付き
- 046454286
カナダのSocial Insurance Number(SIN)は、税務申告、雇用、給付、およびカナダ各地の多くの行政・給与システムで使われる9桁の識別番号です。先頭8桁は個人に発行される基数で、9桁目はLuhnアルゴリズムによるチェックディジットであり、1桁の誤りや多くの入れ替えを保存・送信前に検出します。本機能はその公式Luhn規則のみを実装します。computeモードはちょうど8桁の基数を受け取り、チェックディジットと完全な9桁SINを返します。validateモードは完全な9桁SINを受け取り、末尾桁が再計算した期待値と一致するかを報告します。
カナダSINのLuhnチェックディジットの計算方法
Social Insurance Numberに関するService Canada様式の規則では、SINは常に9個の十進数字です。位置1から8が基数識別子で、位置9がチェックディジットです。計算するには8桁の基数を取り、その基数の右から古典的なdouble-add-doubleのLuhnアルゴリズムを適用します。
右端の基数桁から始めて2つおきに桁を2倍にします。チェックディジットを付けた後、その右端基数桁は完全な9桁列の右から2番目に位置するためです。ある桁の2倍が9より大きい場合は9を引きます(同等に、積の十の位と一の位を足します)。
重み付けした値をすべて加算し、チェックディジットは10からその和の10を法とする剰余を引いたもの、さらに10を法として、チェックディジットを含む完全な9桁列のLuhn合計が10で割り切れるようにします。検証では先頭8文字から期待桁を再計算し、提出されたSINの9桁目と比較します。アルゴリズムは決定的でローカルです。
政府登録への呼び出しも、時計も、乱数もありません。よく知られた公開フィクスチャは基数04645428で、チェックディジット6と完全なSIN 046454286になります。本ツールはSINを氏名に解決せず、番号が現在割り当てられていることを証明せず、Service CanadaやCRAに連絡もしません。
カナダのSocial Insurance Numberに使うLuhn規則の下で桁列が整形式であることだけを証明します。一般的なカードLuhn、NPI Luhn、IMEI Luhnツールと比べ、ここでの検索意図は狭いです。
8桁基数向けのカナダSINチェックディジット計算機、または9桁Social Insurance Numberチェッカーを必要とする人向けであり、決済・医療・機器ツールではありません。
入力契約、モード、エラー動作
computeモードが既定です。誤った長さは、送信したモードと長さを名指しする明示的エラーです(computeは8、validateは9)。クライアントフォームは推測なしで「8桁が必要」と表示できます。
空文字列、欠落したnumber、無効なmode値はLuhn合計の前に失敗し、課金されません。既に8桁を持つテスト用フィクスチャ、サンドボックス、内部生成器の基数を完成させるときはcomputeを、ユーザー・パートナーファイル・スキャナからの完全なSINで給与取込み・税フォーム・給付取込みをゲートするときはvalidateを優先してください。
形が悪い検証タスクは課金されず、単にチェックディジットが違う整形式の9桁列は例外を投げずにvalid falseを返します。生きている人の本物のSINを作る手段として本ツールを使わないでください。開発では合成または許可された基数のみを使い、本物のSINはプライバシーとセキュリティ方針の下で保存してください。
カナダSINチェックディジットが実業務に合う場面
給与・HRISベンダーはオンボーディング用サンドボックスで8桁の内部基数を受け取り、税票、直接振込フォーム、従業員記録にSINを出す前に公式のLuhnチェックディジットを付けなければなりません。税務ソフトと給付管理者は入力時に9桁SINを検証し、1回の転置が幽霊従業員や拒否されたT4・ROE提出を生まないようにします。
従業員マスタを読み込むETLジョブは、CSVや人事フィードの各SIN列を歩き、validateモードを呼び、validがfalseの行を隔離し、人手の編集と生成器のオフバイワンの両方を捉えます。どのフローでも契約は同じです。
検査に通ったSINを、Service Canadaが現在割り当てている番号である、受給資格がある、本人確認済みである、といった証明と見なさないでください。カナダのSocial Insurance Numberに使う重みの下でLuhn桁が基数と整合することだけを示します。
本物のSINは機微な個人情報として扱い、保存時に暗号化し、アクセスを制限し、アプリケーションテレメトリに完全な番号を記録しないでください。
活用例
従業員マスタのSIN列を監査する
給与・給付・税のCSVにある9桁SINを一括検証し、チェックディジットが再計算した期待値と一致しなくなった行を隔離します。
よくある質問
カナダSINのチェックディジットとは何ですか?
カナダのSocial Insurance Numberの9桁目で、先頭8桁に対するLuhnアルゴリズムで計算され、入力やスキャンの誤りが保存・提出前に多く捕捉されます。
SINのチェックディジットはどう計算しますか?
基数の最後の桁から始めて1桁おきに2倍し、9を超えた結果からは9を引きます。すべての値を合計し、合計を10の倍数にする数字がチェックディジットです。04645428なら6です。
有効なSINなら実際に発行された番号ですか?
いいえ。チェックディジットが合っていても、番号の形が正しいことしか分かりません。政府の登録簿は照会しないため、発行済みか、有効か、本人のものかは判断できません。
9桁のSIN全体を検証するには?
検証を選び、9桁を入力します。最初の8桁からチェックディジットを計算し直して最後の桁と比べ、一致するかどうかと本来あるべき数字を表示します。
空白やハイフン入りのSINを入力できますか?
いいえ。使えるのは0から9の数字だけで、空白やハイフン、文字が含まれると、こっそり取り除くのではなくはっきりエラーにします。知らないうちに書き換えられた番号が記録に残ることはありません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/sin-canada \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"04645428"}'const res = await fetch("https://api.kit.forhosting.com/enc/sin-canada", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "04645428"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/sin-canada",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "04645428"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/sin-canada", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"04645428"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"04645428"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/sin-canada", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"number": "04645428"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.sin_canada",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
非数値入力と誤った長さは静かな除去ではなくinvalid_inputで失敗するため、半分だけ整った識別子を永続化することはありません。同じ純粋な算術がブラウザでは無料で、公開API価格でも動き、政府登録へのネットワーク照会はなく、有効なチェックサムがSINが有効・発行済み・不正でないことを意味するとは主張しません。
入力契約、モード、エラー動作
0から9の文字だけを含むnumberフィールドを送ってください。空白、ハイフン、文字、小数点は非数値入力としてinvalid_inputで拒否され、静かに削られた値が保存に届くことはありません。エンジンはちょうど8桁を要求し、check_digitを1文字の文字列として返し、with_checkをフィクスチャやラベルに印刷・永続化できる9桁SINとして返します。validateモードはちょうど9桁を要求し、末尾桁が再計算したexpected_check_digitと一致するとvalid trueを報告し、常にpayload(先頭8桁)、check_digit、expected_check_digit、length 9を含めます。digits、sin、codeなどの別名は同じペイロード欄に受け入れられ、「sin」と呼ぶ既存統合は名前変更不要です。経路は時計・乱数源・ネットワークのない純粋なparseであるため、同じJSON本体は無料ブラウザツールと成功リクエストあたり$0.002のAPIで常に同じJSON結果になります。
カナダSINチェックディジットが実業務に合う場面
給付と雇用保険のチームは、顧客が電話で番号を読み上げたりPDFから貼り付けたりしたときにexpected_check_digitを再計算し、請求ファイル提出前に誤入力を捕捉します。統合テストは046454286のような既知の公開フィクスチャでwith_checkを固定し、フォームライブラリ、ラベルプリンタ、本APIがずれないようにします。
連携の活用例
給与フィクスチャ用に8桁SIN基数を完成させる
8桁の基数でcomputeモードを呼び、with_checkを保存し、テスト給与・税票・サンドボックス従業員記録に9桁SINを使います。
入力時に手入力・取込みSINを検証する
フォーム、HRISファイル、パートナーフィードが9桁を送るときはvalidateモードを呼び、validがfalseなら登録を止め、expected_check_digitを示して1桁の誤入力修正を助けます。
技術的な質問
このAPIでSINチェックディジットを計算するには?
numberをちょうど8桁にし、mode compute(またはmode省略)でPOSTします。応答にはcheck_digitとwith_check(完全な9桁SIN)が含まれます。
完全な9桁SINを検証するには?
9桁の文字列とmode validateでPOSTします。応答にはvalid、check_digit、expected_check_digit、payload(末尾を除く桁)が含まれます。
長さ誤り、文字、ハイフンではどうなりますか?
非数値入力と、computeで8以外・validateで9以外の長さはinvalid_inputで拒否されます。失敗した検証タスクは課金されません。
カナダSINチェックディジットツールは無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは公開基本価格$0.002の前払いKIT残高を使い、無効入力は課金されません。