Skip to content
GitHub

Saudi ZATCA e-invoice (UBL, KSA profile)

  • Format id: zatca-ubl
  • Countries: Saudi Arabia (SA)
  • Status: in active use
  • Parser: ubl family, converts to canonical JSON

FATOORA phase 2: standard (B2B/B2G, cleared) and simplified (B2C, reported) tax invoices, signed with XAdES in UBLExtensions. Detected by ProfileID reporting:1.0 (or clearance:1.0).

  • Identifier ProfileID reporting:1.0: See below

See Beyond the EU for ZATCA and the validation limits of PINT.

  • Phase 1. Covers: Peppol BIS 3 + self-billing, XRechnung UBL, NLCIUS, CIUS-RO, CIUS-PT, HR-CIUS, OIOUBL 3, UBL.BE, PINT, BIS 2 (best-effort), OIOUBL 2. One parser, profile-specific rules on top. Invoice vs CreditNote element names differ (InvoicedQuantity/CreditedQuantity). UBL 2.1 CreditNote has no root cbc:DueDate: read cac:PaymentMeans/cbc:PaymentDueDate, and accept a root cbc:DueDate only as a fallback with a warning (it appears in some XRechnung test files).

The same parser family handles the formats listed in Build order and mapping notes.