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