حلّت المرحلة الثانية من زاتكا (مرحلة الربط والتكامل) محل المرحلة الأولى (مرحلة الإصدار) للموجة الأولى من المكلّفين في يناير 2023. وبعد ثلاث سنوات وأربع وعشرين موجة، أصبح جميع المسجلين في ضريبة القيمة المضافة في المملكة ضمن النطاق. وإن كنت تُصدر فواتير بالريال السعودي، فأنت تُصدرها عبر فاتورة.
ما الذي تتطلبه الأنظمة فعلياً
- الفواتير الضريبية الأساسية (B2B) يجب اعتمادها لحظياً — تُرسَل إلى زاتكا، وتُتحقَّق، وتُختَم بمعرف UUID، ثم تُسلَّم بعد ذلك للمشتري.
- الفواتير الضريبية المبسّطة (B2C) تتبع نموذج الإبلاغ — تُصدَر أولاً برمز QR مرمَّز بصيغة TLV، ثم تُبلَّغ بها زاتكا خلال 24 ساعة.
- كل فاتورة يجب أن تتضمن تجزئة (hash) تشفيرية متسلسلة تربطها بالفاتورة السابقة، إلى جانب توقيع رقمي باستخدام معرف الختم التشفيري (CSID) الصادر من فاتورة.
- ملف XML يجب أن يتوافق مع معيار UBL 2.1 مع التوسعات الخاصة بزاتكا المعرَّفة في مواصفة المرحلة الثانية.
رمز TLV QR من زاتكا
نجا رمز QR الخاص بالمرحلة الأولى ليصبح في المرحلة الثانية سلسلة base64 بصيغة TLV (Tag-Length-Value). يحتوي على خمسة وسوم إلزامية: اسم البائع، رقم التسجيل الضريبي، الطابع الزمني بصيغة ISO 8601، الإجمالي شاملاً الضريبة، ومبلغ الضريبة. وتضيف المرحلة الثانية ثلاثة وسوم: تجزئة XML، التوقيع الرقمي، والمفتاح العام. يتحقق تطبيق زاتكا من هذه الوسوم، وأي حقل مُرمَّز بشكل خاطئ يفشل في التحقق لدى المشتري حتى بعد اعتماد الفاتورة.
أبرز العقبات التشغيلية
- انحراف الزمن. تُرفَض الفواتير التي يبتعد طابعها الزمني عن ساعة زاتكا المرجعية بأكثر من 30 ثانية. استخدم بروتوكول NTP، لا ساعة جهازك المحلي.
- كسر سلسلة التجزئة. إن أصدرتَ فاتورة دون تضمين تجزئة الفاتورة السابقة، فالسلسلة مكسورة، ويتعيّن إعادة تسجيل الجهاز بأكمله بمعرف CSID جديد.
- تعدد فئات الضريبة. السلع بنسبة 15% مع صادرات بنسبة الصفر في فاتورة واحدة تحتاج كل منها إلى كتلة <cac:TaxSubtotal> منفصلة؛ ودمجها في إجمالي واحد ضمن الأسباب الثلاثة الأولى للرفض.
تنفّذ استراتيجية MENAStrategy في إنفويسي كل ذلك — توليد UUID، وسلاسل التجزئة، ورمز QR بصيغة TLV، وUBL 2.1 مع توسعات زاتكا — لتتفرّغ لإصدار الفواتير بدلاً من تحليل مواصفات التطبيق.