デンマークCPRチェック
0707610018を入力すると、1961年7月7日生まれの女性の有効なデンマークCPR番号で、mod-11の検査にも合格と分かります。070761-0018のようなハイフン付きでも使えます。口座開設や人事データの確認に便利で、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数
- 0707610018
- 入力
- 0707610018
- 生年月日
- 1961-07-07
- 日
- 7
- 月
- 7
デンマークのCPR番号(Det Centrale Personregister の personnummer)は、税制・医療・銀行・雇用、およびデンマークのほとんどの公的フォームで使われる国家の市民識別子です。標準形は10桁で、先頭6桁が生年月日の日・月・年(DDMMYY)、続く4桁が世紀の手がかり・連番・末尾のチェックディジットを含むシリアルです。古典的な番号では10桁すべてに重み付きモジュロ11検査を適用し、1桁の打ち間違いの多くを保存や照合の前に拒否します。この機能はその構造だけを検証します。第7桁の公式な世紀規則に基づき埋め込み日付が実在する暦日かどうかを確認し、古典的mod-11の和が割り切れるかを報告し、ISO形式の生年月日と末尾桁から推定した性別(奇数は男性、偶数は女性)を返します。DDMMYY-XXXX のようなハイフン付き表示も正規化後に受け付けます。
デンマークCPR番号の構造と検査のしくみ
デンマークの民事登録実務では、CPR personnummer は10桁で、DDMMYYXXXX のように連続して書くか、日付の後にハイフンを入れた DDMMYY-XXXX として書きます。1・2桁目が誕生日、3・4桁目が月、5・6桁目が2桁の年です。
0〜3は1900年台、4と9は年が36以下なら2000年台・それ以外は1900年台、5〜8は年が57以下なら2000年台・それ以外は最古コホート向けに1800年台です。完全な年が分かると、うるう年の2月29日を含む暦日が存在するかをホスト時計ではなく純算術で確認します。
古典的制御は10桁に固定重み4・3・2・7・6・5・4・3・2・1を掛け、加重和が11で割り切れることを要求します。末尾桁は性別指標でもあり、奇数は男性・偶数は女性です。2007年10月の検査緩和以降に発行された番号は、mod-11和が失敗しても行政発行であり得ます。
よく知られた例は 0707610018(1961年7月7日生まれ・女性・古典チェック合格)です。アルゴリズムは決定的でローカルです。
デンマークCPR検査が実業務に効く場面
銀行とフィンテックは口座開設時に10桁CPRを検証し、1回の転置で幽霊顧客や却下KYCが生まれないようにします。雇用主と給与ベンダーは古典番号で valid true にオンボーディングをゲートし、サンドボックス生成器は 0707610018 のような既知フィクスチャを固定してテスト従業員が本番識別子らしく見えるようにします。
デンマークの顧客・従業員マスタを取り込むETLはCSVやXMLの各CPR列を走査し本機能を呼び、valid が false の行を隔離して人手編集と生成器のオフバイワンを捉えます。自治体や学校はハイフン付きと連続形の両方を受け付けることが多く、桁検査前に空白とハイフンを除けば第二アルゴリズムなしで契約を単純に保てます。どの流れでも約束は同じです。
合格CPRを、人口登録で生存している・デンマーク健康保険証を持つ・サービス利用が許可されている証拠とみなさないでください。世紀規則下で日付が暦として妥当であり、その規則がなお適用されるときの古典mod-11桁が公式重みと一致することだけを示します。
活用例
オンボーディングフォームで入力されたデンマークCPRを検証
登録・銀行KYC・人事フォームが personnummer を収集するとき本検査を呼び、valid が false なら送信を止めつつ抽出したISO生年月日を修正用に表示してください。
デンマークのマスタデータのCPR列を監査
CRM・EHR・給与のCSV内の全CPRを一括検証し、日付が不可能な行や古典的mod-11が一致しない行を隔離してください。
よくある質問
デンマークCPR検査は何を検証しますか?
10桁のデンマーク personnummer が実在する暦上の生年月日(第7桁からの世紀)を含み、10桁すべてに対する古典的重み付きmod-11制御が通るかを確認します。
どの形式で送ればよいですか?
10桁の DDMMYYXXXX を送ってください。ハイフンや空白も可(例:070761-0018)。空白とハイフン除去後はちょうど10桁の 0–9 である必要があります。
mod-11が失敗しても日付が実在する場合は?
2007年以降のCPRは古典チェックなしでも行政発行され得ます。
生まれた年の4桁はどのように決まりますか?
7桁目と2桁の年から決まります。0〜3なら1900年代、4と9は36年までなら2000年代でそれ以外は1900年代、5〜8は57年までなら2000年代でそれ以外は1800年代です。
検証に通れば、その人が実在し登録されていると言えますか?
言えません。住民登録には問い合わせないため、分かるのは日付と検査の数字が合っていることだけです。その人が生存していることや登録済みであること、サービスを受ける資格までは示しません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/cpr-denmark \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"0707610018"}'const res = await fetch("https://api.kit.forhosting.com/enc/cpr-denmark", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "0707610018"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/cpr-denmark",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "0707610018"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/cpr-denmark", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"0707610018"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"0707610018"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/cpr-denmark", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"number": "0707610018"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.cpr_denmark",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
桁数不正・非数字・存在しない日付は silent な切り捨てではなく invalid_input で失敗します。同じ純算術がブラウザ無料版と公開API価格で動き、住民登録への照会はなく、検査合格が生存・登録・サービス利用資格を意味するとは主張しません。
デンマークCPR番号の構造と検査のしくみ
第7桁は世紀の解決に使われ、別フィールドなしで4桁の生年を復元します。本ツールは引き続き mod11_valid を報告し、呼び出し側が厳密方針か日付のみ方針を選べます。
入力契約・応答形・エラー挙動
空白とハイフンは除去され、070761-0018 のような一般的なデンマーク表示が正規化後に受け付けられます。正規化後、エンジンはちょうど10桁を要求します。日・月・2桁年を解析し、第7桁から完全な年を解決し、不正な暦日を日または月を明示したメッセージで拒否します。strip後の桁数不正・空文字・number欠落・非数字本体はチェックサム前に失敗し課金されません。CPR本体を含む必須の number フィールドを持つJSON本体をPOSTしてください。その他の句読点や文字は非数字入力として invalid_input で拒否され、静かに削られた値が保存に届くことはありません。実在日付の場合、応答には常に正規化済み10桁の input、古典的mod-11も通ったときだけ true の valid、ISOの birth_date、整数の day・month・year、6桁DDMMYY断片の date、4桁の serial、male または female の gender、チェックサムの真偽を映す mod11_valid、末尾文字の check_digit、length 10、algorithm denmark-cpr-mod11 が含まれます。実在日付でも制御桁が誤っている整形式文字列は例外を投げず valid false と mod11_valid false を返し、フォームは抽出した生年月日を示しつつ登録を止められます。cpr・digits・text・value・code・id などの別名も同じペイロード欄として受け付け、デンマーク語フィールド名の統合でもリネーム不要です。時計・乱数源・ネットワークのない純parseのため、同じJSON本体は無料ブラウザと成功リクエストあたり $0.002 のAPIで常に同じJSON結果になります。ユーザーやパートナーフィードが入力したCPRでフォーム・KYC・人事取込・医療受付をゲートし、1回の呼出で日付検査と古典制御の両方が必要なときにこのエンドポイントを選んでください。
デンマークCPR検査が実業務に効く場面
医療ポータルと薬局システムは、クリニックが電話で番号を聞き取ったりスキャンしたカードから貼り付けたりするとき birth_date と mod11_valid を再計算し、カルテや処方箋の前に誤入力を捕捉します。結合テストは固定サンプルで birth_date と gender を断言し、フォームライブラリ・ラベルプリンタ・本APIのずれを防ぎます。
連携の活用例
医療・給与テスト用フィクスチャを固定
0707610018 のような既知の有効サンプルをサンドボックス患者・従業員に使い、birth_date・gender・mod11_valid を断言してテストデータをリリース間で安定させてください。
技術的な質問
いつ invalid_input になりますか?
number 欠落・空文字・除去後の非数字・長さが10以外・不可能な暦日(不正な月や日)はすべて invalid_input で失敗し、課金されません。
デンマークCPR検査の料金は?
ブラウザツールは無料でローカル実行です。API呼び出しは公開された基本価格 $0.002 の前払いKIT残高を使い、無効入力は課金されません。