النص الرسمي
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).
متى يطلع
- نوع المرفق (mimeCode) مكتوب غير text/plain.
- الحقل موجود والقيمة فاضية.
- النظام حسب التجزئة على الملف كامل بدل ما يحذف الأجزاء اللي يطلب المعيار حذفها.
الحل
- اكتب mimeCode="text/plain".
- خزّن تجزئة آخر فاتورة نجحت، واستخدمها في الفاتورة اللي بعدها مباشرة.
- احسب التجزئة بالطريقة الموصوفة في نص القاعدة: احذف UBLExtensions ومرجع QR وSignature، ثم C14N11، ثم SHA-256، ثم Base64.
مثال
<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-61 تجزئة الفاتورة السابقة (PIH) ناقصة
- BR-KSA-33 عدّاد الفاتورة (ICV) ناقص
- BR-KSA-24 A VAT breakdown (BG-23) with VAT Category code (BT-118) 'Not subject to VAT' shall have a VAT exception reason code (BT-121)
مصطلحات في هذا الكود
أسئلة شائعة
ماذا يعني الكود 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، لكل فرع ولمدة سنة. التسجيل مجاني وبدون أي التزام.