رفض فواتير المرحلة الثانية من ZATCA: أكثر الأخطاء شيوعًا وكيفية إصلاحها (SAP Business One)
بقلم زين عباس, كودينوفا · آخر تحديث
أولًا، اعرف أي مسار فشل
للمرحلة الثانية مساران، والرفض يعني شيئًا مختلفًا في كل منهما.
| الموضوع | الفاتورة الضريبية القياسية (B2B) | الفاتورة الضريبية المبسطة (B2C) |
|---|---|---|
| إجراء ZATCA | الاعتماد (فوري) | الإبلاغ (خلال 24 ساعة) |
| متى تُفحص | قبل أن يستلم المشتري الفاتورة | بعد البيع |
| من يختمها | ZATCA، التي تعيد أيضًا رمز QR | نظامك، بشهادة CSID الخاصة به |
| حالة الفشل | NOT_CLEARED | NOT_REPORTED |
| ماذا يعني الرفض | لا يمكن أن تذهب الفاتورة إلى المشتري كما هي | الفاتورة غير صالحة ويجب إعادة إرسالها كمستند جديد |
تفصل استجابة ZATCA بين الأخطاء والتحذيرات. الخطأ يرفض المستند، والتحذير يأتي مع مستند مقبول. في استجابة NOT_CLEARED حقيقية سترى كتلة validationResults تحتوي على رمز وفئة ورسالة، مثل:
BR-KSA-39: The invoice must contain the seller VAT registration number (BT-31) and/or seller group VAT registration number (KSA-18).
(معناها: يجب أن تحتوي الفاتورة على الرقم الضريبي للبائع (BT-31) و/أو الرقم الضريبي لمجموعة البائع (KSA-18).)
رمز القاعدة في البداية هو ما تبحث عنه. تكاد كل حالة رفض تعود إلى إحدى المجموعات التالية.
1. حقول عنوان المشتري (B2B)
هذا هو الخطأ الأكثر شيوعًا الذي نراه في SAP Business One.
يشترط معيار XML وجود عنوان بريدي للمشتري في كل فاتورة باستثناء الفواتير المبسطة وإشعاراتها (القاعدة BR-10). إضافة إلى ذلك، تنص BR-KSA-63 على أنه عندما تكون دولة المشتري SA، تكون هذه الحقول إلزامية: اسم الشارع، ورقم المبنى، والرمز البريدي، والمدينة، والحي، والدولة. وتتوقع قواعد العنوان أيضًا رقم مبنى من 4 أرقام ورمزًا بريديًا من 5 أرقام.
في SAP B1 يحتوي عنوان الفوترة للعميل غالبًا على الشارع والمدينة دون الحي، أو يُكتب رقم المبنى في سطر الشارع. يعتمد ربط حقول SAP بحقول ZATCA على التكامل لديك، لذلك راجع مستند الربط الخاص به.
الحل: نظّف عناوين الفوترة لجميع العملاء السعوديين قبل الإطلاق، وأضف فحصًا في SAP B1 يمنع إضافة فاتورة مبيعات لعميل B2B سعودي إذا كان الحي فارغًا أو الرمز البريدي ليس من 5 أرقام.
2. صيغة الرقم الضريبي
تفحص BR-KSA-44 الرقم الضريبي للمشتري عندما يكون موجودًا والفاتورة ليست تصديرًا: يجب أن يكون 15 رقمًا، يبدأ بـ 3 وينتهي بـ 3. في SAP B1 يأتي هذا عادةً من حقل الرقم الضريبي (Federal Tax ID) في شريك الأعمال. المسافات أو الشرطات أو رقم ناقص أو رقم سجل تجاري قديم في هذا الحقل ستفشل.
أما في فواتير التصدير فالقاعدة معاكسة: تنص BR-KSA-46 على عدم إرسال الرقم الضريبي للمشتري.
لا تزال الفواتير القياسية تحتاج إلى معرّف للمشتري عندما لا يكون لديه رقم ضريبي. تقبل ZATCA أنظمة تعريف أخرى مثل السجل التجاري (CRN) أو الهوية الوطنية (NAT)، كما هو مذكور في BR-KSA-14 و BR-KSA-81.
الحل: تحقق من صيغة الرقم الضريبي في البيانات الرئيسية لشريك الأعمال، وميّز عملاء التصدير بوضوح ليعرف التكامل أنه لا يجب إرساله.
3. الإجماليات والتقريب
تعيد ZATCA حساب فاتورتك. إذا لم تتطابق أرقامها مع أرقامك، يفشل المستند. القواعد التي تكشف معظم حالات SAP B1:
- BR-KSA-50: يجب أن تساوي ضريبة السطر صافي مبلغ السطر × (نسبة الضريبة / 100).
- BR-KSA-51: يجب أن يساوي مبلغ السطر شاملًا الضريبة صافي مبلغ السطر + ضريبة السطر.
- BR-CO-10: يجب أن يساوي مجموع صافي مبالغ الأسطر إجمالي صافي مبالغ الأسطر في الفاتورة.
- BR-CO-17: يجب أن تساوي الضريبة لكل فئة المبلغ الخاضع للضريبة × النسبة، مقربًا إلى منزلتين عشريتين.
يشترط معيار XML التقريب إلى الأعلى عند النصف (half-up)، ويُحسب إجمالي ضريبة المستند على مستوى المستند، لا بجمع ضرائب الأسطر المقربة. قد ينتج SAP B1 فروقًا صغيرة هنا، خاصة مع الخصومات على مستوى المستند، أو الأسعار ذات المنازل العشرية الكثيرة، أو إعدادات التقريب على المستند. فرق 0.01 ريال يكفي للرفض.
الحل: اجعل التكامل يبني مبالغ XML باستخدام معادلات ZATCA، واختبر فواتير فيها خصومات وكميات كسرية ونسب ضريبة مختلطة في بيئة المحاكاة. تساعدك حاسبة ضريبة القيمة المضافة السعودية عندما تفحص سطرًا واحدًا يدويًا.
4. الإشعارات الدائنة والمدينة
تُنشأ الإشعارات الدائنة في SAP B1 غالبًا دون مستند أساس، مثل تعديل سعر يدوي. لا تقبل ZATCA ذلك. هذه الأسطر لها RIN1.BaseType = -1؛ راجع جدول ORIN (الإشعار الدائن للمبيعات) لاستعلام يجدها.
- BR-KSA-56: يجب أن تحمل الإشعارات الدائنة (الرمز 381) والمدينة (الرمز 383) مرجع فوترة الفاتورة الأصلية.
- BR-KSA-17: يجب أن تذكر الإشعارات سبب الإصدار.
الحل: اشترط وجود فاتورة مبيعات أساس (أو على الأقل حقل مرجع) وسببًا في كل إشعار دائن يُرسل إلى ZATCA.
5. سلسلة التجزئة و ICV و PIH
تحتفظ كل وحدة فوترة بسلسلة واحدة. يحمل كل مستند قيمة عدّاد الفواتير (ICV) التي تزيد بمقدار واحد، وتجزئة الفاتورة السابقة (PIH) التي تشير إلى المستند الذي قبله. وتجعل BR-KSA-61 حقل PIH إلزاميًا.
إرشادات ZATCA صارمة هنا:
- يجب ألا يُعاد ضبط العدّاد، وينبغي ألا تكون هناك فجوات في العدّاد أو في تسلسل التجزئة.
- يجب ألا يُعاد استخدام قيمة ICV.
- المستندات المرفوضة تُحتسب أيضًا. لا تتغير تجزئتها ولا عدّادها، ويشير PIH للمستند التالي إلى المستند الذي يسبقه مباشرة، حتى لو كان مرفوضًا.
تأتي أخطاء السلسلة في SAP B1 عادةً من مستخدمَين أو خدمتين ترسلان في اللحظة نفسها، أو من قاعدة بيانات مستعادة من نسخة احتياطية، أو من شركة اختبار نُسخت إلى الإنتاج مع عدّادها.
الحل: أصدر العدّاد والتجزئة من مكان واحد لكل وحدة فوترة، واقفله أثناء الإرسال، ولا تُعد ضبطه أبدًا بعد الاستعادة دون التحقق من آخر قيمة استلمتها ZATCA.
6. التوقيع والتجزئة ورمز QR
في الفواتير المبسطة يوقّع نظامك ملف XML. إذا لم تطابق التجزئة الموجودة في التوقيع ملف XML الذي تستلمه ZATCA، تفشل الفاتورة. يعرّف معيار الأمان لدى ZATCA التجزئة بأنها SHA-256 على XML بصيغة قانونية (canonicalised) تستثني امتدادات UBL وكتلة التوقيع وعنصر QR. أي تغيير بعد التوقيع، حتى إعادة تنسيق المسافات أو إعادة ترتيب العناصر، يكسرها.
يجب أن يحتوي رمز QR للفواتير B2C على جميع الوسوم التسعة بصيغة Base64 TLV، بحد أقصى 700 حرف. فك ترميز عيّنة باستخدام أداة فك ترميز رمز QR لـ ZATCA للتحقق من الحقول، وراجع دليل رمز QR لمعرفة ما يحتويه كل وسم.
الحل: وقّع ملف XML النهائي، واحفظ ما أُرسل كما هو بالضبط، ولا تُعد بناء XML للطباعة أبدًا.
7. مشكلات CSID
شهادة CSID للإنتاج شهادة لها تاريخ انتهاء. يسمح معيار الأمان لدى ZATCA بصلاحية تصل إلى 60 شهرًا، وترسل البوابة تذكيرًا قبل انتهائها. التجديد يُلغي الشهادة القديمة ويُصدر شهادة جديدة. ويجب أيضًا التحقق من الشهادة قبل الختم، لذلك فإن شهادة CSID منتهية أو ملغاة توقف الإرسال لوحدة الفوترة تلك.
تعمل شهادة CSID للامتثال (Compliance) فقط على واجهات الامتثال البرمجية. أما الاعتماد والإبلاغ فيحتاجان شهادة CSID للإنتاج.
الحل: سجّل تاريخ انتهاء كل شهادة CSID وخطط للتجديد قبله بوقت كافٍ.
كيف تتعامل مع فاتورة مرفوضة في SAP Business One
- اقرأ الرمز. سجّل معرّف القاعدة والرسالة من الاستجابة، لا مجرد كلمة «مرفوضة».
- اعثر على السبب. البيانات الرئيسية (العنوان، الرقم الضريبي)، أو بيانات المستند (المرجع، السبب)، أو الحساب (التقريب).
- أصلح المصدر. صحّح شريك الأعمال أو الإعداد، لا ملف XML فقط.
- لا تعدّل المستند المرفوض. يبقى في السلسلة بعدّاده وتجزئته.
- أرسل مستندًا جديدًا. يحصل على ICV و UUID وتجزئة وطابع زمني جديدة. وفي B2B يجب اعتماده قبل أن يذهب إلى العميل.
- راقب قائمة الانتظار. افحص المستندات المرفوضة والمعلقة يوميًا، لا عند موعد إقرار ضريبة القيمة المضافة.
تغطي صفحة الفوترة الإلكترونية لـ ZATCA الإعداد الكامل، وتساعدك قائمة التحقق للموجة 25 إذا كنت ستبدأ التشغيل في 2027. إذا استمر رفض فواتير SAP Business One لديك، أرسل لنا رموز الأخطاء وسنخبرك أين يكمن الحل. وراجع أيضًا خدمة تكامل الفوترة الإلكترونية.
المصادر
- ZATCA: الدليل التقني التفصيلي للفوترة الإلكترونية، الإصدار 2 (نوفمبر 2022)
- ZATCA: الدليل الإرشادي التفصيلي للفوترة الإلكترونية، الإصدار 2 (مايو 2023)
- ZATCA: معيار تطبيق XML للفاتورة الإلكترونية، الإصدار 1.2 (19 مايو 2023)
- ZATCA: معايير تطبيق ميزات الأمان للفاتورة الإلكترونية (19 مايو 2023)
- قاعدة معرفة قيود: رموز أخطاء ZATCA والردود على العملاء
- توثيق GOBL: إضافة ZATCA للسعودية (مراجع القواعد)
- مجتمع مطوري ZATCA: استجابة NOT_CLEARED مع BR-KSA-39
خدمات ذات صلة
أسئلة شائعة
ما الفرق بين الخطأ والتحذير في ZATCA؟
يذكر الدليل التقني لـ ZATCA أن الخطأ هو فشل في التحقق يؤدي إلى رفض المستند. أما التحذير فيُرفق بمستند قُبل رغم ذلك. ينبغي إصلاح التحذيرات في الفواتير المستقبلية، لكن الفاتورة نفسها تبقى صحيحة.
هل يمكنني تصحيح فاتورة ZATCA مرفوضة وإعادة إرسالها؟
ليس بوصفها المستند نفسه. تذكر إرشادات ZATCA أن الفاتورة المصححة تُرسل كفاتورة جديدة، بقيمة عدّاد فواتير و UUID وتجزئة وطابع زمني خاصة بها. لا تُغيَّر تجزئة المستند المرفوض ولا عدّاده ولا يُعاد استخدامهما.
هل يمكنني إرسال فاتورة B2B إلى العميل قبل اعتمادها؟
لا. يجب أن تعتمد ZATCA الفواتير الضريبية القياسية قبل مشاركتها مع المشتري. تسمح إرشادات ZATCA باستثناء فقط عندما يتعذر الوصول إلى المنصة، ويجب حينها اعتماد الفاتورة عند عودة الاتصال.
كم مدة صلاحية CSID من ZATCA؟
يسمح معيار الأمان لدى ZATCA بصلاحية شهادة تصل إلى 60 شهرًا. تاريخ الانتهاء الفعلي مذكور في شهادتك، وترسل بوابة المكلّفين تذكيرًا قبل انتهائها. التجديد يُلغي الشهادة القديمة ويُصدر شهادة جديدة.
ماذا يحدث إذا رُفضت فاتورة مبسطة (B2C)؟
أصلح الخطأ وأرسل مستندًا جديدًا للإبلاغ. يذكر الدليل التقني لـ ZATCA أن الفاتورة لا يُعاد إصدارها للعميل، وأن المعاملة تبقى مُقرًّا عنها في إقرار ضريبة القيمة المضافة الدوري.
جاهز للبدء؟
أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.
