تشريح أخطاء الربط مع زاتكا للورش والمراكز الفنية
الفاتورة رُفضت ولا تعرف السبب؟ خريطة تشخيص تبدأ من رد منصة فاتورة وتنتهي بالإصلاح، لستة أخطاء تُسقط فواتير سليمة محاسبيًا.
إعداد: فريق مهنة للحلول الرقمية
مراجعة تقنية مقابل مواصفات هيئة الزكاة والضريبة والجمارك ومجتمع مطوّري فاتورة
الخلاصة في أربعة أسطر
الرفض غالبًا خلل في الملف، لا في حساباتك
- اقرأ رمز الرد أولًا: 202 قبول مع تحذير، و400 رفض يحتاج إصلاحًا، و401 مشكلة شهادة.
- عداد ICV وسلسلة PIH لكل وحدة إصدار: رقم مفقود أو بصمة سابقة خاطئة يكسران كل ما بعدهما.
- أي تعديل على XML بعد حساب بصمته، ولو مسافة، ينتج Invalid Invoice Hash.
- رمز QR بخمسة وسوم يكفي المرحلة الأولى فقط؛ المرحلة الثانية تتطلب تسعة.

حين ترجع فاتورة من منصة فاتورة مرفوضة، يفترض صاحب الورشة أن الخطأ في المبلغ أو الضريبة. في أغلب الحالات يكون المبلغ سليمًا، والخلل في طبقة لا يراها: شهادة انتهت، أو عداد قفز رقمًا، أو ملف تغيّر بايت واحد فيه بعد توقيعه. المحاسب لا يحل هذه الأخطاء، ومراجعة الأرقام لا تكشفها.
التوقيت يجعل الفهم ضروريًا الآن. أعلنت الهيئة في 24 يوليو 2026 أن المجموعة 25 تشمل كل من تجاوزت إيراداته الخاضعة للضريبة 187,500 ريال في أي سنة من 2022 إلى 2025، وأن الربط مطلوب في موعد أقصاه 1 فبراير 2027. ورش كثيرة ستعبر هذا الحد لأول مرة، وأول ما ستواجهه بعد الربط هو الرفض.
هذا المقال لا يشرح خطوات الربط، فذلك في دليل منصة فاتورة، ولا الغرامات، فتلك في دليل المرحلة الثانية والغرامات. هو مرجع تشخيص: الفاتورة رُفضت، فأين الخلل بالضبط؟
رتّب فواتير ورشتك قبل أن تصل إلى منصة فاتورة
مهنة يجمع أمر العمل وعرض السعر والفاتورة في مسار واحد، ويحسب ضريبة 15% بالهللة دون كسور عائمة، فيطابق مجموع البنود الإجمالي دائمًا. هذا لا يغني عن حل مؤهّل للربط، لكنه يغلق أخطاء البيانات التي تسبق الرفض.
قبل أي إصلاح: ماذا يقول رد منصة فاتورة؟
كل فاتورة تُرسل تعود برمز حالة. الخطأ الشائع أن يُعامل كل رد غير ناجح معاملة الرفض، فيُعاد الإرسال بفاتورة جديدة ورقم جديد، وهذا بالضبط ما يكسر العداد والسلسلة كما سيأتي. الجدول التالي يلخّص الرموز كما يوثّقها مجتمع مطوّري فاتورة.
| الرمز | المعنى | ما تفعله |
|---|---|---|
| 200 | قُبلت الفاتورة | لا شيء. احفظ الرد المختوم مع الفاتورة. |
| 202 | قُبلت مع تحذيرات | لا تُعِد الإرسال، لكن أصلح سبب التحذير في الفواتير القادمة. |
| 400 | طلب غير صالح — الفاتورة مرفوضة | اقرأ رسائل الخطأ في الرد، أصلح، ثم أرسل من جديد. |
| 401 | فشل التوثيق | افحص الشهادة والسر المستخدمين، ثم أعد الإرسال. |
| 428 | شهادة امتثال مجدَّدة لم تجتز الفحص | مرّر الشهادة الجديدة على فحوص الامتثال ثم استخرج شهادة إنتاج جديدة. |
| 429 · 5xx | لم تستلم المنصة الفاتورة | أعد إرسال الفاتورة نفسها بالرقم نفسه — لا تُنشئ فاتورة جديدة. |
وتذكّر أن المسارين مختلفان: الفاتورة الضريبية (B2B) تُعتمد لحظيًا قبل تسليمها للمشتري، والفاتورة المبسطة (B2C) تُبلَّغ خلال 24 ساعة من إصدارها. فاتورة مبسطة تأخر إبلاغها ليست مشكلة XML، بل مشكلة جدولة.
خريطة التشخيص السريع: من العَرَض إلى الخطأ
| ما تلاحظه | الخطأ الأرجح | افحص أولًا |
|---|---|---|
| كل الفواتير ترفض فجأة بعد أشهر من العمل | الخطأ 1 — شهادة CSID | تاريخ انتهاء الشهادة ونتيجة 401 |
| فاتورة واحدة ترفض بعد انقطاع شبكة أو إعادة محاولة | الخطأ 2 — عداد ICV | هل استُهلك رقم دون إرسال؟ |
| الرفض يبدأ من فاتورة معيّنة ويستمر بعدها | الخطأ 3 — سلسلة PIH | بصمة الفاتورة السابقة المخزنة |
| الملف يبدو صحيحًا لكن الرد Invalid Invoice Hash | الخطأ 4 — بصمة الفاتورة | هل تغيّر XML بعد حساب البصمة؟ |
| العميل لا يستطيع التحقق من الرمز المطبوع | الخطأ 5 — رمز QR | عدد وسوم TLV في الرمز |
| فواتير عملاء الشركات فقط ترفض | الخطأ 6 — حقول XML | العنوان الوطني وبيانات المشتري |
الخطأ 1: شهادة CSID منتهية أو غير مطابقة
كل جهاز أو نظام يُصدر الفواتير يُسجَّل في منصة فاتورة كوحدة إصدار، ويحمل شهادة تشفير خاصة به. الوحدة تمر بمرحلتين: شهادة امتثال تُستخرج برمز OTP وطلب توقيع شهادة (CSR)، ثم فحوص امتثال، ثم شهادة إنتاج هي التي تُرسل بها الفواتير الحقيقية.
العَرَض المميز هنا أن كل الفواتير ترفض دفعة واحدة بعد فترة عمل طبيعية، والرد 401. لا شيء تغيّر في الفواتير نفسها؛ الذي تغيّر هو صلاحية الشهادة.
السبب
شهادة الإنتاج انتهت، أو يُرسَل بشهادة جهاز آخر، أو جُدّدت الشهادة ولم تمر النسخة الجديدة على فحوص الامتثال (الرد 428).
الإصلاح
- سجّل تاريخ انتهاء كل شهادة لكل وحدة إصدار، وجدّدها قبل موعدها لا بعد أول رفض.
- التجديد يلغي الشهادة القديمة ويصدر جديدة؛ لا ترسل بعده بالقديمة.
- بعد التجديد مرّر الشهادة على فحوص الامتثال قبل استخراج شهادة الإنتاج.
الخطأ 2: عداد ICV قفز رقمًا أو تكرر
ICV (Invoice Counter Value) عداد متسلسل لكل وحدة إصدار، يبدأ من 1 ويزيد واحدًا مع كل فاتورة، دون فجوة ودون تكرار. هو ليس رقم الفاتورة الذي يراه العميل، بل رقم داخلي تتحقق منه المنصة.
في الورش يظهر هذا الخطأ بعد انقطاع الشبكة تحديدًا: الفاتورة تُنشأ ويُحجز لها رقم، يفشل الإرسال، فيضغط الموظف «إصدار» مرة أخرى، فتُنشأ فاتورة ثانية برقم جديد. الآن في السلسلة رقم لم يُرسل أبدًا.
السبب
استهلاك رقم عند محاولة فاشلة، أو حذف فاتورة بعد ترقيمها، أو جهازان يتشاركان عدادًا واحدًا.
الإصلاح
- إن كان الرد 429 أو 5xx فأعد إرسال الفاتورة نفسها بعدادها نفسه، لا فاتورة جديدة.
- لا تحذف فاتورة مرقّمة؛ صحّحها بإشعار دائن يأخذ رقمه في التسلسل.
- عداد مستقل لكل وحدة إصدار، ولا يُحجز الرقم إلا عند الإصدار الفعلي.
الخطأ 3: انقطاع سلسلة PIH
كل فاتورة تحمل في حقل PIH (Previous Invoice Hash) بصمة الفاتورة السابقة الصادرة من الوحدة نفسها، فتصير الفواتير سلسلة لا يمكن حذف حلقة منها دون أن ينكشف ذلك. الفاتورة الأولى لا سابق لها، فتحمل قيمة ثابتة هي ترميز Base64 لبصمة SHA-256 للحرف «0»:
NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==العَرَض الذي يميّز هذا الخطأ عن غيره أن الرفض يبدأ من فاتورة معيّنة ثم لا يتوقف: كل ما بعدها يحمل بصمة سابقة خاطئة. لذلك إصلاح الفاتورة الأخيرة وحدها لا يكفي.
السبب
حساب البصمة السابقة من نسخة أعيد توليدها بدل النسخة المرسلة، أو استرجاع «آخر فاتورة» من فرع آخر، أو ضياع البصمة المخزنة.
الإصلاح
- خزّن بصمة كل فاتورة لحظة إصدارها، واقرأ PIH من المخزن لا بإعادة الحساب.
- سلسلة مستقلة لكل وحدة إصدار؛ لا تخلط فروع الورشة في سلسلة واحدة.
- حدّد أول فاتورة انكسرت عندها السلسلة، وأصلح من هناك لا من آخر فاتورة.
الخطأ 4: Invalid Invoice Hash
ترسل الفاتورة إلى المنصة ومعها بصمتها في جسم الطلب. المنصة تحسب البصمة من ملف XML المرسل وتقارنها بما أرسلته. أي فرق، مهما صغر، ينتج هذا الخطأ.
{
"invoiceHash": "<SHA-256 للنسخة النهائية من XML، بترميز Base64>",
"uuid": "<المعرّف الفريد للفاتورة>",
"invoice": "<ملف XML نفسه، بترميز Base64>"
}المصدر المعتاد أن الملف تغيّر بعد حساب بصمته: مكتبة أعادت تنسيقه، أو أضافت مسافات وأسطرًا، أو غيّرت ترميز الحروف، أو أُضيف حقل بعد التوقيع. على الشاشة يبدو الملف مطابقًا، لكن البايتات تغيّرت.
السبب
البصمة حُسبت على نسخة من XML، والنسخة المرسلة مختلفة ولو بمسافة أو ترميز.
الإصلاح
- ولّد XML، ثم احسب البصمة ووقّع، ثم لا تلمس الملف.
- أرسل البايتات نفسها التي حُسبت عليها البصمة، دون تنسيق أو تحويل.
- إن تكرر الخطأ مع كل الفواتير فالخلل في طريقة الحساب نفسها لا في فاتورة بعينها.
الخطأ 5: رمز QR بخمسة وسوم فقط
رمز QR في الفاتورة ليس رابطًا، بل بيانات مرمّزة بصيغة TLV (وسم، طول، قيمة) ثم Base64. المرحلة الأولى اكتفت بخمسة وسوم. المرحلة الثانية أضافت أربعة وسوم تشفيرية تربط الرمز بالفاتورة الموقّعة، فرمز المرحلة الأولى لا يكفي بعد الربط.
| الوسم | المحتوى | المرحلة |
|---|---|---|
| 1 | اسم البائع | الأولى والثانية |
| 2 | الرقم الضريبي للبائع | الأولى والثانية |
| 3 | تاريخ ووقت الإصدار | الأولى والثانية |
| 4 | إجمالي الفاتورة شامل الضريبة | الأولى والثانية |
| 5 | إجمالي ضريبة القيمة المضافة | الأولى والثانية |
| 6 | بصمة الفاتورة (hash) | الثانية فقط |
| 7 | التوقيع الرقمي ECDSA | الثانية فقط |
| 8 | المفتاح العام | الثانية فقط |
| 9 | توقيع الختم من الجهة المصدِرة للشهادة (للفواتير المبسطة) | الثانية فقط |
السبب
النظام ما زال يولّد رمز المرحلة الأولى، أو يولّد الرمز قبل التوقيع فلا تتوفر له البصمة والتوقيع.
الإصلاح
- ولّد الرمز بعد حساب البصمة والتوقيع، لأن الوسوم 6 إلى 8 تُستخرج منهما.
- افحص الرمز بفك ترميزه وعدّ الوسوم؛ خمسة وسوم تعني رمز المرحلة الأولى.
- القارئ السليم للرمز لا يعني أن المنصة ستقبله: الوسوم الناقصة لا تمنع قراءته.
الخطأ 6: حقل إلزامي فارغ أو بصيغة خاطئة في XML
ملف الفاتورة يُفحص بقواعد تحقق مكتوبة لكل حقل. الأكثر إسقاطًا لفواتير الورش هو العنوان الوطني: يجب أن يحمل عنوان البائع اسم الشارع ورقم المبنى والرمز البريدي والمدينة والحي ورمز الدولة SA. والقاعدة BR-KSA-37 تشترط أن يكون رقم المبنى 4 أرقام، والرمز البريدي السعودي 5 أرقام.
<cac:PostalAddress>
<cbc:StreetName>طريق الملك فهد</cbc:StreetName>
<cbc:BuildingNumber>1234</cbc:BuildingNumber> <!-- 4 أرقام -->
<cbc:CitySubdivisionName>العليا</cbc:CitySubdivisionName>
<cbc:CityName>الرياض</cbc:CityName>
<cbc:PostalZone>12345</cbc:PostalZone> <!-- 5 أرقام -->
<cac:Country><cbc:IdentificationCode>SA</cbc:IdentificationCode></cac:Country>
</cac:PostalAddress>العَرَض المعتاد أن فواتير الأفراد تمر وفواتير الشركات ترفض: الفاتورة الضريبية لعميل منشأة تتطلب بياناته، فإن سُجّل العميل باسم وجوال فقط سقطت فاتورته. ويتكرر معه عدم اتساق فئة الضريبة مع نسبتها، أو إجمالي لا يساوي مجموع الصافي والضريبة.
السبب
بيانات ناقصة عند التسجيل تُكتشف عند الإرسال: عنوان بلا رقم مبنى، ومنشأة بلا رقم ضريبي، وإجماليات مقرّبة بطريقة مختلفة.
الإصلاح
- اجعل حقول العنوان الوطني إلزامية عند إعداد المنشأة وعند تسجيل عميل منشأة.
- تحقّق من الطول قبل الإرسال: مبنى 4 أرقام، ورمز بريدي 5 أرقام.
- احسب الضريبة بالهللة لا بالكسور العشرية، كي يطابق الإجمالي مجموع مكوّناته.
بعد القبول: الفاتورة لا تُعدَّل
حين تُقبل الفاتورة تصبح جزءًا من السجل الضريبي. تعديلها يكسر تطابقها مع بصمتها، وإلغاؤها غير متاح. التصحيح يكون بمستند مستقل يشير إلى الأصل ويأخذ مكانه في العداد والسلسلة، ويمر بالاعتماد أو الإبلاغ مثل أي فاتورة.
| المستند | الرمز | متى تستخدمه |
|---|---|---|
| فاتورة ضريبية | 388 | البيع الأصلي |
| إشعار دائن | 381 | خصم لاحق، مرتجع قطعة، مبلغ زائد |
| إشعار مدين | 383 | عمل إضافي أو مبلغ ناقص بعد الفوترة |
ابدأ من البيانات: فاتورة صحيحة تبدأ بكرت صيانة صحيح
مهنة يجمع أمر العمل وعرض السعر والفاتورة في مسار واحد، ويحسب ضريبة 15% بالهللة دون كسور عائمة، فيطابق مجموع البنود الإجمالي دائمًا. هذا لا يغني عن حل مؤهّل للربط، لكنه يغلق أخطاء البيانات التي تسبق الرفض.
الأسئلة الشائعة
لماذا ترفض منصة فاتورة فواتير ورشتي؟
في معظم الحالات لخلل تقني في الملف لا لخطأ محاسبي. الأسباب الأكثر تكرارًا: انتهاء شهادة CSID، انكسار عداد ICV وسلسلة التجزئة، ترميز TLV ناقص في رمز QR، وحقل إلزامي فارغ في ملف XML.
كيف أعرف رقم المجموعة الخاصة بورشتي؟
المعيار معلن: المجموعة 25 تشمل من تجاوزت إيراداته الخاضعة للضريبة 187,500 ريال في أي سنة من 2022 إلى 2025، وموعد ربطها 1 فبراير 2027. هيئة الزكاة والضريبة والجمارك تُشعر المنشآت المستهدفة مباشرة، وأعلنت أنها تُبلغ المجموعات التالية قبل موعد ربطها بستة أشهر على الأقل. إن لم يصلك إشعار فراجع حسابك لدى الهيئة.
هل الفاتورة المصدَّرة من إكسل أو PDF عادي مقبولة في المرحلة الثانية؟
لا. المطلوب ملف XML بمواصفة UBL 2.1، أو PDF/A-3 يحمل XML مضمّنًا داخله. ملف PDF من إكسل ليس فاتورة إلكترونية بمفهوم المنظومة.
هل يمكن تعديل فاتورة بعد قبولها من منصة فاتورة؟
لا. أي تعديل بعد الختم يكسر التطابق بين محتوى الفاتورة وبصمتها ويفشل التحقق فورًا. التصحيح يتم بإشعار دائن أو إشعار مدين مرتبط بالفاتورة الأصلية.
كم أحتاج من الوقت للربط مع منصة فاتورة إذا بدأت اليوم؟
لا توجد مدة رسمية واحدة. بناء الربط داخل نظام خاص يمر بإنشاء XML والتوقيع وسلسلة التجزئة واجتياز فحوص الامتثال، وقد يطول حسب النظام. اختيار حل مؤهّل مسبقًا للاتصال بمنصة فاتورة يختصر ذلك إلى تهيئة الأجهزة وبيانات الضريبة. ابدأ مبكرًا: موعد المجموعة 25 هو 1 فبراير 2027.
ما تحققنا منه وما لم نتحقق منه
تحققنا منه: معيار المجموعة 25 وموعدها ومدة الإشعار من إعلان الهيئة، ورموز الرد من مجتمع مطوّري فاتورة، وقيمة PIH الأولى وتسلسل ICV، ووسوم QR التسعة، وقاعدة BR-KSA-37، وصيغتي XML وPDF/A-3، ورموز المستندات 388 و381 و383.
لم نتحقق منه: مدة صلاحية شهادة الإنتاج، إذ تتضارب فيها المصادر المتاحة، فراجعها في حساب منشأتك. ولم نعتمد على قوائم رموز الأخطاء المتداولة في مدونات الشركات لأنها تتعارض فيما بينها.
المصادر
- 1إعلان معايير المجموعة 25 وموعد ربطها — هيئة الزكاة والضريبة والجمارك، 24 يوليو 2026.
- 2الدليل التفصيلي للفوترة الإلكترونية (الإصدار 2) — هيئة الزكاة والضريبة والجمارك.
- 3معيار تنفيذ ملف XML للفاتورة الإلكترونية — هيئة الزكاة والضريبة والجمارك.
- 4معايير تنفيذ متطلبات الأمان للفاتورة الإلكترونية — هيئة الزكاة والضريبة والجمارك.
- 5دليل إنشاء رمز QR المتوافق مع منصة فاتورة — هيئة الزكاة والضريبة والجمارك.
- 6رموز رد واجهات الاعتماد والإبلاغ — مجتمع مطوّري منصة فاتورة.
المحرر: فريق مهنة للحلول الرقمية. آخر تحديث: .
الإفصاح: مهنة منتج لإدارة الورش، ويُذكر في هذا المقال مع حدوده المعلنة أعلاه.