Create a document
Build a valid Standard Business Document (SBD), the wrapper you need for every invoice you send to Sovos.
The SBD carries the routing metadata and invoice payload that Sovos needs to process and deliver the document. The SBD has two parts:
- Standard Business Document Header (SBDH)
- Holds the routing metadata.
- Sovos Canonical Invoice
- Carries your invoice data in Universal Business Language (UBL) 2.1 format.
Sovos validates and transforms the Sovos Canonical Invoice into PINT-AE XML, then sends it to the PEPPOL Access Point.
UAE-specific SBDH fields - SCI format
Use this table when submitting invoices in SCI format.
| Section | XML XPath element | Field name | M/C/O | Data type | Rule | Notes |
|---|---|---|---|---|---|---|
| Header | sbd:HeaderVersion | Header version | Required | Text | Fixed: 1.0 | Always 1.0. Don't change. |
| Sender | sbd:Sender/sbd:Identifier | Sender identifier | Required | Text (15) | If ProfileID=selfbilling, use the customer Tax Registration Number (TRN). Otherwise, use the supplier's TRN. | Must match the corporate TRN of the issuing party. |
sbd:Sender/sbd:Identifier/@Authority | Sender authority | Required | Code | Fixed: AE | Country of the issuing party. | |
| Receiver | sbd:Receiver/sbd:Identifier | Receiver identifier | Required | Text | If ProfileID=selfbilling, use the supplier TRN. Otherwise, use the customer's TRN. | Corporate TRN of the receiving party. |
sbd:Receiver/sbd:Identifier/@Authority | Receiver authority | Required | Code | Fixed: AE | Country of the receiving party. | |
| Document identification | sbd:DocumentIdentification/sbd:Standard | Document standard | Required | URI | urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 | - |
sbd:DocumentIdentification/sbd:TypeVersion | Type version | Required | Text | Fixed: 2.1 | Always use 2.1 for UAE PINT. | |
sbd:DocumentIdentification/sbd:Type | Document type | Required | Code | Fixed: Invoice | - | |
sbd:DocumentIdentification/sbd:MultipleType | Multiple type flag | Required | Boolean | Fixed: false | Always use false for invoice and credit note submissions. | |
sbd:DocumentIdentification/sbd:CreationDateAndTime | Creation date and time | Required | DateTime | YYYY-MM-DDTHH:MM:SSZ (UTC ISO 8601) | UTC timestamp of when the SBD envelope was created. | |
| BusinessScope - Core routing | Scope[Type='Country']/Identifier | Country | Required | Code | Fixed: AE | Country code of the issuer. |
Scope[Type='CompanyCode']/Identifier | Company code | Required | Text | If ProfileID=selfbilling, use the customer TRN. Otherwise, use the supplier TRN. | Sender's TRN. | |
Scope[Type='SenderDocumentId']/Identifier | Sender document ID | Required | Text ≤35 | The UUID of the document. | UUID format: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[4-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$. | |
Scope[Type='SenderSystemId']/Identifier | Sender system ID | Required | Text | Enterprise Resource Planning (ERP) system name or identifier. Default: DefaultSystemERP | Identifies an originating ERP system such as D365FO, SAP, or Oracle. | |
Scope[Type='ProcessType']/Identifier | Process type | Required | Code | Fixed: Outbound | Outbound means the invoice is sent from the ERP to Sovos. | |
Scope[Type='BusinessCategory']/Identifier | Business category | Required | Code | Fixed: B2B | - | |
Scope[Type='BusinessProcess']/BusinessService/BusinessServiceName | Business service name | Required | Code | Fixed: Default | Turns on the full end-to-end Sovos pipeline. | |
Scope[Type='Version']/Identifier | Version | Required | Text | Fixed: 1.0 | - | |
Scope[Type='SubSchema']/Identifier | Sub-schema | Required | Text | Blank always | Leave blank for standard processing. Only set this value if Sovos instructs you to do so. | |
| BusinessScope - Mapping scopes | Scope[Type='Mapping.TransformDocument']/Identifier | Transform document | Required | Code | Invoice: SCI-TO-LEGAL_INVOICE. Credit note: SCI-TO-LEGAL_CREDIT_NOTE. | - |
Scope[Type='Mapping.OutputSchema']/Identifier | Output schema | Required | Code | Fixed: pint | - |
UAE-specific SBDH fields - PINT-AE format
Use this table when submitting invoices in the PINT-AE (UAE PEPPOL UBL) format.
| Section | XML XPath element | Field name | M/C/O | Data type | Rule | Notes |
|---|---|---|---|---|---|---|
| Header | sbd:HeaderVersion | Header version | Required | Text | Fixed: 1.0 | Always 1.0. Don't change. |
| Sender | sbd:Sender/sbd:Identifier | Sender identifier | Required | Text (15) | If ProfileID=selfbilling, use the customer TRN. Otherwise, use the supplier TRN. | Must match the corporate TRN of the issuing party. |
sbd:Sender/sbd:Identifier/@Authority | Sender authority | Required | Code | Fixed: AE | Country of the issuing party. | |
| Receiver | sbd:Receiver/sbd:Identifier | Receiver identifier | Required | Text | If ProfileID=selfbilling, use the supplier TRN. Otherwise, use the customer TRN. | Corporate TRN of the receiving party. |
sbd:Receiver/sbd:Identifier/@Authority | Receiver authority | Required | Code | Fixed: AE | Country of the receiving party. | |
| Document identification | sbd:DocumentIdentification/sbd:Standard | Document standard | Required | URI | urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 | - |
sbd:DocumentIdentification/sbd:TypeVersion | Type version | Required | Text | Fixed: 2.1 | Always 2.1 for UAE PINT. | |
sbd:DocumentIdentification/sbd:Type | Document type | Required | Code | Fixed: Invoice | - | |
sbd:DocumentIdentification/sbd:MultipleType | Multiple type flag | Required | Boolean | Fixed: false | Always use false for invoice and credit note submissions. | |
sbd:DocumentIdentification/sbd:CreationDateAndTime | Creation date and time | Required | DateTime | YYYY-MM-DDTHH:MM:SSZ (UTC ISO 8601) | UTC timestamp of when the SBD envelope was created. | |
| BusinessScope - Core routing | Scope[Type='Country']/Identifier | Country | Required | Code | Fixed: AE | Country code of the issuer. |
Scope[Type='CompanyCode']/Identifier | Company code | Required | Text | If ProfileID=selfbilling, use the customer TRN. Otherwise, use the supplier TRN. | Sender's TRN. | |
Scope[Type='SenderDocumentId']/Identifier | Sender document ID | Required | Text ≤35 | The UUID of the document. | UUID format: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[4-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$. | |
Scope[Type='SenderSystemId']/Identifier | Sender system ID | Required | Text | ERP system name or identifier. Default: DefaultSystemERP | Identifies the originating ERP system (for example, D365FO, SAP, or Oracle). | |
Scope[Type='ProcessType']/Identifier | Process type | Required | Code | Fixed: Outbound | Outbound means the invoice is sent from the ERP to Sovos. | |
Scope[Type='BusinessCategory']/Identifier | Business category | Required | Code | Fixed: B2B | - | |
Scope[Type='BusinessProcess']/BusinessService/BusinessServiceName | Business service name | Required | Code | Fixed: Default | Turns on the full end-to-end Sovos pipeline. | |
Scope[Type='Version']/Identifier | Version | Required | Text | Fixed: 1.0 | - | |
Scope[Type='SubSchema']/Identifier | Sub-schema | Required | Text | Blank always | Leave blank for standard processing. Only set this value if Sovos instructs you to do so. | |
| Businesscope - Mapping scopes | Scope[Type='Mapping.TransformDocument']/Identifier | Transform document | Required | Code | Invoice: LEGAL-TO-SCI_INVOICE. Credit note: LEGAL-TO-SCI_CREDIT_NOTE. | - |
Scope[Type='Mapping.OutputSchema']/Identifier | Output schema | Required | Code | Fixed: pint | - |
Invoice body
Sovos accepts United Arab Emirates (UAE) invoices and credit notes in the Sovos Canonical Invoice (SCI) format. SCI follows the Universal Business Language (UBL) 2.1 structure. Sovos transforms SCI into the required PINT-AE legal format before passing it to the Pan-European Public Procurement On-Line (PEPPOL) access point.
Standard Business Document Header values
When submitting a UAE invoice or credit note, use these values alongside the standard Standard Business Document Header (SBDH) setup.
Embedding the invoice
How you embed the invoice depends on the format. For SCI format, the invoice XML goes inside <svs:SovosCanonicalInvoice>. For all other formats (UBL, CII, Factur-X), the document is Base64-encoded and placed in <svs:SovosLegalDocument>.
- SCI format
<svs:SovosDocument> <svs:SovosCanonicalInvoice> <Invoice> <!-- Invoice XML here --> </Invoice> </svs:SovosCanonicalInvoice> </svs:SovosDocument>- PINT AE format
<svs:SovosDocument> <svs:SovosLegalDocument> <enc:Base64Document> <enc:EmbeddedDocument mimeCode="application/xml"> [Base64-encoded invoice XML] </enc:EmbeddedDocument> </enc:Base64Document> </svs:SovosLegalDocument> </svs:SovosDocument>
Invoice schema
A UAE SCI invoice opens with namespace declarations on the root <Invoice> element, followed by header fields, party blocks, tax totals, monetary totals, and one or more invoice lines. For the full list of namespace declarations, see Troubleshoot issues.
The cbc: prefix marks simple values (text, dates, codes, and amounts). The cac: prefix marks structured blocks (parties, addresses, and line items). Both are defined by the namespace declarations and are required for the document to be valid.
<?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:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0#conformant#urn:fdc:ae.gov.mof:2025:pint-ae:billing:1.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>INV-2026-001</cbc:ID>
<cbc:IssueDate>2026-05-01</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>AED</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>...</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>...</cac:AccountingCustomerParty>
<cac:TaxTotal>...</cac:TaxTotal>
<cac:LegalMonetaryTotal>...</cac:LegalMonetaryTotal>
<cac:InvoiceLine>...</cac:InvoiceLine>
</Invoice>Header fields
| SCI / UBL path | Element | Cardinality | Description |
|---|---|---|---|
Invoice/CustomizationID | <cbc:CustomizationID> | 1..1 | Required PINT-AE specification identifier. See the UAE-specific fields section. |
Invoice/ProfileID | <cbc:ProfileID> | 1..1 | PEPPOL billing process identifier. See the UAE-specific fields section. |
Invoice/ID | <cbc:ID> | 1..1 | Invoice number. Must be sequential and unique within your system. |
Invoice/IssueDate | <cbc:IssueDate> | 1..1 | Invoice date. Format: YYYY-MM-DD. |
Invoice/InvoiceTypeCode | <cbc:InvoiceTypeCode> | 1..1 | Document type. 380 for invoices, 381 for credit notes. |
Invoice/DocumentCurrencyCode | <cbc:DocumentCurrencyCode> | 1..1 | Invoice currency. ISO 4217, for example AED. Any currency is permitted, but AED tax totals are always required at both header and line level regardless of invoice currency. |
Invoice/TaxCurrencyCode | <cbc:TaxCurrencyCode> | 0..1 | VAT accounting currency. Set to AED when the invoice currency is not AED. Triggers inclusion of a second <cac:TaxTotal> block in AED. See the Tax total section. |
Invoice/TaxPointDate | <cbc:TaxPointDate> | 0..1 | Date VAT becomes chargeable, if different from the invoice date. |
Invoice/DueDate | <cbc:DueDate> | 0..1 | Payment due date. |
Invoice/Note | <cbc:Note> | 0..n | Free-text note. |
Invoice/BuyerReference | <cbc:BuyerReference> | 0..1 | Buyer's internal routing reference. |
Validation
- CustomizationID
- Must be set to the full PINT-AE URN. Missing or incorrect values return a 422 validation error.
- ID (invoice number)
- Must be sequential and unique within your system. Sovosdoesn't assign invoice numbers.
- InvoiceTypeCode
- Must be
380or381. - DocumentCurrencyCode
- Any ISO 4217 currency is permitted, but all tax amounts must also be expressed in AED.
Seller block
<cac:AccountingSupplierParty>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="0235">[Your_TIN]</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="TIN">[Your_TIN]</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>[Supplier name]</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>[Street]</cbc:StreetName>
<cbc:CityName>[City]</cbc:CityName>
<cac:Country>
<cbc:IdentificationCode>AE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>[Your_TRN]</cbc:CompanyID> <!-- 15-character TRN for VAT-registered suppliers -->
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>[Supplier legal name]</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>| Seller fields | Element | Cardinality | Description |
|---|---|---|---|
AccountingSupplierParty/Party/EndpointID | <cbc:EndpointID schemeID="0235"> | 1..1 | Your PEPPOL Participant ID. Set schemeID="0235" and use your 10-digit TIN as the value. |
AccountingSupplierParty/Party/PartyTaxScheme/CompanyID | <cbc:CompanyID> | 0..1 | Your 15-character Tax Registration Number (TRN). Required for VAT-registered suppliers. In a VAT group, each entity uses its own TRN. |
AccountingSupplierParty/Party/PostalAddress/Country/IdentificationCode | <cbc:IdentificationCode> | 1..1 | ISO 3166-1 alpha-2 country code. Use AE for UAE-based suppliers. |
Buyer block
<cac:AccountingCustomerParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="0235">[Buyer_TIN]</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID schemeID="TIN">[Buyer_TIN]</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>[Buyer name]</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>[Street]</cbc:StreetName>
<cbc:CityName>[City]</cbc:CityName>
<cac:Country>
<cbc:IdentificationCode>AE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>[Buyer_TRN]</cbc:CompanyID> <!-- 15-character TRN for VAT-registered buyers -->
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>[Buyer legal name]</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>| Buyer fields | Element | Cardinality | Description |
|---|---|---|---|
AccountingCustomerParty/Party/EndpointID | <cbc:EndpointID schemeID="0235"> | 1..1 | Buyer's PEPPOL Participant ID. Set schemeID="0235" and use the buyer's 10-digit TIN. Required for routing. Sovos uses this to look up the buyer's Access Service Provider (ASP) in the PEPPOL network. |
AccountingCustomerParty/Party/PartyTaxScheme/CompanyID | <cbc:CompanyID> | 0..1 | Buyer's 15-character TRN. Required for reverse charge (use case 2) and other scenarios where the buyer is VAT-registered. |
AccountingCustomerParty/Party/PostalAddress/Country/IdentificationCode | <cbc:IdentificationCode> | 1..1 | ISO 3166-1 alpha-2 country code of the buyer. Use the buyer's non-UAE country code for zero-rated exports (use case 10). |
Tax total
<cac:TaxTotal>
All UAE invoices must include tax amounts in AED at both header and line level, regardless of the invoice currency. When the invoice currency is not AED, include two <cac:TaxTotal> blocks: One in the invoice currency, one in AED.
<!-- Tax total in invoice currency (always required) -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="[InvoiceCurrency]">[TaxAmount]</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="[InvoiceCurrency]">[TaxableAmount]</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="[InvoiceCurrency]">[TaxAmount]</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>
<!-- AED tax total (required when invoice currency is not AED) -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="AED">[AED_TaxAmount]</cbc:TaxAmount>
</cac:TaxTotal>Validation
- TaxTotal.TaxAmount in AED
Required at header level for all invoices. Calculate the AED equivalent using the applicable exchange rate.
- Line-level AED tax amounts
Required on each invoice line. A validation error on
TaxTotalor a line-level tax field is often caused by missing AED-equivalent amounts on a foreign-currency invoice.- TaxCategory/ID
Use the UAE VAT category codes from Technical reference:
S(5% standard),Z(zero-rated),E(exempt),AE(reverse charge), andO(out of scope).
UAE-specific fields
These elements use standard UBL structure but carry UAE-specific values that the PINT-AE mandate sets.
- CustomizationID
Required PINT-AE specification identifier. Set to the full Unified Number Inquiry (URN on every UAE invoice:
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0#conformant#urn:fdc:ae.gov.mof:2025:pint-ae:billing:1.0</cbc:CustomizationID>A missing or incorrect
CustomizationIDreturns a422validation error.- ProfileID
PEPPOL billing process identifier. Always set it to
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>.:- UUID
- Every UAE invoice needs a UUID. A UUID is a string of letters and numbers that gives each invoice a unique identity across all systems. Generate a new UUID for each submission. Resubmissions after a negative Message Level Status (MLS) require a new UUID.
- Transaction type flags
Every UAE invoice must include an Invoice Transaction Type Code in the
SovosExtensionblock. This tells the Federal Tax Authority (FTA) what kind of transaction the invoice represents. Validators reject invoices that omit or misconfigure this field.Set each applicable flag to
truewhen:Flag Scenario FreeTradeZoneSupplyEither party is in a UAE Free Trade Zone. MarginSchemeThe transaction uses the VAT margin scheme. DeemedSupplyThe supply is a deemed supply. SummaryInvoiceThe seller makes more than one supply to the same buyer in the same calendar month. ContinuousSupplyThe supply of goods or services is made on a recurring basis. AgentBillingA registered agent makes the supply on behalf of a principal. ECommerceSupplyThe supply of goods or services is made through e-commerce. ExportsThe supply of goods or services is made outside the UAE. - Credit notes
Set
InvoiceTypeCodeto381.Include the original invoice number in
BillingReference.Include an appropriate reason code following the PEPPOL framework.
A corrected invoice to replace the original must be submitted as a separate transaction after Sovos confirms the credit note.
