BR-KSA-CL-03أحد المرفقات لا يعلن نوع محتواه

يفحص مطابق ملف XML للفاتورة الإلكترونية في المرحلة الثانية قبل إرساله: تحقق مسبق وفق متطلبات هيئة الزكاة والضريبة والجمارك المنشورة، لا اعتماداً من الهيئة. وتشرح هذه الصفحة قاعدة واحدة هي BR-KSA-CL-03.

افحص 5 فواتير مجاناً

خمس عمليات فحص شهرياً في باقة المجان. يُفحص الملف في الذاكرة ولا يُحفظ.

الرسالة كما تنشرها هيئة الزكاة والضريبة والجمارك

[BR-KSA-CL-03]-Mime code must be according to subset of IANA code list.

ما الذي يذكره مطابق

مدخل لكل حالة تُذكر فيها هذه القاعدة في التقرير.

صورة القيمة في التقرير
صورة القيمة التي وُجدت — empty وnot_15_digits وما شابههما — لا القيمة نفسها.

أحد المرفقات لا يعلن نوع محتواه

صورة القيمة في التقريرmime_code_missingلا نوع محتوى معلَن

ما الخلل

إحدى حمولات المرفقات في هذا المستند لا تحمل السمة mimeCode، أو تحملها بقيمة خالية أو مسافات لا غير. وترفض هيئة الزكاة والضريبة والجمارك المستند بموجب القاعدة BR-KSA-CL-03. ويحسن قول هذا صراحةً لأن المخطط لا يلتقطه لك: فالسمة mimeCode اختيارية في معيار UBL، فالمستند الخالي منها صحيح تماماً بحسب المخطط ويُرفض بموجب هذا الشرط وحده. تشترط القاعدة BR-KSA-CL-03 أن تُعلن كل حمولة مرفق في المستند، أي كل عنصر cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject، نوع محتواها في السمة mimeCode، وأن تكون القيمة واحدة من قائمة الهيئة المختصرة من قائمة IANA، وهي: text/csv وtext/plain وapplication/pdf وimage/png وimage/jpeg وimage/tiff وapplication/acad وapplication/dwg وdrawing/dwg وapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet وapplication/vnd.oasis.opendocument.spreadsheet. وتُقارن القيمة بعد تسوية المسافات المحيطة، وحرفياً فيما عدا ذلك مع مراعاة حالة الأحرف، فالقيمة TEXT/PLAIN ليست text/plain. وأمران عن موضع ظهور هذه الملاحظة: أولهما أنها تفحص كل كتلة من هذا النوع في أي موضع من المستند، بما في ذلك كتلة متداخلة داخل مرجع فوترة إشعار دائن، وتتوقف عند أول كتلة تخفق، فقد تكون غيرها مصابة كذلك. وثانيهما أن الفاتورة المعدّة وفق متطلبات الهيئة تحمل كتلتين من هذا النوع على الأقل ليستا مرفقين بالمعنى المعتاد، وهما بصمة الفاتورة السابقة PIH ورمز الاستجابة السريعة، وكلتاهما يجب أن تُعلن بالنوع text/plain؛ فهذه الملاحظة تشير إلى إحداهما أضعاف ما تشير إلى ملف أرفقه المستخدم.

ما الذي تتحقق منه في وحدة الفوترة الإلكترونية

ابدأ بكتلتي بصمة الفاتورة السابقة PIH ورمز الاستجابة السريعة لا بمرفقات المستخدم: فكلتاهما يجب أن تحمل السمة mimeCode بالقيمة text/plain، والقالب الذي يكتب العنصر دون السمة أشيع أسباب هذه الملاحظة. أما المرفقات الحقيقية فسببها المعتاد مخزن مستندات يحفظ محتوى الملف واسمه ولا يحفظ نوع محتواه، فلا يجد التصدير ما يكتبه؛ واشتقاق القيمة من امتداد الملف عند التصدير معالجة مقبولة ما دامت تُربط بقيم الهيئة الإحدى عشرة ولا تُمرَّر خاماً.

نوع محتوى أحد المرفقات ليس مما تقبله الهيئة

صورة القيمة في التقريرnot_in_iana_subsetنوع محتوى لا تقبله الهيئة

ما الخلل

إحدى حمولات المرفقات في هذا المستند تعلن في السمة mimeCode قيمةً ليست في قائمة هيئة الزكاة والضريبة والجمارك، فترفض المستند بموجب القاعدة BR-KSA-CL-03. والقيمة التي تحمل مسافة في داخلها تخفق كذلك، للسبب نفسه: إذ ليس في أعضاء القائمة عضو يحمل مسافة. تشترط القاعدة BR-KSA-CL-03 أن تُعلن كل حمولة مرفق في المستند، أي كل عنصر cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject، نوع محتواها في السمة mimeCode، وأن تكون القيمة واحدة من قائمة الهيئة المختصرة من قائمة IANA، وهي: text/csv وtext/plain وapplication/pdf وimage/png وimage/jpeg وimage/tiff وapplication/acad وapplication/dwg وdrawing/dwg وapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet وapplication/vnd.oasis.opendocument.spreadsheet. وتُقارن القيمة بعد تسوية المسافات المحيطة، وحرفياً فيما عدا ذلك مع مراعاة حالة الأحرف، فالقيمة TEXT/PLAIN ليست text/plain. وأمران عن موضع ظهور هذه الملاحظة: أولهما أنها تفحص كل كتلة من هذا النوع في أي موضع من المستند، بما في ذلك كتلة متداخلة داخل مرجع فوترة إشعار دائن، وتتوقف عند أول كتلة تخفق، فقد تكون غيرها مصابة كذلك. وثانيهما أن الفاتورة المعدّة وفق متطلبات الهيئة تحمل كتلتين من هذا النوع على الأقل ليستا مرفقين بالمعنى المعتاد، وهما بصمة الفاتورة السابقة PIH ورمز الاستجابة السريعة، وكلتاهما يجب أن تُعلن بالنوع text/plain؛ فهذه الملاحظة تشير إلى إحداهما أضعاف ما تشير إلى ملف أرفقه المستخدم.

ما الذي تتحقق منه في وحدة الفوترة الإلكترونية

افحص كتلتي بصمة الفاتورة السابقة PIH ورمز الاستجابة السريعة أولاً: فكلتاهما يجب أن تكون text/plain، وتظهر فيهما قيم مثل application/octet-stream وbase64Binary وtext/xml وapplication/xml حين يُكتب القالب قياساً على ترميز base64 للحمولة لا رجوعاً إلى المعيار. أما المرفقات الحقيقية فأسبابها الشائعة: نوع محتوى يُقرأ من نظام التشغيل أو من ترويسة الرفع ويُمرَّر كما هو؛ والقيمة image/jpg بينما النوع المسجَّل image/jpeg؛ ونوع تُلحق به وسائط مثل text/plain متبوعاً بترميز المحارف؛ وقيمة رفعتها خطوة تنسيق إلى الأحرف الكبيرة. اربط القيم صراحةً بالقيم الإحدى عشرة المقبولة، وارفض المرفق في نظامك إن كان نوعه خارجها، فالهيئة سترفض الفاتورة كلها من أجله.

الفحص الذي يُنفَّذ

منقول حرفياً من ملفات قواعد التحقق التي تنشرها الهيئة، عند الملف والسطر المذكورين أدناه. والتعبير المُنفَّذ هو ما يُقيَّم على المستند، أما التعبير المذكور في التقرير فهو ما يظهر عند الإخفاق، وهما لا يتطابقان دائماً.

التعبير المُنفَّذ

not(((not(contains(normalize-space(@mimeCode), ' ')) and contains(' text/csv text/plain application/pdf image/png image/jpeg image/tiff application/acad application/dwg drawing/dwg application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.oasis.opendocument.spreadsheet ', concat(' ', normalize-space(@mimeCode), ' ')))))

التعبير المذكور في التقرير

((not(contains(normalize-space(@mimeCode), ' ')) and contains(' text/csv text/plain application/pdf image/png image/jpeg image/tiff application/acad application/dwg drawing/dwg application/vnd.openxmlformats-officedocument.spreadsheetml.sheet application/vnd.oasis.opendocument.spreadsheet ', concat(' ', normalize-space(@mimeCode), ' '))))
العناصر التي يُقيَّم عليها
cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject
المصدر
vendor/zatca/schematron/20210819_ZATCA_E-invoice_Validation_Rules.xsl:2504

كما يرد في الإصدار 3.4.8 من حزمة أدوات التطوير SDK التي تنشرها الهيئة: النسخة المقتبسة هنا هي الملف الذي يتضمنه ذلك الإصدار بايتاً ببايت. والتاريخ في اسم الملف هو الاسم الذي تعطيه الهيئة للملف، أما القواعد فيه فهي قواعد الإصدار 3.4.8.

مثال عملي

مستند اصطناعي من مجموعة الاختبار المقيسة تُرصد عليه هذه القاعدة، تُعرض منه الأسطر التي يختلف فيها عن مستند اجتاز الفحص. ولا يذكر تقرير مطابق سوى صورة القيمة، لا القيمة نفسها.

الأسطر التي يختلف فيها عن مستند اجتاز الفحص

  • هذا المثال
  • مستند اجتاز الفحص
  <cbc:ID>PIH</cbc:ID>  <cac:Attachment>هذا المثال:     <cbc:EmbeddedDocumentBinaryObject mimeCode="application/octet-stream">NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0N… (الطول الكامل: 197)مستند اجتاز الفحص:     <cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain">QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF… (الطول الكامل: 375)  </cac:Attachment></cac:AdditionalDocumentReference>
المستند
bad-42-pih-wrong-mimecode.xml
ما حكم به مطابق
لم يجتز
صورة القيمة في التقرير
not_in_iana_subsetنوع محتوى لا تقبله الهيئة

نزّل هذا المثال (.xml)افحصه في مطابق

مثال هذه الصفحة، يُفحص بالقواعد نفسها التي يمر بها ملفك عند الرفع. بلا رفع وبلا تسجيل دخول.

قواعد تُقيَّم على الموضع نفسه من المستند، وكثيراً ما تُرصد عدة قواعد منها معاً بسبب قيمة واحدة خاطئة.

افحص فاتورة

افحص فاتورتك

© 2026 Hayatiq AI Solutions F.Z.E. جميع الحقوق محفوظة.