BR-KSA-70 📑 Invoice Types & Structure error

BR-KSA-70: Invalid Invoice Issue Time Format (KSA-25)

BR-KSA-70: تنسيق وقت إصدار الفاتورة غير صحيح (KSA-25)

Official ZATCA Specification:

The invoice must contain an Invoice issue time (KSA-25). This value must be in format 'hh:mm:ss' for time expressed in AST or 'hh:mm:ssZ' for UTC.

XPath Context: /ubl:Invoice/cbc:IssueTime

📌 Overview & Impact

The invoice must contain Issue Time (KSA-25) in either 'hh:mm:ss' (AST local time) or 'hh:mm:ssZ' (UTC format).

الوصف بالعربية: يجب أن يتضمن وقت إصدار الفاتورة (KSA-25) صيغة 'hh:mm:ss' بالتوقيت المحلي أو 'hh:mm:ssZ' بتوقيت UTC.

⚠️ Common Causes for Rejection

  • Providing timestamp with AM/PM (e.g. '02:30 PM' instead of 24h format '14:30:00')
  • Missing seconds (e.g. '14:30')
  • Omitting <cbc:IssueTime> element

How to Fix & Resolve

1

Format with 24-Hour Clock

Ensure the time string matches regex ^([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](Z)?$.

💻 Code Comparison: Invalid vs Compliant UBL 2.1 XML

❌ Invalid XML (Rejected by ZATCA) Invalid Payload
<cbc:IssueTime>03:45 PM</cbc:IssueTime>
✓ Valid XML (Compliant UBL 2.1) Valid Payload
<cbc:IssueTime>15:45:00</cbc:IssueTime>

Verify Your Invoice XML Online

Use Qeemah's free developer tools to inspect transforms, C14N digests, and Phase 2 QR codes.

Frequently Asked Questions

Does IssueTime in XML need to match the time in QR code?

Yes! The timestamp embedded in the QR code TLV Tag 3 must match the IssueDate + IssueTime in the invoice XML.

Stop Fighting Cryptic ZATCA XML Errors

Qeemah handles Phase 2 e-invoicing, cryptographic signing, and real-time clearance automatically. Integrate in minutes.