انتقل التحقق من العمر من مربع اختيار إلى مهمة هندسية. في المملكة المتحدة يُلزم قانون السلامة على الإنترنت (Online Safety Act) بعض الخدمات باستخدام فحوص عمر "عالية الفعالية". وفي الاتحاد الأوروبي نشرت المفوضية الأوروبية مخططًا (blueprint) يتيح لك إثبات أنك فوق 18 عامًا دون تسليم أي شيء آخر. وكلاهما يذكر وثائق الهوية طريقًا من الطرق.

هذا المقال موجّه للمطورين الذين طُلب منهم "إضافة التحقق من العمر" ويريدون معرفة موقع مسح وثيقة الهوية من ذلك. يتناول الطرق التي تذكرها الجهات المختصة في المملكة المتحدة والاتحاد الأوروبي، وما يثبته مسح جواز السفر أو بطاقة الهوية وما لا يثبته، وكيف يتحول تاريخ الميلاد إلى جواب "فوق/تحت"، وما الذي يُحتفظ به بعد ذلك. كل اقتباس أدناه مأخوذ من صفحة الجهة نفسها، مع رابط في موضعه؛ وتُركت الاقتباسات بنصها الإنجليزي تتبعها ترجمة قصيرة.

هذه مدونة doc.cheap، وهي واجهة API للتعرّف على جوازات السفر وبطاقات الهوية. اقرأ الجزء المتعلق بالمنتج وأنت تضع ذلك في اعتبارك.

المملكة المتحدة: المعيار هو "عالية الفعالية"

يرد الالتزام في المادة 12 من قانون السلامة على الإنترنت لعام 2023. فبالنسبة لأشد أنواع المحتوى ضررًا، يجب على مقدّم الخدمة أن "use age verification or age estimation (or both) to prevent children of any age from encountering primary priority content that is harmful to children" (يستخدم التحقق من العمر أو تقدير العمر أو كليهما لمنع الأطفال من أي عمر من الوصول إلى المحتوى ذي الأولوية القصوى الضار بالأطفال). ويجب أن يكون الفحص "of such a kind, and used in such a way, that it is highly effective at correctly determining whether or not a particular user is a child." (من نوع ومستخدمًا بطريقة تجعله عالي الفعالية في تحديد ما إذا كان مستخدم معيّن طفلًا أم لا تحديدًا صحيحًا).

وتعرّف المادة 230 المصطلحين. فالتحقق من العمر "means any measure designed to verify the exact age of users" (يعني أي إجراء مصمَّم للتحقق من العمر الدقيق للمستخدمين) في الخدمة الخاضعة للقانون. وتقدير العمر "means any measure designed to estimate the age or age-range of users" (يعني أي إجراء مصمَّم لتقدير عمر المستخدمين أو فئتهم العمرية). كما تغلق المادة أسهل طريق مختصر: "A measure which requires a user to self-declare their age (without more) is not to be regarded as age verification or age estimation." (الإجراء الذي يطلب من المستخدم أن يصرّح بعمره بنفسه، دون أي شيء آخر، لا يُعدّ تحققًا من العمر ولا تقديرًا له.)

وتشرح Ofcom، الجهة البريطانية المشرفة على الاتصالات، هذا المعيار في إرشاداتها بشأن ضمان العمر عالي الفعالية لخدمات الجزء 3 (النسخة المحدَّثة مؤرخة في 24 أبريل 2025). ويقدّم القسم 3 "a non-exhaustive list" (قائمة غير حصرية) بالطرق التي تراها قادرة على أن تكون عالية الفعالية:

الطريقة في قائمة Ofcom هل تدخل فيها وثيقة هوية
الخدمات المصرفية المفتوحة لا
مطابقة الهوية المصوّرة (photo-ID) نعم، الوثيقة هي الدليل
تقدير العمر من الوجه لا
فحوص العمر لدى مشغّل شبكة الهاتف المحمول لا
فحوص بطاقة الائتمان لا
تقدير العمر عبر البريد الإلكتروني لا
خدمات الهوية الرقمية غالبًا، عند التحقق من الهوية أول مرة

وتصف Ofcom مطابقة الهوية المصوّرة هكذا: إنها "works by capturing relevant information from an uploaded photo-ID document and comparing it to an image of the user at the point of ID upload to verify that they are the same person." (تعمل بالتقاط المعلومات ذات الصلة من وثيقة هوية مصوّرة مرفوعة ومقارنتها بصورة للمستخدم تُلتقط لحظة رفع الوثيقة، للتحقق من أنهما الشخص نفسه.)

ويذكر القسم نفسه ما لا يُقبل، ومنه "asking a user to input their date of birth without further evidence to confirm this information" (أن يُطلب من المستخدم إدخال تاريخ ميلاده دون دليل إضافي يؤكد هذه المعلومة). فتاريخ الميلاد المكتوب يدويًا تصريح ذاتي. أما تاريخ الميلاد المقروء من وثيقة فهو دليل، وبقية إرشادات Ofcom تدور حول مدى جودة هذا الدليل المطلوبة.

الاتحاد الأوروبي: مخطط مبني على إثبات العمر

على الجانب الأوروبي، أصدرت المفوضية النسخة الأولى من مخطط التحقق من العمر في 14 يوليو 2025. وبعبارتها، فإن المخطط "provides a method to enable users to prove they are over 18 when accessing restricted adult content, such as online pornography, without revealing any other personal information." (يقدّم طريقة تمكّن المستخدمين من إثبات أنهم فوق 18 عامًا عند الوصول إلى محتوى البالغين المقيَّد، مثل المواد الإباحية على الإنترنت، دون كشف أي معلومات شخصية أخرى.)

ويفصل التصميم بين الفحص والاستخدام. فـ "age will be verified by the issuer using detailed personal data, like the date of birth. However, online services will only receive a proof that the user is over 18, without any other personal details." (سيتحقق المُصدِر من عمر المستخدم باستخدام بيانات شخصية مفصّلة مثل تاريخ الميلاد، لكن الخدمات على الإنترنت لن تتلقى إلا إثباتًا بأن المستخدم فوق 18 عامًا، دون أي تفاصيل شخصية أخرى.)

وتدخل وثائق الهوية في الخطوة الأولى. إذ تذكر صفحة المعلومات الخاصة بالمخطط لدى المفوضية مصادر إثبات العمر بأنها "national eIDs, passports and ID cards, pre-installed apps with age info, such as banking apps, or offline third-party activation, such as post office." (الهويات الإلكترونية الوطنية، وجوازات السفر وبطاقات الهوية، والتطبيقات المثبّتة مسبقًا التي تحمل معلومات العمر مثل التطبيقات المصرفية، أو التفعيل غير المتصل عبر طرف ثالث مثل مكتب البريد.) وتضيف: "In October 2025, a second version of the blueprint was released with a passport and identity card method to generate a proof of age." (في أكتوبر 2025 صدرت نسخة ثانية من المخطط تتضمن طريقة لتوليد إثبات العمر بجواز السفر وبطاقة الهوية.)

إذن الوثيقة مُدخَل مقبول في الموضعين. لكن صورة الوثيقة وحدها ليست الفحص كله في أي منهما.

ما الذي يثبته المسح وما الذي لا يثبته

يجيب مسح الوثيقة عن سؤال واحد إجابة جيدة: ماذا تقول هذه الوثيقة؟ فهو يقرأ تاريخ الميلاد وتاريخ الانتهاء ونوع الوثيقة ومنطقة القراءة الآلية (MRZ)، ويمكنه أن يخبرك هل أرقام التحقق في تلك المنطقة صحيحة. وهذا هو جزء "التقاط المعلومات ذات الصلة" في وصف Ofcom.

لكنه لا يجيب عن الأسئلة الأخرى التي يجب أن يغطيها فحص العمر:

  • هل الشخص هو حامل الوثيقة؟ يسمّي قسم المتانة لدى Ofcom الطريق الأوضح: "a child user uploading an image of an ID that does not belong to them." (مستخدم طفل يرفع صورة هوية لا تخصه.) وجوابها: "Requiring a photo of the user at the point of ID upload when photo-ID matching helps to verify that the photo ID belongs to that user." (طلب صورة للمستخدم لحظة رفع الهوية في مطابقة الهوية المصوّرة يساعد على التحقق من أن الهوية تخص ذلك المستخدم.)
  • هل الشخص حاضر؟ "Liveness detection provides further confidence that a child user has not uploaded a photo of an adult by ensuring that the user undergoing the age assurance process is present at the time the check is carried out." (كشف الحيوية يزيد الثقة بأن الطفل لم يرفع صورة شخص بالغ، إذ يضمن أن المستخدم الخاضع لعملية ضمان العمر حاضر وقت إجراء الفحص.)
  • هل الوثيقة أصلية؟ "A robust photo-ID check should not be capable of being easily circumvented, and as such, a photo-ID method should be able to detect falsified documentation or manipulation that a child could create or obtain." (فحص الهوية المصوّرة المتين يجب ألا يكون من السهل التحايل عليه، ولذلك يجب أن تكشف الطريقة الوثائق المزوّرة أو التلاعب الذي قد يصنعه الطفل أو يحصل عليه.)

لا شيء من هذا هو OCR (التعرّف الضوئي على الحروف). قراءة الوثيقة والتحقق منها عملان منفصلان تؤديهما أدوات منفصلة، وفحص العمر المبني على الوثائق يحتاج إلى الاثنين. خطوة القراءة تعطيك بيانات موثوقة عن الوثيقة؛ أما مطابقة الوجه وفحص الحيوية وفحص الأصالة فتخبرك هل تثق بالوثيقة وبالشخص.

من تاريخ الميلاد إلى "فوق" أو "تحت"

بعد قراءة تاريخ الميلاد يكون حساب العمر صغيرًا، لكن الخطأ فيه سهل. فطرح السنوات لا يكفي: من وُلد في 20 نوفمبر 2008 عمره 17 عامًا في 10 نوفمبر 2026، لا 18. قارن الشهر واليوم أيضًا.

from datetime import date


def age_on(birth_iso: str, on: date) -> int:
    """Whole years completed on the day `on`, from a YYYY-MM-DD date of birth."""
    born = date.fromisoformat(birth_iso)
    years = on.year - born.year
    if (on.month, on.day) < (born.month, born.day):
        years -= 1  # the birthday has not come yet this year
    return years


def is_over(birth_iso: str, threshold: int, on: date) -> bool:
    return age_on(birth_iso, on) >= threshold


print(age_on("2008-11-20", date(2026, 11, 10)))     # 17
print(is_over("2008-11-20", 18, date(2026, 11, 20)))  # True

بعض التفاصيل مهمة في التطبيق العملي:

  • استخدم تاريخ الفحص، في منطقة زمنية واحدة. قد يختلف "اليوم" على الخادم عن "اليوم" لدى المستخدم قرب منتصف الليل. اختر قاعدة واحدة وسجّل التاريخ الذي استخدمته.
  • 29 فبراير. مع المقارنة أعلاه، يبلغ من وُلد في 29 فبراير عمرًا جديدًا في 1 مارس في السنوات غير الكبيسة. إن كانت ولايتك القضائية تحدد ذلك بشكل مختلف، فغيّر هذا الفرع وحده.
  • غياب التاريخ ليس جوابًا. إن لم يُعِد المسح تاريخ ميلاد، فالنتيجة "تعذّر الفحص"، وليست أبدًا "فوق 18".
  • انتهاء الصلاحية سؤال منفصل. قبول الوثيقة المنتهية دليلًا من عدمه سياستك أنت، فاقرأ تاريخ الانتهاء واتخذ القرار صراحة.

احتفظ بالجواب لا بالوثيقة

يرسل تصميم المفوضية إلى الخدمات "only a proof that the user is over 18" (إثباتًا فقط بأن المستخدم فوق 18 عامًا). والفكرة نفسها تصلح في نظامك: بعد انتهاء الفحص، النتيجة التي تحتاج إليها قيمة منطقية (boolean) وتاريخ، لا صورة جواز سفر.

ويشير قسم الخصوصية لدى Ofcom إلى الاتجاه نفسه. فهو يذكّر مقدّمي الخدمات بأن "All age assurance methods involve the processing of personal data and should follow a data protection by design approach" (جميع طرق ضمان العمر تتضمن معالجة بيانات شخصية، وينبغي أن تتبع نهج حماية البيانات منذ التصميم)، ويعدّ تقليل البيانات وتقييد التخزين من المبادئ الواجب اتباعها.

يبدو السجل الأدنى هكذا:

{
  "user_id": "u_3f9c",
  "check": "age_over_18",
  "result": true,
  "checked_on": "2026-11-10",
  "method": "photo_id_matching"
}

لا صورة، ولا رقم وثيقة، ولا تاريخ ميلاد. وإن ألزمك قانون بالاحتفاظ بأكثر من ذلك، فاحتفظ بما يطلبه بالضبط، في مخزن واحد له تاريخ حذف خاص به.

موقع doc.cheap من ذلك

يقرأ doc.cheap جوازات السفر وبطاقات الهوية ورخص القيادة ويعيد ما هو مطبوع عليها بصيغة JSON. والحقول المفيدة لفحص العمر هي holder.birth_date، وهو تاريخ ISO بصيغة YYYY-MM-DD أو null، إضافة إلى document.expiry_date وdocument.is_expired وmrz.status، فيأتي التاريخ الذي تمرّره إلى age_on من قراءة يمكنك التحقق من سلامتها.

إنها خدمة قراءة، لا خدمة تحقق. ففي سيناريو التعرّف فقط تكون قيمة authenticity.overall في الاستجابة not_checked، وتبقى خطوتا مطابقة الوجه وكشف الحيوية لأدوات مصمَّمة لهما. كما أنها لا تحتفظ بشيء لم تطلبه: فالإعداد retain_hours: 0 على مفتاح حيّ لا يكتب أي سجل على الإطلاق، وهو ما يشرحه دليل الاحتفاظ بالسجل. أما الصورة نفسها فلا تُخزَّن أبدًا.

لتجربة خطوة القراءة قبل تصميم الباقي، ابدأ بـ واجهة API المجانية للتعرّف على جوازات السفر. وإن كنت تختار مزوّدًا، فإن مقارنة واجهات API للتعرّف على جوازات السفر تضع الأسعار المنشورة جنبًا إلى جنب.

هذا ملخص هندسي، وليس استشارة قانونية.

سؤال لك: أي جزء من فحص العمر لديك استغرق أطول وقت حتى أصبح صحيحًا – القراءة أم مطابقة الوجه أم السجل الذي تحتفظ به؟ أخبرنا في التعليقات أدناه.