Schemas & specifications
UBL, CII, EN 16931, PINT — disentangled.
Twenty schemas you will meet in the field. What they are. Where to fetch the official spec. Which countries enforce them.
UBL 2.1
Base schema · OASIS
OASIS UBL 2.1
The XML root underneath Peppol BIS, ZATCA UBL, MyInvois, PINT — countries layer their own profile on top.
Used by: belgium, malaysia, saudi-arabia, uae, singapore +6
UN/CEFACT Cross Industry Invoice (CII) D16B
Base schema · UN/CEFACT
UN/CEFACT CII D16B
The non-UBL alternative for invoice XML. Lives mainly inside Factur-X PDFs and ZUGFeRD.
Used by: france, germany, romania
EN 16931 / EN 16931-1:2026
Semantic core invoice · CEN
EN 16931 (semantic) ⇢ UBL 2.1 / CII
Defines the European invoice meaning — not the syntax. UBL and CII are both valid carriers.
Used by: belgium, germany, france, spain, italy +3
Peppol BIS Billing 3.0
Delivery profile · OpenPeppol
EN 16931 ⇢ Peppol BIS Billing 3.0
The transport-aware profile of EN 16931 used on Peppol's 4-corner network.
Used by: belgium, australia, singapore, japan, uae +2
PINT-AE
Country profile (Peppol International) · UAE FTA / OpenPeppol
UBL 2.1 ⇢ PINT ⇢ PINT-AE
UAE country profile. Adds TRN, free-zone IDs, FTA's mandatory 51-field set.
Used by: uae
PINT-SG
Country profile (Peppol International) · IMDA / IRAS
UBL 2.1 ⇢ PINT ⇢ PINT-SG
Singapore profile. IMDA InvoiceNow extends PINT with SG-specific identifiers.
Used by: singapore
JP PINT
Country profile (Peppol International) · Japan Digital Agency
UBL 2.1 ⇢ PINT ⇢ JP PINT
Japan's NTA-aligned profile. Aligns Peppol to the Qualified Invoice System.
Used by: japan
MY PINT
Country profile (Peppol International) · Malaysia
UBL 2.1 ⇢ PINT ⇢ MY PINT
Malaysia PINT (in addition to MyInvois JSON). Used for cross-border Peppol exchange.
Used by: malaysia
ZATCA UBL 2.1 (KSA)
Country extension of UBL 2.1 · ZATCA
UBL 2.1 ⇢ ZATCA UBL KSA
Saudi Arabia clearance schema. XAdES signed, embeds a QR with hash + signature.
Used by: saudi-arabia
KSeF FA(3)
National XML schema · Polish Ministry of Finance
Custom XSD ⇢ KSeF FA(3)
Poland's KSeF schema. Native XSD, not Peppol or UBL.
Used by: poland
MyInvois v1.0
National XML / JSON · LHDN Malaysia
MyInvois JSON v1.0
Malaysia's primary clearance schema. JSON over LHDN API; Peppol PINT-MY runs in parallel for cross-border.
Used by: malaysia
FatturaPA v1.9
National XML schema · Agenzia delle Entrate
Custom XSD ⇢ FatturaPA v1.9
Italy SdI's native schema. Pre-dates UBL adoption; XML but not UBL-based.
Used by: italy
CFDI 4.0
National XML schema · SAT (Mexico)
Custom XSD ⇢ CFDI 4.0
Mexico's SAT schema. XML, but its own namespace and signing model (CSD + SAT seal).
Used by: mexico
NF-e v4.00
National XML schema · SEFAZ (Brazilian states)
Custom XSD ⇢ NF-e v4.00
Brazil's state-level invoicing schema. SEFAZ per-state issuance; XML signed with ICP-Brasil.
Used by: brazil
XRechnung 4.0
CIUS of EN 16931 · KoSIT (Germany)
EN 16931 ⇢ XRechnung 4.0 (CIUS)
Germany's CIUS of EN 16931. Mandatory for B2G; the path to the 2027 B2B mandate.
Used by: germany
ZUGFeRD 2.3 / Factur-X 1.07
Hybrid PDF/A-3 + CII · FNFE-MPE / FeRD
EN 16931 ⇢ ZUGFeRD 2.3 / Factur-X 1.07
Hybrid PDF + embedded CII XML. Carries the structured invoice inside a human-readable PDF.
Used by: germany, france
Facturae 3.2.x
National XML schema · AEAT (Spain)
Custom XSD ⇢ Facturae 3.2
Spain's native B2G schema. Pre-EN 16931; the AEAT B2B mandate adds a separate route.
Used by: spain
NIC IRP Schema v1.1
National JSON schema · GSTN / NIC (India)
Custom JSON ⇢ NIC IRP v1.1
India GST e-invoice schema. JSON over IRP APIs; returns IRN + QR.
Used by: india
RO_CIUS
CIUS of EN 16931 · ANAF (Romania)
EN 16931 ⇢ RO_CIUS
Romania's CIUS. Required for e-Factura submissions to ANAF.
Used by: romania
PINT A-NZ
Country profile (Peppol International) · ATO / IRD
UBL 2.1 ⇢ PINT ⇢ PINT A-NZ
Joint Australia/New Zealand profile. Common code lists for ATO and IRD.
Used by: australia