ما الذي يذكره مطابق
مدخل لكل حالة تُذكر فيها هذه القاعدة في التقرير.
- صورة القيمة في التقرير
- صورة القيمة التي وُجدت — empty وnot_15_digits وما شابههما — لا القيمة نفسها.
رمز نوع معاملة الفاتورة غير مكتوب على عنصر رمز نوع الفاتورة
صورة القيمة في التقريرinvoice_type_name.name_missingالسمة name غير موجودة
ما الخلل
عنصر رمز نوع الفاتورة cbc:InvoiceTypeCode موجود في المستند، لكنه لا يحمل السمة name، أو يحملها فارغة. وهذه السمة هي الحقل KSA-2 الذي يحمل نوع معاملة الفاتورة، ضريبية أو مبسطة، مع خمس رايات هي: طرف ثالث، وتوريد صوري، وتصدير، وفاتورة ملخَّصة، وفوترة ذاتية. وتقرأ هيئة الزكاة والضريبة والجمارك السمة الغائبة نصاً فارغاً، والنص الفارغ ليس 01 ولا 02، فترفض الفاتورة بموجب القاعدة BR-KSA-06؛ والسمة المكتوبة بقيمة فارغة تخفق عند الخطوة نفسها من الفحص نفسه. أما المستند الخالي من العنصر كله فتُرصد عليه ملاحظة أخرى على حدة بموجب القاعدة BR-04، لا هنا.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
العنصر نفسه يُكتب فعلاً، فنوع المستند يصل إلى الملف المصدَّر، وما ينقص هو السمة المجاورة له وحدها. راجع إعدادات الفوترة الإلكترونية وتأكد من أن نوع معاملة الفاتورة مُعرَّف وأن الربط يكتبه في السمة name على العنصر cbc:InvoiceTypeCode نفسه لا في عنصر مستقل. وهو رمز من سبعة محارف مثل 0100000: أول محرفين 01 للفاتورة الضريبية أو 02 للفاتورة المبسطة، والخمسة الباقية رايات قيمة كل منها 0 أو 1. والسمة المكتوبة بقيمة فارغة كالسمة التي لم تُكتب قط، فتحقّق من القيمة التي ينتجها الربط لا من كونه يكتب السمة فحسب.
رمز نوع معاملة الفاتورة أقصر من المطلوب
صورة القيمة في التقريرinvoice_type_name.too_shortأقصر من المطلوب
ما الخلل
السمة name على العنصر cbc:InvoiceTypeCode، وهي الحقل KSA-2، أقصر من سبعة محارف. وتفحص هيئة الزكاة والضريبة والجمارك المواضع من 1 إلى 7 موضعاً موضعاً، فالرمز الذي ينتهي قبل ذلك لا يجتاز الفحص عند أول موضع ناقص، بموجب القاعدة BR-KSA-06.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
الرمز سبعة محارف وأصفاره ذات دلالة: فالقيمة 01 أو 01000 ليست القيمة 0100000. تحقّق مما إذا كان التصدير يقتطع القيمة، أو أن الرايات محفوظة كرقم في مكان ما فتضيع الأصفار عند الإخراج. اكتب القيمة نصاً من سبعة محارف، مثل 0100000.
رمز نوع معاملة الفاتورة بصيغة غير الصيغة المتوقعة
صورة القيمة في التقريرinvoice_type_name.bad_patternليس بالصيغة المتوقعة
ما الخلل
طول السمة name على العنصر cbc:InvoiceTypeCode، وهي الحقل KSA-2، كافٍ، غير أن أحد مواضعها السبعة الأولى يحمل قيمة لا تقبلها هيئة الزكاة والضريبة والجمارك، بموجب القاعدة BR-KSA-06. فالموضعان 1 و2 يجب أن يكونا 01 للفاتورة الضريبية أو 02 للفاتورة المبسطة، والمواضع من 3 إلى 7 يجب أن يكون كل منها 0 أو 1.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
راجع نوع المعاملة المُعدّ لهذا المستند. والرايات الخمس التي تلي النوع هي بالترتيب: طرف ثالث، وتوريد صوري، وتصدير، وفاتورة ملخَّصة، وفوترة ذاتية؛ قيمة كل منها 0 أو 1، دون فواصل أو مسافات أو حروف. والقيمة 0200000 مثلاً تعني فاتورة مبسطة. ووجود محرف خارج هذه المجموعة يعني غالباً أن حقلاً نصياً حراً يُربط بهذه السمة.
رمز نوع معاملة الفاتورة أطول مما يُسمح به في فاتورة التصدير
صورة القيمة في التقريرinvoice_type_name.too_long_exportأطول مما يُسمح به في فاتورة التصدير
ما الخلل
السمة name على العنصر cbc:InvoiceTypeCode، وهي الحقل KSA-2، أطول من سبعة محارف، وراية التصدير فيها، وهي الموضع 5، مضبوطة على 1. وفي فاتورة التصدير تطبّق هيئة الزكاة والضريبة والجمارك حدّاً أعلى قدره سبعة محارف على هذا الحقل وترفض ما زاد عليه، بموجب القاعدة BR-KSA-CL-0222، وهي القاعدة التي يسمّيها نص رسالتها BR-KSA-02.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
اختصر الرمز إلى سبعة محارف تماماً، مثل 0100100. والمحارف الزائدة تأتي عادة من حشو الحقل إلى عرض ثابت، أو من لاحقة مضافة، أو من مسافات زائدة في جدول الإعدادات. وتأكد كذلك من أن راية التصدير يُقصد ضبطها على 1 في هذا المستند، فهي لا تُضبط إلا في فاتورة صادرة لعميل خارج المملكة.
رمز نوع معاملة الفاتورة أطول من سبعة محارف
صورة القيمة في التقريرinvoice_type_name.too_longأطول مما يُسمح به
ما الخلل
السمة name على العنصر cbc:InvoiceTypeCode، وهي الحقل KSA-2، أطول من المواضع السبعة التي حدّدتها هيئة الزكاة والضريبة والجمارك لهذا الحقل. وفحوص الهيئة تقرأ المواضع السبعة الأولى ولا تعترض على المحارف الزائدة في فاتورة كهذه، لذلك أُدرجت الملاحظة بوصفها مخاطرة لا سبب رفض. أما في فاتورة التصدير فالقيمة نفسها تُرفض.
ما الذي تتحقق منه في وحدة الفوترة الإلكترونية
اختصر الرمز إلى سبعة محارف تماماً، مثل 0100000. والمحارف الزائدة تأتي عادة من حشو الحقل إلى عرض ثابت، أو من لاحقة مضافة، أو من مسافات زائدة في جدول الإعدادات. ومعالجتها الآن تحمي مسار التصدير نفسه إذا ضُبطت راية التصدير في فاتورة لاحقة.
الفحص الذي يُنفَّذ
منقول حرفياً من ملفات قواعد التحقق التي تنشرها الهيئة، عند الملف والسطر المذكورين أدناه. والتعبير المُنفَّذ هو ما يُقيَّم على المستند، أما التعبير المذكور في التقرير فهو ما يظهر عند الإخفاق، وهما لا يتطابقان دائماً.
التعبير المُنفَّذ
not( ( ( (string-length(@name) = 7 and (substring(@name,1,2) = '01' or substring(@name,1,2) = '02') and (substring(@name,3,1) = '0' or substring(@name,3,1) = '1') and (substring(@name,4,1) = '0' or substring(@name,4,1) = '1') and (substring(@name,5,1) = '0' or substring(@name,5,1) = '1') and (substring(@name,6,1) = '0' or substring(@name,6,1) = '1') and (substring(@name,7,1) = '0' or substring(@name,7,1) = '1') ) or (string-length(@name) = 9 and (substring(@name,1,2) = '01' or substring(@name,1,2) = '02') and (substring(@name,3,1) = '0' or substring(@name,3,1) = '1') and (substring(@name,4,1) = '0' or substring(@name,4,1) = '1') and (substring(@name,5,1) = '0' or substring(@name,5,1) = '1') and (substring(@name,6,1) = '0' or substring(@name,6,1) = '1') and (substring(@name,7,1) = '0' or substring(@name,7,1) = '1') and (substring(@name,8,1) = '0' or substring(@name,8,1) = '1') and (substring(@name,9,1) = '0' or substring(@name,9,1) = '1') ) or (string-length(@name) = 8 and (substring(@name,1,2) = '01' or substring(@name,1,2) = '02') and (substring(@name,3,1) = '0' or substring(@name,3,1) = '1') and (substring(@name,4,1) = '0' or substring(@name,4,1) = '1') and (substring(@name,5,1) = '0' or substring(@name,5,1) = '1') and (substring(@name,6,1) = '0' or substring(@name,6,1) = '1') and (substring(@name,7,1) = '0' or substring(@name,7,1) = '1') and (substring(@name,8,1) = '0' or substring(@name,8,1) = '1') ) ) ) )
التعبير المذكور في التقرير
((string-length(@name))= 7) and ((substring(@name,1,2) = '01') or (substring(@name,1,2) = '02')) and ((substring(@name,3,1) = '0') or (substring(@name,3,1) = '1')) and ((substring(@name,4,1) = '0') or (substring(@name,4,1) = '1')) and ((substring(@name,5,1) = '0') or (substring(@name,5,1) = '1')) and ((substring(@name,6,1) = '0') or (substring(@name,6,1) = '1')) and ((substring(@name,7,1) = '0') or (substring(@name,7,1) = '1'))
- العناصر التي يُقيَّم عليها
cbc:InvoiceTypeCode- المصدر
vendor/zatca/schematron/20210819_ZATCA_E-invoice_Validation_Rules.xsl:905كما يرد في الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة: النسخة المقتبسة هنا هي الملف الذي يتضمنه ذلك الإصدار بايتاً ببايت. والتاريخ في اسم الملف هو الاسم الذي تعطيه الهيئة للملف، أما القواعد فيه فهي قواعد الإصدار 3.4.8.