جدول المحتويات
بالأمس، 30 يونيو 2026، كان موعدًا نهائيًا أعاد بصمت تشكيل التجارة السعودية. دخلت الموجة 24 من طرح المرحلة الثانية للفوترة الإلكترونية لدى زاتكا حيز التنفيذ، وهي أول موجة تصل إلى الشركات التي لا يتجاوز إيرادها الخاضع للضريبة السنوي 375,000 ريال سعودي، وهو أيضًا حد التسجيل الإلزامي في ضريبة القيمة المضافة نفسه. عمليًا، يعني هذا أن كل شركة مسجلة تقريبًا في ضريبة القيمة المضافة بالمملكة أصبحت مطالبة الآن بالتكامل مع منصة فاتورة. أُغلقت نافذة إعفاء الغرامات التي سمحت للشركات بإصلاح أخطاء التأهيل دون عواقب مالية في التاريخ نفسه. اعتبارًا من اليوم، أصبح إنفاذ الفوترة الإلكترونية لدى زاتكا شاملاً فعليًا.
إذا كنت تبني أو تصون نظام نقاط بيع، أو تخطيط موارد مؤسسات، أو فوترة للسوق السعودي، فذلك المربع الأسود والأبيض الصغير على كل إيصال لم يعد واجبًا اختياريًا؛ إنه أبرز دليل امتثال ينتجه برنامجك. يغطي هذا الدليل ما يحتويه رمز QR فعليًا، ولماذا بنت زاتكا البرنامج بهذه الطريقة، والفروق الحقيقية بين المرحلة الأولى والثانية، وكيف تختلف فواتير B2B وB2C، وكيف يسترد المشتري ضريبة القيمة المضافة فعليًا، والأخطاء التي غالبًا ما تُفشل رمز QR في التحقق. أسفل الصفحة أداة توليد مجانية تعمل من جانب العميل لبناء وفحص رمز QR متوافق بنفسك، وسمًا تلو الآخر.
ما هي الفوترة الإلكترونية لزاتكا، ولماذا وُجدت؟
زاتكا — هيئة الزكاة والضريبة والجمارك — هي الجهة الحكومية السعودية المسؤولة عن تحصيل ضريبة القيمة المضافة والزكاة والرسوم الجمركية وإنفاذ الامتثال للفوترة الإلكترونية. تأسست عام 2021 من اندماج الهيئة العامة للزكاة والدخل والهيئة العامة للجمارك، موحّدةً إدارة الضرائب تحت مظلة واحدة.
أدخلت السعودية ضريبة القيمة المضافة في 1 يناير 2018 بنسبة 5%، ضمن طرح منسّق على مستوى دول مجلس التعاون الخليجي. في 1 يوليو 2020، وفي مواجهة انهيار عائدات النفط وصدمة جائحة كوفيد-19 المالية، ضاعفت الحكومة النسبة ثلاث مرات إلى 15%، حيث تبقى حتى اليوم. ضريبة بهذا الحجم، مطبقة على اقتصاد بأكمله، لا تكون فعالة إلا بقدر قدرة الحكومة على التحقق من تحصيلها وتحويلها فعليًا، والفواتير الورقية والإيصالات المكتوبة يدويًا والفواتير المعدة بجداول بيانات يسهل جدًا التقليل من الإبلاغ عنها أو عدم إصدارها أصلًا. تلك الفجوة بين الضريبة المحصّلة من العملاء والمُقرَّة فعليًا للدولة هي ما بُني برنامج الفوترة الإلكترونية، المسمى فاتورة، لسدها.
رمز QR هو الطرف المرئي من ذلك النظام. يحوّل كل إيصال إلى سجل قابل للقراءة الآلية ويمكن التحقق منه بشكل مستقل، بحيث يمكن لعميل أو مدقق أو أنظمة زاتكا نفسها التأكد من صحة فاتورة دون الثقة بالورق المطبوعة عليه. طُرح البرنامج على مرحلتين محددتين رسميًا:
- 4 ديسمبر 2021 — المرحلة الأولى (مرحلة التوليد): توجّب على كل شركة مسجلة في ضريبة القيمة المضافة التوقف عن إصدار فواتير مكتوبة يدويًا أو بجداول بيانات، والتحول إلى نظام إلكتروني متوافق ينتج ويخزّن فواتير إلكترونية تحمل رمز QR بصيغة TLV.
- اعتبارًا من 1 يناير 2023 — المرحلة الثانية (مرحلة التكامل): تربط الشركات نظام الفوترة الإلكترونية الخاص بها مباشرة بمنصة فاتورة التابعة لزاتكا للتخليص أو الإبلاغ الفوري. ولأن ربط جميع الشركات دفعة واحدة غير واقعي تشغيليًا، طرحت زاتكا هذا على «موجات» متتالية مجمّعة حسب الإيراد الخاضع للضريبة السنوي، تُعلن كل واحدة قبل موعدها النهائي بستة أشهر على الأقل. بدأت الموجة الأولى (حجم أعمال يتجاوز 3 مليار ريال) في 1 يناير 2023؛ وبدأت الموجة 24 (حجم أعمال يتجاوز 375,000 ريال) أمس.
لا توجد «مرحلة ثالثة» مُعلنة بشكل منفصل حتى وقت كتابة هذا؛ البرنامج رسميًا مرحلتان، مع استمرار توسّع المرحلة الثانية نفسها عبر موجات إضافية بينما تعمل زاتكا على الوصول إلى دافعي الضرائب الأصغر، وفي النهاية شبكة أوسع تشمل الفوترة الإلكترونية للتعبئة المسبقة لإقرارات ضريبة القيمة المضافة. تعامل مع أي إشارة إلى «مرحلة ثالثة» منفصلة كاختصار غير رسمي لموجة مستقبلية، لا تسمية رسمية.
كيف يعمل رمز QR الخاص بزاتكا فعليًا
رمز QR الخاص بزاتكا ليس رابطًا. امسحه بتطبيق QR عام ولن تصل إلى موقع إلكتروني؛ ستحصل على كتلة من نص Base64. هذا النص ناتج خط أنابيب محدد من ثلاث مراحل معرّف في معايير تنفيذ ميزات أمان الفاتورة الإلكترونية الخاصة بزاتكا:
- بناء بنية TLV. كل حقل، اسم البائع والرقم الضريبي والطابع الزمني وهكذا، يُرمَّز كوسم وطول وقيمة: رقم وسم بحجم بايت واحد، وطول بحجم بايت واحد (طول القيمة بالبايت لا بعدد أحرفها)، ثم القيمة نفسها كبايتات UTF-8. تُضم كل الحقول، وسمًا بعد وسم، في مصفوفة بايت واحدة متصلة.
- ترميز مصفوفة البايت بـ Base64. تُحوَّل بنية TLV الكاملة، كبايتات خام، إلى سلسلة Base64 واحدة. تحدّها زاتكا بحد أقصى 700 حرف.
- عرض سلسلة Base64 كرمز QR. في هذه الخطوة الأخيرة فقط يتحول النص فعليًا إلى المربع الأسود والأبيض المطبوع على الإيصال.
إليك جوهر ذلك المنطق بلغة JavaScript، وهو نفس الدالة التي تشغّل المولّد أسفل هذه الصفحة:
function buildTLV(tag, value) {
const bytes = new TextEncoder().encode(value); // never value.length
const out = new Uint8Array(2 + bytes.length);
out[0] = tag;
out[1] = bytes.length; // byte length — critical for Arabic text
out.set(bytes, 2);
return out;
}
// tags 1-5, concatenated, then Base64-encoded
const tlv = concat([buildTLV(1, sellerName), buildTLV(2, vatNumber),
buildTLV(3, timestamp), buildTLV(4, total), buildTLV(5, vatAmount)]);
const qrPayload = base64Encode(tlv);
ذلك التعليق الواحد — never value.length — يستحق التوقف عنده. خاصية .length لسلسلة JavaScript تحسب وحدات شيفرة UTF-16، لا البايتات. صادف أن «Bobs Records» لها نفس عدد الأحرف والبايتات بترميز ASCII البسيط، فيعمل التنفيذ الكسول جيدًا في الاختبار ثم يُتلف بصمت كل فاتورة تحمل اسم بائع عربي في الإنتاج، لأن الأحرف العربية تأخذ بايتين لكل حرف في UTF-8. سنعود إلى هذا في قسم الأخطاء الشائعة، فهو أحد أكثر أسباب رفض رمز QR شيوعًا في الواقع.
المرحلة الأولى مقابل الثانية: ما الذي تغيّر فعليًا
من السهل اعتبار المرحلة الثانية «المرحلة الأولى بالإضافة إلى بضعة حقول». في الواقع هي بنية مختلفة تمامًا. طلبت منك المرحلة الأولى توليد مستند صحيح. تطلب منك المرحلة الثانية توليد مستند صحيح و إثباته لزاتكا في الوقت الفعلي، مرتبطًا بهوية تشفيرية مقيّدة بالأجهزة أو البرمجيات.
| الجانب | المرحلة الأولى — التوليد | المرحلة الثانية — التكامل |
|---|---|---|
| ساري المفعول من | 4 ديسمبر 2021 — جميع دافعي الضرائب دفعة واحدة | 1 يناير 2023 — طُرح على موجات (الموجة 24 فعّالة منذ 30 يونيو 2026) |
| صيغة الفاتورة | أي نظام إلكتروني متوافق؛ لا فواتير مكتوبة يدويًا أو بجداول بيانات | UBL 2.1 XML، أو PDF/A-3 مع تضمين XML؛ لا شيء آخر مؤهل |
| محتوى رمز QR | 5 وسوم TLV: اسم البائع، الرقم الضريبي، الطابع الزمني، الإجمالي، مبلغ الضريبة | 9 وسوم TLV: نفس الخمسة، بالإضافة إلى تجزئة XML، توقيع ECDSA، المفتاح العام، والختم التشفيري |
| اتصال النظام | مستقل؛ يمكن أن يعمل بلا اتصال بالكامل | اتصال API مباشر بمنصة فاتورة إلزامي |
| التحقق الحكومي | لا يوجد؛ مولّد ومخزّن ذاتيًا فقط | B2B: تخلّصه زاتكا قبل وصوله للمشتري. B2C: يُبلَّغ لزاتكا خلال 24 ساعة |
| تسلسل الفواتير | غير مطلوب | مطلوب: قيمة عداد فاتورة تسلسلية (ICV) وتجزئة الفاتورة السابقة (PIH)، بحيث لا يمكن حذف أو إدراج أي فاتورة بصمت |
| الهوية التشفيرية | لا يوجد | مطلوب: معرّف ختم تشفيري (CSID) صادر لحل الفوترة الخاص بك من زاتكا |
B2B مقابل B2C: أي القواعد تنطبق عليك
تعترف لائحة زاتكا بنوعين من الفواتير، والخلط بينهما من أسرع الطرق لتنتهي خارج نطاق الامتثال، أو بالنسبة للمشتري، غير قادر على استرداد ضريبة قيمة مضافة كان يظن أنه يستطيع استردادها.
الفاتورة الضريبية القياسية (B2B / B2G): تُستخدم بين طرفين مسجلين في ضريبة القيمة المضافة. يجب أن تُظهر اسم ورقم التسجيل الضريبي لكل من البائع والمشتري، وتفصيلًا للبنود، ومبالغ الضريبة لكل بند. بموجب المرحلة الثانية، تتبع نموذج التخليص: يقدّم نظامك الفاتورة إلى منصة فاتورة ويجب أن يحصل على الموافقة، بما فيها ختم تشفيري، قبل السماح للفاتورة قانونيًا بالوصول إلى المشتري. رمز QR على الفاتورة القياسية اختياري في معظم الحالات، رغم أن أنظمة تخطيط موارد كثيرة تدرجه على أي حال.
الفاتورة الضريبية المبسطة (B2C): تُستخدم عند نقطة البيع، غالبًا حين يكون المشتري غير مسجل في ضريبة القيمة المضافة أو غير معروف وقت البيع؛ إيصال التجزئة هو المثال الكلاسيكي. تتبع نموذج الإبلاغ: تصدر الفاتورة للعميل فورًا، ويبلغ نظامك زاتكا بها خلال 24 ساعة لاحقًا. رمز QR إلزامي على كل فاتورة مبسطة، وهو ما يقصده معظم الناس عند قولهم «رمز QR الخاص بزاتكا».
حدّان يستحقان المعرفة: الفاتورة الضريبية القياسية مطلوبة قانونيًا كلما تجاوز توريد B2B مبلغ 1,000 ريال سعودي (وتحته تُقبل فاتورة مبسطة حتى بين شركتين)، ويمكن إغفال الرقم الضريبي للبائع من الفاتورة المبسطة تمامًا إذا كانت قيمتها الإجمالية أقل من 1,000 ريال.
يتجاوز هذا التمييز التنسيق بكثير. كما هو مذكور في قسم استرداد ضريبة القيمة المضافة أدناه، فقط الفاتورة الضريبية القياسية تدعم مطالبة خصم ضريبة المدخلات؛ أما الفاتورة المبسطة، مهما كان تنسيق رمز QR فيها مثاليًا، فعمومًا لا تدعم ذلك.
جميع وسوم TLV التسعة، موضّحة
لكل حقل يمكن لزاتكا اشتراطه في رمز QR رقم وسم ثابت. الوسوم من 1 إلى 5 إلزامية منذ المرحلة الأولى؛ وأُضيفت الوسوم من 6 إلى 9 للمرحلة الثانية.
| الوسم | الحقل | مطلوب منذ | ملاحظات |
|---|---|---|---|
| 1 | اسم البائع | Phase 1 | يجب أن يظهر بالعربية على الفاتورة نفسها؛ الاسم ثنائي اللغة مقبول |
| 2 | الرقم الضريبي للبائع | Phase 1 | 15 رقمًا بالضبط، كما صدر من زاتكا عند التسجيل |
| 3 | الطابع الزمني للفاتورة | Phase 1 | بصيغة ISO 8601، مثال: 2026-06-30T14:05:00Z |
| 4 | إجمالي الفاتورة (شامل الضريبة) | Phase 1 | المبلغ النهائي الذي دفعه العميل |
| 5 | إجمالي الضريبة | Phase 1 | جزء ضريبة القيمة المضافة من الإجمالي أعلاه |
| 6 | تجزئة XML للفاتورة | Phase 2 | تجزئة SHA-256 لفاتورة XML الموقّعة |
| 7 | توقيع ECDSA | Phase 2 | توقيع رقمي على التجزئة، مُنشأ بالمفتاح الخاص لدافع الضرائب |
| 8 | المفتاح العام ECDSA | Phase 2 | النصف العام من زوج المفاتيح المرتبط بشهادة CSID الخاصة بك |
| 9 | توقيع الختم التشفيري | Phase 2 | الفواتير المبسطة فقط؛ يصدرها مرجع زاتكا التقني الخاص بعد الإبلاغ |
ترتيب التوليد مهم. ابنِ فاتورة XML ووقّعها تشفيريًا أولاً. بعد ذلك فقط احسب التجزئة، واستخرج التوقيع، وجمّع رمز QR. توليد رمز QR قبل التوقيع ينتج وسومًا من 6 إلى 9 فارغة أو قديمة، وهو خطأ شائع بشكل مفاجئ يؤدي إلى رفض فوري.
ما الذي يجب على أصحاب الأعمال فعله فعليًا
بتجريد الاختصارات، يتلخص الامتثال في خمس مراحل. إليك المسار من «غير مسجل» إلى «فعّال على فاتورة».
1. سجّل في ضريبة القيمة المضافة
إلزامي بمجرد تجاوز توريداتك الخاضعة للضريبة السنوية 375,000 ريال سعودي. بين 187,500 وذلك الحد، التسجيل اختياري، وغالبًا مفيد لأنه يتيح استرداد ضريبة المدخلات على مشترياتك الخاصة. يجب على الشركات غير المقيمة التي تقدّم توريدات خاضعة للضريبة في المملكة التسجيل بغض النظر عن حجم الأعمال.
2. احصل على نظام متوافق مع المرحلة الأولى، ثم تحقق من موجتك
تحتاج كل شركة مسجلة في ضريبة القيمة المضافة بالفعل إلى قدرة توليد المرحلة الأولى اليوم. تصل المرحلة الثانية وفق جدول: تجمّع زاتكا دافعي الضرائب في موجات حسب الإيراد الخاضع للضريبة السنوي وتخطر كل مجموعة قبل موعدها النهائي بستة أشهر على الأقل. تقلصت الحدود بسرعة؛ غطت الموجة الأولى حجم أعمال يتجاوز 3 مليار ريال، وتغطي الموجة 24، الفعّالة منذ أمس، حجم أعمال يتجاوز 375,000 ريال. إذا لم تُخطَر بعد، يستحق الأمر التحقق مباشرة مع زاتكا بدلاً من افتراض أنك خارج النطاق.
3. أكمل التأهيل للحصول على CSID عبر بوابة فاتورة
هذا هو جوهر المرحلة الثانية التقني، ويتبع تسلسلاً ثابتًا من خمس خطوات:
- سجّل الدخول إلى بوابة فاتورة باستخدام تسجيل الدخول الموحد عبر حساب دافع الضرائب الخاص بك لدى زاتكا.
- أنشئ كلمة مرور لمرة واحدة (OTP) لكل جهاز أو وحدة حل تريد تأهيلها.
- قدّم طلب توقيع شهادة (CSR) مع رمز OTP، واحصل على شهادة CSID للامتثال، وهي شهادة تجريبية.
- اجتز فحوصات الامتثال بتقديم عينات من الفواتير القياسية والمبسطة عبر البيئة التجريبية ليتحقق منها زاتكا.
- احصل على شهادة CSID للإنتاج، سارية لمدة عام تقريبًا وقابلة للتجديد قبل انتهائها، وابدأ التشغيل الفعلي مقابل نقطة نهاية فاتورة الحقيقية.
4. اختبر العملية بالكامل قبل الموعد النهائي
توفّر زاتكا بوابة محاكاة فاتورة خصيصًا لتتمرن على التأهيل والتخليص والإبلاغ دون لمس بيانات الإنتاج. الممارسة المتّبعة في الصناعة هي إنهاء ذلك قبل شهر واحد على الأقل من موعد موجتك، لأن مشاكل الشهادات والفواتير النموذجية المرفوضة أرخص بكثير في الإصلاح قبل بدء الإنفاذ منه بعده.
5. احتفظ بالسجلات — لفترة أطول مما تظن
يجب الاحتفاظ بالفواتير والإشعارات والسجلات الداعمة لمدة لا تقل عن 6 سنوات من نهاية الفترة الضريبية ذات الصلة، وتمتد إلى 11 سنة لأي شيء متعلق بالعقارات. يجب حفظ السجلات بالعربية (ثنائية اللغة مقبولة) وتخزينها داخل المملكة العربية السعودية.
التكلفة الفعلية لعدم الامتثال
يتدرّج إطار عقوبات زاتكا وفقًا للمخالفة، وترتفع الغرامات للمخالفات المتكررة. تشمل الأرقام المنشورة:
| المخالفة | الغرامة |
|---|---|
| التأخر في التسجيل بضريبة القيمة المضافة | 10,000 ريال سعودي |
| عدم إصدار أو أرشفة فاتورة إلكترونية متوافقة | تبدأ من 5,000 ريال سعودي |
| رمز QR مفقود أو غير متوافق | حتى 10,000 ريال سعودي لكل فاتورة |
| حذف أو تعديل فاتورة بعد إصدارها | تبدأ من 10,000 ريال سعودي |
| تكامل غير متوافق للتخليص/الإبلاغ الفوري | من 5,000 إلى 50,000 ريال سعودي لكل مخالفة |
الأرقام أعلاه مستمدة من هيكل العقوبات المنشور من زاتكا وملخصات امتثال من طرف ثالث حتى منتصف عام 2026؛ تحقق دائمًا من المبالغ الحالية مباشرة على zatca.gov.sa، إذ تُراجع جداول العقوبات دوريًا.
التحقق من رمز QR وكيفية استرداد ضريبة القيمة المضافة فعليًا
التحقق من رمز QR
لأن حمولة رمز QR نص Base64 عادي، يمكن لأي ماسح QR عام قراءتها تقنيًا، لكن القراءة ليست كالتحقق. لتأكيد صحة الفاتورة فعليًا وفكّ ترميز بنية TLV والتحقق من ختمها التشفيري مقابل سلسلة شهادات زاتكا، استخدم تطبيق ضريبة القيمة المضافة الخاص بزاتكا (لأنظمة iOS وAndroid) أو خدمة التحقق من الفاتورة الإلكترونية على zatca.gov.sa. هذا التمييز بالضبط هو سبب أن رمز QR الذي «يبدو صحيحًا» على الشاشة قد يفشل مع ذلك في مسح حقيقي.
كيف تسترد الشركة ضريبة القيمة المضافة فعليًا
هذا الجزء الذي عادة ما تتجاهله الشروحات العامة، وهو إجابة السؤال الذي نتلقاه أكثر: هل وجود رمز QR على فاتورة يعني أنه يمكنني استرداد الضريبة؟ ليس بمفرده، وليس دائمًا.
تعمل ضريبة القيمة المضافة السعودية بنظام الفاتورة الائتمانية: تجمع الشركة المسجلة ضريبة المخرجات على مبيعاتها ويمكنها تعويضها مقابل ضريبة المدخلات التي دفعتها على مشترياتها، محوّلة الفرق فقط إلى زاتكا. لممارسة حق الخصم هذا، تشترط اللائحة التنفيذية (المادة 53(5)) أن تحتفظ الشركة بفاتورة ضريبية صالحة، وتحديدًا فاتورة قياسية تُظهر الرقم الضريبي لكلا الطرفين، والتاريخ، ووصف التوريد، ومبلغ الضريبة. الفاتورة المبسطة (على غرار B2C)، برمز QR وكل شيء، عمومًا لا تدعم مطالبة ضريبة المدخلات لأنها غير مطالبة بتحديد هوية المشتري أصلاً.
بموجب المرحلة الثانية، توجد بوابة إضافية: وفقًا لقرار تنفيذ الفوترة الإلكترونية لزاتكا، يجب أن تكون الفاتورة الإلكترونية قد خُلِّصت من زاتكا أو أُبلغت إليها لتصلح دليلًا لخصم ضريبة المدخلات؛ الفاتورة التي أنشأها موردك لكن لم يقدّمها إلى فاتورة لا تُحتسب، بغض النظر عن مدى صحتها ظاهريًا.
بعض القواعد العملية لجانب المشتري:
- التوقيت: ينشأ حق الخصم في الفترة الضريبية التي يُستلم فيها التوريد وتصدر فيها الفاتورة الضريبية، وليس عند سداد الدفع أو استهلاك البضائع.
- وتيرة التقديم: الشركات التي يتجاوز حجم أعمالها السنوي 40 مليون ريال سعودي تقدّم إقرارات ضريبة القيمة المضافة شهريًا؛ أما البقية فتقدّمها ربع سنويًا.
- الاحتفاظ: احتفظ بالفاتورة لمدة 6 سنوات (11 سنة للتوريدات العقارية)؛ يمكن لزاتكا طلبها أثناء تدقيق بعد وقت طويل من ذلك.
- اللغة: يجب أن تحمل الفاتورة التفاصيل المطلوبة بالعربية. قد تقبل زاتكا، وفق تقديرها، أدلة بديلة إذا كانت فاتورة المورد غير مكتملة، لكن المورد يبقى ملزمًا بإصدار فاتورة ضريبية عربية صحيحة.
باختصار: رمز QR يثبت أن الإيصال أصلي. أما إذا كانت ضريبة القيمة المضافة عليه قابلة للاسترداد فهذا سؤال منفصل تجيب عليه نوع الفاتورة، لا مجرد وجود رمز QR عليها.
الأخطاء الشائعة في رمز QR وكيفية إصلاحها
معظم تقارير «رمز QR غير صالح» تعود إلى مجموعة صغيرة ومتكررة من أخطاء التنفيذ، بترتيب تقريبي حسب التكرار:
- استخدام طول الأحرف بدلاً من طول البايت. يجب أن يكون وسم الطول هو طول القيمة بالبايت بترميز UTF-8. اللغة العربية، وأي نص غير ASCII، تستهلك بايتات أكثر من الأحرف؛ أخطئ في هذا وسيتلف بصمت اسم كل بائع عربي في الفاتورة.
- توليد رمز QR قبل توقيع XML. تعتمد الوسوم من 6 إلى 9 على المستند النهائي الموقّع. ابنِ رمز QR أولاً وستنتهي تلك الوسوم فارغة، أو قديمة، أو مبنية من تجزئة لم تعد تطابق الفاتورة التي تستلمها زاتكا فعليًا.
- الترميز بـ ASCII فقط. بعض المكتبات القديمة تستخدم افتراضيًا Latin-1 أو Windows-1252. تشترط زاتكا استخدام UTF-8 الصارم في كل مكان؛ أي شيء آخر يتعطل بمجرد أن تحتوي قيمة على حرف عربي أو علامة اقتباس منحنية أو رموز معينة.
- إغفال اسم البائع بالعربية. الاسم التجاري بالإنجليزية فقط اختصار شائع للعلامات الدولية، لكن الفاتورة المطبوعة، وبالتالي البيانات وراءها، تحتاج إلى وجود اسم عربي.
- قيم تتجاوز 255 بايت. يمثّل بايت الطول 0-255 فقط. اسم كيان قانوني طويل بشكل غير معتاد أو حقل مطوّل بشكل غير متوقع قد يتجاوز هذا الحد؛ تحقق من أطوال الحقول قبل الترميز لا بعد فشل مسح رمز QR.
- الخلط بين أنواع الفواتير. الوسم 9 (ختم زاتكا التشفيري الخاص) ينطبق على الفواتير المبسطة المُبلَّغ عنها لاحقًا؛ تُخلَّص الفواتير القياسية عبر مسار مختلف. نسخ بنية وسوم نوع فاتورة على الآخر ينتج رمز QR يبدو معقولًا لكنه يفشل في التحقق.
- الثقة بأن «شكله كرمز QR» يعني أنه صحيح. يمكن لبنية TLV مشوّهة أن تظل تُعرض كرمز QR قابل للمسح ويبدو طبيعيًا بصريًا؛ الطريقة الوحيدة للتأكد من صحته هي فك ترميزه والتحقق من الحقول، أو مسحه بتطبيق التحقق الخاص بزاتكا.
جرّبها: مولّد رمز QR مجاني لزاتكا
املأ الحقول أدناه وشاهد بنية TLV وحمولة Base64 ورمز QR يتحدث مباشرة. يعمل كل شيء كـ JavaScript في متصفحك؛ لا يُرسل أي شيء تكتبه إلى أي مكان. الصفحة مُحمَّلة مسبقًا ببيانات نموذجية (تتضمن اسم بائع عربي، لتوضيح معالجة طول البايت بـ UTF-8 المذكورة أعلاه) لترى رمزًا يعمل فورًا.