BR-KSA-26: تجزئة الفاتورة السابقة (PIH) بصيغة غير صحيحة

تحذير: الفاتورة تنقبل مع ملاحظة، والأفضل تصلح السبب في الفواتير الجاية.

النص الرسمي

If the invoice contains the previous invoice hash (KSA-13), this hash must be base64 encoded SHA256. The hash shall be computed using the following method as described in the ds:transforms block in the XML Invoice Specifications: 1. Remove the <Invoice><ext:UBLExtensions/> block 2. Remove the <Invoice><cac:AdditionalDocumentReference/> block where <cbc:ID/> = QR 3. Remove the <Invoice><cac:Signature/> block 4. Canonicalize the Invoice using the C14N11 standard 5. Hash the resulting string using SHA256 to a binary object 6. Base64 encode the binary object to generate the digest value For the first invoice, the previous invoice hash is "NWZlY2ViNjZmZmM4NmYzOGQ5NTI3ODZjNmQ2OTZjNzljMmRiYzIzOWRkNGU5MWI0NjcyOWQ3M2EyN2ZiNTdlOQ==", the equivalent for base64 encoded SHA256 of "0" (zero) character.

تحذير · المصدر: أداة الهيئة للتحقق من الفواتير (SDK)، الإصدار 238-R3.3.8 · معيار تطبيق XML للفاتورة الإلكترونية، الإصدار 1.2، 19 مايو 2023، §13.3.1، ص 53 · تاريخ التحقق: 26 أكتوبر 2026

المعنى

كل فاتورة تحمل تجزئة SHA-256 للفاتورة اللي قبلها، مرمّزة بـ Base64، ونوعها text/plain. أول فاتورة تحمل قيمة ثابتة نشرتها الهيئة (تجزئة الرقم 0).

متى يطلع

الحل

  1. اكتب mimeCode="text/plain".
  2. خزّن تجزئة آخر فاتورة نجحت، واستخدمها في الفاتورة اللي بعدها مباشرة.
  3. احسب التجزئة بالطريقة الموصوفة في نص القاعدة: احذف UBLExtensions ومرجع QR وSignature، ثم C14N11، ثم SHA-256، ثم Base64.

مثال

خطأ: يطلع معه BR-KSA-26
<cac:AdditionalDocumentReference>
  <cbc:ID>PIH</cbc:ID>
  <cac:Attachment>
    <cbc:EmbeddedDocumentBinaryObject mimeCode="application/octet-stream">NWZlY2Vi…</cbc:EmbeddedDocumentBinaryObject>
  </cac:Attachment>
</cac:AdditionalDocumentReference>
صحيح
<cac:AdditionalDocumentReference>
  <cbc:ID>PIH</cbc:ID>
  <cac:Attachment>
    <cbc:EmbeddedDocumentBinaryObject mimeCode="text/plain">NWZlY2Vi…</cbc:EmbeddedDocumentBinaryObject>
  </cac:Attachment>
</cac:AdditionalDocumentReference>

شغّلنا المثال الخاطئ على أداة الهيئة SDK 238-R3.3.8 بتاريخ 26 أكتوبر 2026 وطلع الكود BR-KSA-26، وطلع معه: BR-KSA-61، BR-KSA-CL-03. المثال مقطع من عينة الهيئة Simplified/Invoice/Simplified_Invoice.xml مع تغيير واحد، والعينة نفسها بدون التغيير ما يطلع فيها الكود.

أكواد قريبة

مصطلحات في هذا الكود

أسئلة شائعة

ماذا يعني الكود BR-KSA-26؟

كل فاتورة تحمل تجزئة SHA-256 للفاتورة اللي قبلها، مرمّزة بـ Base64، ونوعها text/plain. أول فاتورة تحمل قيمة ثابتة نشرتها الهيئة (تجزئة الرقم 0).

هل ترفض المنصة الفاتورة إذا ظهر BR-KSA-26؟

تحذير: الفاتورة تنقبل مع ملاحظة، والأفضل تصلح السبب في الفواتير الجاية. هذه درجته في أداة الهيئة SDK 238-R3.3.8.

كيف أصلح الكود BR-KSA-26؟

1. اكتب mimeCode="text/plain". 2. خزّن تجزئة آخر فاتورة نجحت، واستخدمها في الفاتورة اللي بعدها مباشرة. 3. احسب التجزئة بالطريقة الموصوفة في نص القاعدة: احذف UBLExtensions ومرجع QR وSignature، ثم C14N11، ثم SHA-256، ثم Base64.

آخر تحديث: 26 أكتوبر 2026 · ما لا نفعله · المنهجية · صحّح لنا · سجل التحديثات

نُشر أول مرة 2026-10-26 · نسخة مؤرشفة

أول 500 منشأة من المطاعم والكافيهات والمخابز والحلويات: حدها الشهري 99 ريال.

بدل 149، لكل فرع ولمدة سنة. التسجيل مجاني وبدون أي التزام.

احجز مقعدك