حساب رقم التحقق للرقم الضريبي البرتغالي NIF والتحقق منه
تطبّق هذه الحاسبة خوارزمية التحقق القياسية القائمة على باقي القسمة على أحد عشر والمستخدمة في رقم التعريف الضريبي البرتغالي NIF.
شغّل الأداة مجانًا
أدخلوا الخانات الثماني الأولى لحساب الخانة التاسعة، أو أرسلوا الخانات التسع لاختبار مطابقة رقم التحقق المقدّم للنتيجة المحسوبة. النتيجة حتمية وفورية، ولذلك تناسب فحص النماذج وعمليات الاستيراد والإجراءات المحاسبية والتحقق عبر API. تُبلّغ الأداة بوضوح عن الطول غير الصحيح والمحارف غير الرقمية والأوضاع غير المدعومة، ولا تنظّف المدخلات أو تخمّن المقصود منها خفيةً.
اختاروا بين الحساب والتحقق
استخدموا وضع الحساب عندما تكون لديكم الخانات الثماني الأساسية لمعرّف NIF برتغالي وتحتاجون إلى رقم التحقق الأخير. تتضمن الاستجابة الرقم المحسوب والقيمة الكاملة المكوّنة من تسع خانات، وبذلك يمكنكم إدراجها مباشرةً في مسار تحقق أو اختبار لاحق. استخدموا وضع التحقق عندما يحتوي المصدر على الخانات التسع أصلًا. يفصل التحقق الخانات الثماني الأولى عن الخانة التاسعة المقدّمة، ثم يحسب القيمة المتوقعة ويبيّن ما إذا كان الرقمان متطابقين. كما يعيد الرقم المقدّم والرقم المتوقع كلًا على حدة، مما يسهّل تشخيص النتيجة السلبية. احتفظوا بالمدخل في صورة سلسلة نصية لا قيمة عددية؛ فالسلسلة تحفظ جميع المحارف بدقة، بما فيها الصفر في البداية، وتمنع تنسيق الأرقام في جداول البيانات أو لغات البرمجة من تغيير المعرّف قبل فحصه. الوضع الافتراضي هو التحقق لأنه الأكثر شيوعًا عند فحص NIF كامل، لكن ينبغي تحديد الوضع صراحةً إذا كان مسار العمل يقبل الصيغتين.
افهموا آلية الحساب بباقي القسمة على أحد عشر
تعالج الخوارزمية الخانات الثماني الأولى من اليسار إلى اليمين بأوزان تنازلية تبدأ من تسعة وتنتهي باثنين. تضرب الخانة الأولى في تسعة والثانية في ثمانية، وتتابع حتى تضرب الخانة الثامنة في اثنين. تُجمع النواتج الثمانية، ثم يُحسب باقي قسمة المجموع على أحد عشر. إذا كان الباقي صفرًا أو واحدًا، كان رقم التحقق صفرًا. وفي أي حالة أخرى يكون الرقم أحد عشر ناقص ذلك الباقي. ينفّذ وضع التحقق الحساب نفسه تمامًا على المواضع الثمانية الأولى ويقارن النتيجة بالموضع التاسع. لا تحذف هذه القدرة المسافات أو النقاط أو الشرطات أو بادئات البلدان أو التسميات قبل الحساب. هذه الصرامة مقصودة، لأن التنظيف التلقائي قد يجعل البيانات المشوّهة تبدو موثوقة ويخفي أخطاء سابقة في ربط الحقول. أرسلوا أرقام ASCII من صفر إلى تسعة فقط. لا يعتمد الحساب على الشبكة أو العشوائية أو الساعة أو قاعدة بيانات أو تحويل مرتبط بالإعدادات المحلية، ولذلك تنتج المدخلات والأوضاع المتطابقة مخرجات JSON متطابقة دائمًا.
فسّروا النتيجة واعرفوا حدودها
تعني نتيجة التحقق الصحيحة أن الخانة التاسعة تتوافق مع قيمة التحقق بباقي القسمة على أحد عشر والمشتقة من الخانات الثماني السابقة. يفيد هذا الفحص البنيوي في اكتشاف أخطاء الكتابة وملفات الاستيراد التالفة والأعمدة المربوطة على نحو غير صحيح، لكنه لا يثبت أن الرقم قد صدر بالفعل أو ما زال نشطًا أو يعود إلى شخص أو مؤسسة بعينها. تتطلب هذه الأسئلة سجلًا رسميًا موثوقًا أو إجراء تحقق مهنيًا مناسبًا. كذلك تفحص الحاسبة قيمة التحقق وحدها ولا تفرض افتراضات عن فئات قد ترمز إليها الخانة الأولى. يحافظ ذلك على نطاق دقيق ويتجنب رفض رقم ذي قيمة تحقق صحيحة لمجرد تغير قاعدة خارجية للتخصيص. في مسار البيانات، تعاملوا مع خطأ المدخل بشكل مختلف عن نتيجة تحقق خاطئة: فالخطأ يعني أن النوع أو الطول أو المحارف أو الوضع غير صحيح، أما النتيجة الخاطئة فتعني فحص قيمة سليمة البنية من تسع خانات وعدم تطابق رقمها الأخير. تكلفة كل طلب API هي $0.002، ويمكن تشغيل النواة الحتمية نفسها في المتصفح للفحص اليدوي السريع.
حالات الاستخدام
افحصوا نموذجًا ضريبيًا قبل إرساله
تحقّقوا من NIF ذي تسع خانات فور إدخاله، واعرضوا رسالة تصحيح محددة عندما لا يتطابق رقم التحقق.
راجعوا سجلات العملاء المستوردة
شغّلوا التحقق على حقول NIF بعد ترحيل ملف CSV أو نظام لاكتشاف البتر وتبديل الخانات وأخطاء ربط الحقول.
أنشئوا بيانات اختبار حتمية
احسبوا الخانة التاسعة لأساس من ثماني خانات عند إعداد اختبارات التكامل لبرامج التحصيل أو الفوترة أو التسجيل.
الأسئلة الشائعة
ما المدخل المطلوب في وضع الحساب؟
ثماني خانات بالضبط في سلسلة نصية. تعيد الاستجابة رقم التحقق المحسوب ومعرّف NIF الكامل من تسع خانات.
ما المدخل المطلوب في وضع التحقق؟
تسع خانات بالضبط في سلسلة نصية، تشمل رقم التحقق في الموضع الأخير.
هل تثبت قيمة التحقق الصحيحة أن NIF قد صدر؟
لا. إنها تثبت فقط أن الخانة التاسعة المقدّمة تطابق القيمة المحسوبة من الخانات الثماني الأولى.
هل يمكن إدخال مسافات أو علامات أو بادئة بلد؟
لا. أرسلوا الأرقام فقط. تُرفض محارف التنسيق كي لا تتغير بيانات المصدر المشوّهة دون تنبيه.
كيف يُحسب رقم التحقق؟
تُوزن الخانات الثماني الأولى من تسعة إلى اثنين ثم تُجمع ويؤخذ باقي القسمة على أحد عشر؛ يعطي الباقي صفر أو واحد الرقم صفرًا، وإلا يُطرح الباقي من أحد عشر.
ما تكلفة طلب API؟
تكلفة كل طلب API هي $0.002. ويمكنكم أيضًا استخدام التنفيذ في المتصفح لإجراء حساب محلي سريع.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/nif-portugal \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"501964843"}'const res = await fetch("https://api.kit.forhosting.com/enc/nif-portugal", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "501964843"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/nif-portugal",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "501964843"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/nif-portugal", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"501964843"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"501964843"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/nif-portugal", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"number": "501964843"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.nif_portugal",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |