وين قواعد التحقق في زاتكا تختلف عن نصها
زاتكا تحط قواعد الفوترة الإلكترونية داخل الـ SDK كملفات XSLT. كل قاعدة تطلّع رسالة واختبار، لكن الشرط اللي ينفَّذ فعلاً سطر ثاني، وأحياناً يفحص شي مختلف. شغّلنا ملفات القواعد الرسمية من SDK 3.4.8 على فواتير الهيئة النموذجية نفسها، ونغيّر شي واحد كل مرة. هذي الست اختلافات اللي تفرق في الشغل.
- البنود خارج نطاق الضريبة (الفئة O): استخدم VATEX-SA-OOS مو VAT-OOS-SA
- قاعدة الـ QR (BR-KSA-27) ما تنطبق فعلياً إلا على المبسّطة
- قواعد هاش الفاتورة السابقة تقبل أي قيمة
- BR-KSA-10 (عنوان المشتري) تنطبق على المشتري السعودي بعد
- BR-KSA-16 تقبل رموز دفع أكثر بكثير من نصها
- فاتورة الهيئة المبسّطة النموذجية نفسها تطلّع BR-KSA-98 اليوم
البنود خارج نطاق الضريبة (الفئة O): استخدم VATEX-SA-OOS مو VAT-OOS-SA
رمز VAT-OOS-SA للفئة O منتشر في التكاملات، لكن في SDK 3.4.8 يطلّع تحذير BR-KSA-CL-04، بينما VATEX-SA-OOS يعدّي بدون أي ملاحظة.
التجربة: سوينا نفس الفاتورة الخارجة عن النطاق مرتين، مرة بكل رمز، وشغّلنا عليها ملفين القواعد.
قاعدة الـ QR (BR-KSA-27) ما تنطبق فعلياً إلا على المبسّطة
الرسالة تقول كل مستند لازم فيه QR، لكن الفحص اللي ينفَّذ يطبّقها على الفاتورة المبسّطة بس: لما شلنا الـ QR من فاتورة الهيئة الضريبية النموذجية ما طلع شي، ولما شلناه من المبسّطة طلعت BR-KSA-27.
التجربة: الفاتورتين النموذجيتين (الضريبية والمبسّطة) من SDK 3.4.8، كل وحدة بدون الـ QR.
قواعد هاش الفاتورة السابقة تقبل أي قيمة
BR-KSA-26 تشرح بالتفصيل كيف ينحسب هاش الفاتورة السابقة (PIH)، لكن الفحص نفسه يتأكد بس إنه موجود ومو فاضي. نص base64 عشوائي عدّى BR-KSA-26 و BR-KSA-61. خل سلسلتك صحيحة على كل حال، لأن ملف القواعد مو المكان اللي يتحقق منها.
التجربة: فاتورة الهيئة الضريبية النموذجية بعد ما استبدلنا الـ PIH بنص base64 عشوائي.
BR-KSA-10 (عنوان المشتري) تنطبق على المشتري السعودي بعد
الرسالة تتكلم عن المشتري اللي دولته غير السعودية، لكن الفحص الفعلي يطبّقها على كل فاتورة ضريبية: مشتري سعودي بدون اسم شارع طلّع BR-KSA-10 (ومعها BR-KSA-63).
التجربة: فاتورة الهيئة الضريبية النموذجية بعد حذف اسم شارع المشتري، ودولة المشتري SA.
BR-KSA-16 تقبل رموز دفع أكثر بكثير من نصها
اختبار القاعدة المكتوب يذكر رموز قليلة (10 و30 و42 و48 و1)، والفحص الفعلي يقبل قائمة UNTDID 4461 الأوسع: الرمز 68 عدّى، و999 ما عدّى. وانتبه إن BR-KSA-16 هي قاعدة طريقة الدفع، أما عدّاد الفاتورة (ICV) فقاعدته BR-KSA-33 و BR-KSA-34.
التجربة: فاتورة الهيئة الضريبية النموذجية برمز دفع 68، وبعدين 999.
فاتورة الهيئة المبسّطة النموذجية نفسها تطلّع BR-KSA-98 اليوم
BR-KSA-98 (التبليغ خلال ٢٤ ساعة) تقارن تاريخ الإصدار بالوقت الحالي، فأي فاتورة قديمة، حتى نموذج الهيئة المؤرخ ٢٠٢٢، تطلّعها. توقّع هالتحذير في ملفات الاختبار اللي تاريخها ثابت.
التجربة: فاتورة الهيئة المبسّطة النموذجية بدون أي تعديل.
الطريقة
القواعد: ملفين Schematron في SDK الهيئة 3.4.8 (قواعد السعودية و EN 16931)، مترجمة بـ Saxon وبدون أي تعديل. المدخلات: فواتير الهيئة النموذجية من نفس الـ SDK، نعدّل فيها حقل واحد كل مرة. تقدر تعيد كل تجربة بـ أداة الفحص المجانية اللي تشغّل نفس الملفات في متصفحك، والشرط الفعلي لكل قاعدة موجود في البيانات المفتوحة.