ما هو رمز QR في الفاتورة الإلكترونية؟

رمز الاستجابة السريعة على الفاتورة الضريبية المبسطة ليس صورة تزيينية — هو حقل بيانات نظامي. تشترط هيئة الزكاة والضريبة والجمارك أن يحمل بيانات الفاتورة الأساسية مُرمَّزة بصيغة TLV (وسم، طول، قيمة) ثم مُحوَّلة إلى Base64، بحيث يستطيع أي مفتش أو عميل مسحه والتحقق من الفاتورة فورًا.

الحقول الخمسة ومواصفتها

ترتيب الوسوم ثابت، وتغييره يجعل الرمز غير مقروء لدى الهيئة:

الوسم الحقل مثال
1اسم البائعمؤسسة النخبة التجارية
2الرقم الضريبي للبائع300000000000003
3تاريخ ووقت الفاتورة (ISO 8601)2026-07-25T14:30:00Z
4الإجمالي شامل الضريبة115.00
5قيمة ضريبة القيمة المضافة15.00

كل حقل يُرمَّز على هيئة: بايت للوسم، بايت لطول القيمة، ثم القيمة نفسها بترميز UTF-8. تُرصّ الحقول الخمسة متتابعة ثم يُحوَّل الناتج كاملًا إلى Base64 — وهذا ما تراه في مربع الناتج أعلاه.

مخطط بنية رمز QR للفاتورة الإلكترونية السعودية: الحقول الخمسة للمرحلة الأولى مُرمَّزة TLV بوسم وطول وقيمة ثم محوّلة إلى Base64
بنية رمز QR في الفاتورة الإلكترونية — من الحقول الخمسة إلى سلسلة Base64 التي يقرأها الماسح.

الفرق بين رمز المرحلة الأولى والثانية

رمز المرحلة الأولى يقف عند الحقول الخمسة. أما فاتورة المرحلة الثانية فتضيف ثلاثة حقول لا تُولَّد يدويًا: تجزئة الفاتورة بصيغة XML، والتوقيع الرقمي ECDSA، والمفتاح العام للشهادة. هذه الثلاثة مشتقّة من شهادة المنشأة الصادرة من الهيئة، ولذلك لا توجد أداة على الإنترنت — هذه أو غيرها — قادرة على توليد رمز مرحلة ثانية صالح.

أخطاء شائعة تُبطل الرمز

  • كتابة التاريخ بصيغة محلية بدل ISO 8601 — أشيع سبب لفشل التحقق.
  • وضع الإجمالي قبل الضريبة في الوسم 4؛ المطلوب الإجمالي شاملًا الضريبة.
  • إضافة رمز العملة داخل القيمة الرقمية — تُكتب الأرقام مجردة.
  • ترميز النص العربي بغير UTF-8، فيخرج اسم البائع مشوّهًا عند المسح.
  • تغيير ترتيب الوسوم — الترتيب جزء من المواصفة لا اجتهاد فيه.

كيف تتحقق من الرمز بعد توليده

امسحه بتطبيق «فاتورة» الرسمي من الهيئة: سيفكّ الترميز ويعرض الحقول الخمسة مقروءة. وأي قارئ QR عادي سيعرض نص Base64 كما هو — وهذا بحد ذاته دليل أن الترميز تم بشكل صحيح.