Generate PINT AE Invoice XML (UAE 5-corner)
Skill: Convert invoice data into a PINT AE (Peppol) invoice XML
Region: United Arab Emirates
Category: E-Invoicing — DCTCE (5-corner model)
Does: Takes ordinary invoice data and produces a PINT AE UBL Invoice — the UAE Peppol specification exchanged through Accredited Service Providers under the 5-corner (DCTCE) model, with data reported to the Federal Tax Authority.
Standard: PINT AE (Peppol International model, UBL 2.1)
Invoices are exchanged via Accredited Service Providers (corners 2–4) and reported to the FTA (corner 5). The seller's TRN (Tax Registration Number, 15 digits) is required. Validate against the current PINT AE schematron before sending.
Input data required
| Input | Used for |
|---|---|
| Invoice number, issue date, type code | header |
| Seller TRN (15 digits), name, address, emirate | AccountingSupplierParty |
| Buyer TRN (if registered), name, address | AccountingCustomerParty |
Currency (AED) |
DocumentCurrencyCode |
| Line items: name, quantity, net price, VAT category & rate | InvoiceLine |
| VAT breakdown per category (5% standard, 0%, exempt) | TaxTotal |
Namespaces
| Prefix | URI |
|---|---|
| default | urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 |
cac |
urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2 |
cbc |
urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2 |
Identification:
cbc:CustomizationID=urn:peppol:pint:billing-1@ae-1(PINT AE billing)cbc:ProfileID=urn:peppol:bis:billing
Document structure to emit
Invoice
├── cbc:CustomizationID / cbc:ProfileID
├── cbc:ID / cbc:IssueDate / cbc:InvoiceTypeCode (380) / cbc:DocumentCurrencyCode (AED)
├── cac:AccountingSupplierParty (name, address+emirate, TRN)
├── cac:AccountingCustomerParty (TRN if registered)
├── cac:TaxTotal (TaxAmount + TaxSubtotal per category)
├── cac:LegalMonetaryTotal
└── cac:InvoiceLine ...
TRN placement
<cac:PartyTaxScheme>
<cbc:CompanyID>100123456700003</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
VAT category codes
| Code | Meaning | Rate |
|---|---|---|
S |
Standard rate | 5% |
Z |
Zero-rated (e.g. exports, certain supplies) | 0% |
E |
Exempt | — |
O |
Out of scope | — |
Calculation rules
- AED uses 2 decimal places (fils).
- Line net = quantity × net unit price (2 decimals).
- Group lines by VAT category + rate →
TaxSubtotal:TaxableAmount= Σ nets;TaxAmount= taxable × rate. cac:TaxTotal/cbc:TaxAmount= Σ subtotal VAT.TaxInclusiveAmount= exclusive + VAT;PayableAmount= inclusive − prepaid.
Worked example (single 5% line)
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:peppol:pint:billing-1@ae-1</cbc:CustomizationID>
<cbc:ProfileID>urn:peppol:bis:billing</cbc:ProfileID>
<cbc:ID>2024-001</cbc:ID>
<cbc:IssueDate>2024-01-15</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>AED</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty><cac:Party>
<cac:PartyName><cbc:Name>Acme LLC</cbc:Name></cac:PartyName>
<cac:PostalAddress><cbc:StreetName>Sheikh Zayed Rd</cbc:StreetName><cbc:CityName>Dubai</cbc:CityName><cbc:CountrySubentity>Dubai</cbc:CountrySubentity><cac:Country><cbc:IdentificationCode>AE</cbc:IdentificationCode></cac:Country></cac:PostalAddress>
<cac:PartyTaxScheme><cbc:CompanyID>100123456700003</cbc:CompanyID><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:PartyTaxScheme>
</cac:Party></cac:AccountingSupplierParty>
<cac:AccountingCustomerParty><cac:Party>
<cac:PartyName><cbc:Name>Client FZE</cbc:Name></cac:PartyName>
<cac:PostalAddress><cbc:CityName>Abu Dhabi</cbc:CityName><cbc:CountrySubentity>Abu Dhabi</cbc:CountrySubentity><cac:Country><cbc:IdentificationCode>AE</cbc:IdentificationCode></cac:Country></cac:PostalAddress>
<cac:PartyTaxScheme><cbc:CompanyID>100987654300003</cbc:CompanyID><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:PartyTaxScheme>
</cac:Party></cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="AED">500.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="AED">10000.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="AED">500.00</cbc:TaxAmount>
<cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>5</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="AED">10000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="AED">10000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="AED">10500.00</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="AED">10500.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="AED">10000.00</cbc:LineExtensionAmount>
<cac:Item><cbc:Name>Consulting services</cbc:Name>
<cac:ClassifiedTaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>5</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price><cbc:PriceAmount currencyID="AED">10000.00</cbc:PriceAmount></cac:Price>
</cac:InvoiceLine>
</Invoice>
Validation checklist
-
cbc:CustomizationIDset to the current PINT AE billing identifier - Seller TRN (15 digits) present; buyer TRN included where registered
- Currency
AED; amounts to 2 decimals - Each line: quantity (
unitCode), net price, line extension, VAT category + rate -
TaxSubtotalper category reconciles with line nets;TaxTotal/TaxAmount= Σ subtotals -
TaxInclusiveAmount= exclusive + VAT;PayableAmountcorrect - Passes the PINT AE schematron, then routed via an Accredited Service Provider (reported to the FTA)
Last updated: 2026-05-26 — the UAE programme and PINT AE specification are evolving; confirm the customization identifier, mandatory fields, rollout phase, and ASP/FTA reporting flow against the current Ministry of Finance / FTA publication before use.