فحص CPR الدنمارك
أدخل 0707610018 لترى أنه رقم CPR دنماركي صالح لامرأة وُلدت في 7 يوليو 1961، وأنه يجتاز فحص باقي القسمة على 11. وتُقبل الصيغة بالشرطة مثل 070761-0018. مفيد لفتح الحسابات وبيانات الموظفين. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- العدد
- 0707610018
- المُدخَل
- 0707610018
- تاريخ الميلاد
- 1961-07-07
- اليوم
- 7
- الشهر
- 7
رقم CPR الدنماركي (personnummer التابع لـ Det Centrale Personregister) هو المعرّف المدني الوطني المستخدم في الضرائب والرعاية الصحية والمصارف والتوظيف ومعظم الاستمارات العامة في الدنمارك. في شكله المعتاد يتألف من عشرة أرقام: ستة لتاريخ الميلاد يوم-شهر-سنة (DDMMYY) ثم أربعة للتسلسل الذي يشفّر إشارات القرن وتسلسلاً جارياً ورقم تحكم أخيراً. تطبق الأرقام الكلاسيكية مجموعًا مرجّحًا modulo أحد عشر على الأرقام العشرة كلها، فيُرفض عادةً خطأ كتابة واحد قبل تخزين المعرّف أو مطابقته. تتحقق هذه القدرة من ذلك الهيكل فقط. تتأكد أن التاريخ المضمّن يوم تقويمي حقيقي وفق قواعد القرن الرسمية للرقم السابع، وتُبلغ إن كان مجموع modulo أحد عشر الكلاسيكي يقبل القسمة دون باقٍ، وتعيد تاريخ الميلاد بصيغة ISO مع الجنس المستنتج من الرقم الأخير (فردي ذكر، زوجي أنثى). تُقبل أشكال العرض ذات الشرطة مثل DDMMYY-XXXX بعد التطبيع.
كيف يُبنى رقم CPR الدنماركي وكيف يُفحص
وفق ممارسة التسجيل المدني الدنماركية، يكون personnummer الـ CPR عشرة أرقام تُكتب متصلة DDMMYYXXXX أو بشرطة بعد التاريخ DDMMYY-XXXX. الموضعان الأول والثاني يوم الميلاد، والثالث والرابع الشهر، والخامس والسادس السنة برقمين.
يشارك الرقم السابع في حل القرن لإعادة بناء سنة الميلاد بأربعة أرقام دون حقل قرن منفصل: الأرقام من صفر إلى ثلاثة تُقابل ألفًا وتسعمائة زائد السنة ذات الرقمين؛ والأرقام أربعة وتسعة تُقابل ألفين عندما تكون السنة ستة وثلاثين أو أقل وإلا تبقى في ألف وتسعمائة؛ والأرقام من خمسة إلى ثمانية تُقابل ألفين عندما تكون السنة سبعة وخمسين أو أقل وإلا ألفًا وثمانمائة لأقدم الأفواج.
بعد معرفة السنة الكاملة تتحقق القدرة من وجود اليوم في ذلك الشهر، بما في ذلك التاسع والعشرون من فبراير في السنوات الكبيسة الغريغورية فقط، بحساب صرف دون ساعة المضيف. قاعدة التحكم الكلاسيكية تضرب الأرقام العشرة بالأوزان الثابتة أربعة وثلاثة واثنين وسبعة وستة وخمسة وأربعة وثلاثة واثنين وواحد وتشترط أن يكون المجموع المرجّح قابلاً للقسمة على أحد عشر. الرقم الأخير مؤشر للجنس أيضاً: فردي للذكر وزوجي للأنثى.
مثال معروف هو صفر سبعة صفر سبعة ستة واحد صفر صفر واحد ثمانية، وُلد في السابع من يوليو ألف وتسعمائة وواحد وستين، أنثى، بمجموع كلاسيكي ناجح.
أين تندمج فحوصات CPR الدنماركية في مسارات العمل الحقيقية
تتحقق المصارف وشركات التقنية المالية من قيم CPR ذات العشرة أرقام عند فتح الحساب حتى لا تُنشئ تبديلة واحدة عميلاً وهمياً وسجلاً KYC مرفوضاً. يشترط أصحاب العمل ومزوّدو الرواتب نماذج الإدماج على valid true للأرقام الكلاسيكية، بينما تثبّت مولدات بيئات الاختبار عيّنات معروفة مثل صفر سبعة صفر سبعة ستة واحد صفر صفر واحد ثمانية ليبدو موظفو الاختبار كمعرّفات إنتاج.
تمرّ مهام ETL التي تحمّل ملفات رئيسية لعملاء أو موظفين دنماركيين على كل عمود CPR في موجّه CSV أو XML، وتستدعي هذه القدرة وتعزل الصفوف حيث valid يساوي false، فالتقط التعديلات البشرية وأخطاء الزيادة بواحد في المولدات. تقبل أنظمة البلديات والمدارس غالباً الشكلين بشرطة وبدونها؛ إزالة المسافات والشرطات قبل فحص الأرقام تبقي العقد بسيطاً دون خوارزمية ثانية.
لا تعاملوا اجتياز فحص CPR كدليل على أن الحامل حي في سجل السكان أو يملك بطاقة صحة دنماركية أو مخوّل لخدمة؛ يثبت فقط أن التاريخ صالح تقويمياً وفق قواعد القرن وأن رقم modulo أحد عشر الكلاسيكي متسق مع الأوزان الرسمية عندما ما زالت تلك القاعدة تنطبق.
حالات الاستخدام
التحقق من CPR دنماركي مُدخل في نماذج الإدماج
عندما يجمع تسجيل أو KYC مصرفي أو نموذج موارد بشرية personnummer، استدعوا الفحص وامنعوا الإرسال إذا كان valid يساوي false مع إظهار تاريخ الميلاد ISO المستخرج للتصحيح.
تدقيق أعمدة CPR في البيانات الرئيسية الدنماركية
تحققوا دفعةً من كل CPR في CSV لنظام CRM أو EHR أو رواتب واعزلوا الصفوف ذات التاريخ المستحيل أو التي لم يعد تحكمها الكلاسيكي modulo أحد عشر متطابقاً.
الأسئلة الشائعة
ماذا يتحقق فحص CPR الدنمارك؟
يتحقق أن personnummer دنماركياً من عشرة أرقام يضم تاريخ ميلاد تقويمي حقيقي (القرن من الرقم السابع) وأن التحكم المرجّح الكلاسيكي mod-11 على الأرقام العشرة يمر.
ما التنسيق الذي ينبغي إرساله؟
أرسلوا عشرة أرقام DDMMYYXXXX، اختيارياً بشرطة أو مسافات (مثلاً 070761-0018). بعد إزالة المسافات والشرطات يجب أن يكون الجسم عشرة أرقام 0–9 تماماً.
هل يمكن أن يفشل رقم CPR حقيقي في فحص باقي القسمة على 11؟
نعم. فالأرقام الصادرة بعد تخفيف القاعدة في أكتوبر 2007 قد تكون حقيقية حتى لو فشل هذا الفحص. وتعرض الأداة نتيجته منفصلة لتطبّق سياسة صارمة أو تكتفي بصحة التاريخ.
كيف تُستخرج سنة الميلاد كاملة؟
من الرقم السابع والسنة المكتوبة برقمين: من 0 إلى 3 تعني الأعوام 1900، و4 و9 تعنيان الأعوام 2000 حتى السنة 36 وإلا 1900، ومن 5 إلى 8 تعني الأعوام 2000 حتى السنة 57 وإلا 1800.
هل يثبت الرقم الصالح أن الشخص حي أو مسجل؟
لا. لا تستعلم الأداة من سجل السكان، فاجتياز الفحص يعني فقط أن التاريخ ورقم التحكم سليمان، لا أن الشخص حي أو مسجل أو يحق له الحصول على أي خدمة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر 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"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
الطول الخاطئ والأجسام غير الرقمية والتواريخ المستحيلة تفشل بـ invalid_input بدل الاقتطاع الصامت. تعمل الحسابات النقية نفسها مجانًا في المتصفح وبالسعر المنشور لـ API، دون استعلام سجل السكان ودون ادّعاء أن اجتياز الفحص يعني أن الشخص حي أو مسجّل أو مخوّل لخدمة.
كيف يُبنى رقم CPR الدنماركي وكيف يُفحص
الأرقام الصادرة بعد تخفيف أكتوبر ألفين وسبعة قد تكون رسمية حتى لو فشل مجموع modulo أحد عشر؛ ما زالت هذه الأداة تُبلغ mod11_valid ليطبّق المستدعي سياسة صارمة أو سياسة تاريخ فقط. الخوارزمية حتمية ومحلية: بلا استدعاء سجل وبلا عشوائية وبلا كائن Date، فيتفق ودجت المتصفح المجاني ومسار API دائماً على الصلاحية نفسها وتاريخ الميلاد نفسه لنفس المدخل.
عقد الإدخال وشكل الاستجابة وسلوك الأخطاء
بعد التطبيع يطلب المحرك عشرة أرقام تماماً. يحلّل اليوم والشهر والسنة ذات الرقمين، ويحل السنة الكاملة من الرقم السابع، ويرفض التواريخ التقويمية المستحيلة برسالة واضحة تسمّي اليوم أو الشهر الخاطئ. الطول الخاطئ بعد الإزالة والسلاسل الفارغة وnumber المفقود والأجسام بلا أرقام تفشل قبل أي مجموع تحقق ولا تُفوتر. فضّلوا هذه النقطة الطرفية عندما تشترطون نموذجاً أو ملف KYC أو استيراد موارد بشرية أو قبولاً صحياً على CPR أدخله مستخدم أو موجّه شريك وتحتاجون في استدعاء واحد فحص التاريخ والتحكم الكلاسيكي معاً. أرسلوا جسم JSON بحقل number إلزامي يحتوي جسم الـ CPR. تُزال المسافات والشرطات فتقبل الأشكال الدنماركية الشائعة مثل صفر سبعة صفر سبعة ستة واحد شرطة صفر صفر واحد ثمانية بعد التطبيع؛ أي ترقيم أو حروف أخرى تُرفض كمدخل غير رقمي بـ invalid_input حتى لا يصل قيمة مُنقّاة بصمت إلى التخزين. مع تاريخ حقيقي تتضمن الاستجابة دائماً input كسلسلة العشرة المطبّعة، وvalid بقيمة true فقط عندما يمر التحكم الكلاسيكي modulo أحد عشر أيضاً، وbirth_date كسلسلة ISO سنة-شهر-يوم، وday وmonth وyear كأعداد صحيحة، وdate كقطعة DDMMYY ذات الستة أرقام، وserial كالذيل ذي الأربعة، وgender كـ male أو female، وmod11_valid كمرآة منطقية لمجموع التحقق، وcheck_digit كآخر محرف، وlength عشرة، وalgorithm denmark-cpr-mod11. سلسلة سليمة الشكل بتاريخ حقيقي لكن برقم تحكم خاطئ تعيد valid false وmod11_valid false دون رمي خطأ، فتعرض النماذج تاريخ الميلاد المستخرج وتمنع التسجيل مع ذلك. تُقبل أسماء بديلة مثل cpr وdigits وtext وvalue وcode وid لنفس حقل الحمولة حتى لا تحتاج التكاملات ذات الأسماء الدنماركية إلى إعادة تسمية. لأن المسار parse خالص بلا ساعة ولا مصدر عشوائي ولا شبكة، ينتج جسم JSON نفسه دائماً نتيجة JSON نفسها على أداة المتصفح المجانية وعلى API بسعر $0.002 لكل طلب ناجح.
أين تندمج فحوصات CPR الدنماركية في مسارات العمل الحقيقية
تعيد بوابات الصحة وأنظمة الصيدليات حساب birth_date وmod11_valid عندما تقرأ عيادة رقماً هاتفياً أو تلصقه من بطاقة ممسوحة، فالتقط أخطاء الكتابة قبل أرشفة قيد طبي أو وصفة. تؤكد اختبارات التكامل birth_date وgender لعيّنات ثابتة حتى لا تنحرف مكتبات النماذج وطابعات الملصقات وهذه الـ API.
حالات التكامل
تثبيت عيّنات للاختبارات الصحية والرواتب
استخدموا عيّنات صالحة معروفة مثل 0707610018 لمرضى وموظفي بيئة الاختبار مع تأكيد birth_date وgender وmod11_valid لتبقى بيانات الاختبار مستقرة عبر الإصدارات.
أسئلة تقنية
ماذا يحدث إذا فشل فحص mod-11 والتاريخ حقيقي؟
تنجح المهمة مع valid false وmod11_valid false مع استمرار إعادة birth_date وgender. قد تكون أرقام CPR بعد 2007 رسمية دون مجموع كلاسيكي ناجح؛ استخدموا mod11_valid لسياسة ألين.
متى نحصل على invalid_input؟
number المفقود أو السلسلة الفارغة أو المحارف غير الرقمية بعد الإزالة أو طول غير عشرة أو تاريخ تقويمي مستحيل (شهر أو يوم خاطئ) تفشل بـ invalid_input ولا تُفوتر.
كم يكلف فحص CPR الدنمارك؟
أداة المتصفح مجانية وتعمل محلياً. تستعمل استدعاءات API رصيد KIT المدفوع مسبقاً بالسعر الأساسي المنشور $0.002؛ المدخل غير الصالح لا يُحاسب.