How can we help?

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.

SectionXML XPath elementField nameM/C/OData typeRuleNotes
Headersbd:HeaderVersionHeader versionRequiredTextFixed: 1.0Always 1.0. Don't change.
Sendersbd:Sender/sbd:IdentifierSender identifierRequiredText (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/@AuthoritySender authorityRequiredCodeFixed: AECountry of the issuing party.
Receiversbd:Receiver/sbd:IdentifierReceiver identifierRequiredTextIf ProfileID=selfbilling, use the supplier TRN. Otherwise, use the customer's TRN.Corporate TRN of the receiving party.
sbd:Receiver/sbd:Identifier/@AuthorityReceiver authorityRequiredCodeFixed: AECountry of the receiving party.
Document identificationsbd:DocumentIdentification/sbd:StandardDocument standardRequiredURIurn:oasis:names:specification:ubl:schema:xsd:Invoice-2-
sbd:DocumentIdentification/sbd:TypeVersionType versionRequiredTextFixed: 2.1Always use 2.1 for UAE PINT.
sbd:DocumentIdentification/sbd:TypeDocument typeRequiredCodeFixed: Invoice-
sbd:DocumentIdentification/sbd:MultipleTypeMultiple type flagRequiredBooleanFixed: falseAlways use false for invoice and credit note submissions.
sbd:DocumentIdentification/sbd:CreationDateAndTimeCreation date and timeRequiredDateTimeYYYY-MM-DDTHH:MM:SSZ (UTC ISO 8601)UTC timestamp of when the SBD envelope was created.
BusinessScope - Core routingScope[Type='Country']/IdentifierCountryRequiredCodeFixed: AECountry code of the issuer.
Scope[Type='CompanyCode']/IdentifierCompany codeRequiredTextIf ProfileID=selfbilling, use the customer TRN. Otherwise, use the supplier TRN.Sender's TRN.
Scope[Type='SenderDocumentId']/IdentifierSender document IDRequiredText ≤35The 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']/IdentifierSender system IDRequiredTextEnterprise Resource Planning (ERP) system name or identifier. Default: DefaultSystemERPIdentifies an originating ERP system such as D365FO, SAP, or Oracle.
Scope[Type='ProcessType']/IdentifierProcess typeRequiredCodeFixed: OutboundOutbound means the invoice is sent from the ERP to Sovos.
Scope[Type='BusinessCategory']/IdentifierBusiness categoryRequiredCodeFixed: B2B-
Scope[Type='BusinessProcess']/BusinessService/BusinessServiceNameBusiness service nameRequiredCodeFixed: DefaultTurns on the full end-to-end Sovos pipeline.
Scope[Type='Version']/IdentifierVersionRequiredTextFixed: 1.0-
Scope[Type='SubSchema']/IdentifierSub-schemaRequiredTextBlank alwaysLeave blank for standard processing. Only set this value if Sovos instructs you to do so.
BusinessScope - Mapping scopesScope[Type='Mapping.TransformDocument']/IdentifierTransform documentRequiredCodeInvoice: SCI-TO-LEGAL_INVOICE. Credit note: SCI-TO-LEGAL_CREDIT_NOTE.-
Scope[Type='Mapping.OutputSchema']/IdentifierOutput schemaRequiredCodeFixed: pint-

UAE-specific SBDH fields - PINT-AE format

Use this table when submitting invoices in the PINT-AE (UAE PEPPOL UBL) format.

SectionXML XPath elementField nameM/C/OData typeRuleNotes
Headersbd:HeaderVersionHeader versionRequiredTextFixed: 1.0Always 1.0. Don't change.
Sendersbd:Sender/sbd:IdentifierSender identifierRequiredText (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/@AuthoritySender authorityRequiredCodeFixed: AECountry of the issuing party.
Receiversbd:Receiver/sbd:IdentifierReceiver identifierRequiredTextIf ProfileID=selfbilling, use the supplier TRN. Otherwise, use the customer TRN.Corporate TRN of the receiving party.
sbd:Receiver/sbd:Identifier/@AuthorityReceiver authorityRequiredCodeFixed: AECountry of the receiving party.
Document identificationsbd:DocumentIdentification/sbd:StandardDocument standardRequiredURIurn:oasis:names:specification:ubl:schema:xsd:Invoice-2-
sbd:DocumentIdentification/sbd:TypeVersionType versionRequiredTextFixed: 2.1Always 2.1 for UAE PINT.
sbd:DocumentIdentification/sbd:TypeDocument typeRequiredCodeFixed: Invoice-
sbd:DocumentIdentification/sbd:MultipleTypeMultiple type flagRequiredBooleanFixed: falseAlways use false for invoice and credit note submissions.
sbd:DocumentIdentification/sbd:CreationDateAndTimeCreation date and timeRequiredDateTimeYYYY-MM-DDTHH:MM:SSZ (UTC ISO 8601)UTC timestamp of when the SBD envelope was created.
BusinessScope - Core routingScope[Type='Country']/IdentifierCountryRequiredCodeFixed: AECountry code of the issuer.
Scope[Type='CompanyCode']/IdentifierCompany codeRequiredTextIf ProfileID=selfbilling, use the customer TRN. Otherwise, use the supplier TRN.Sender's TRN.
Scope[Type='SenderDocumentId']/IdentifierSender document IDRequiredText ≤35The 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']/IdentifierSender system IDRequiredTextERP system name or identifier. Default: DefaultSystemERPIdentifies the originating ERP system (for example, D365FO, SAP, or Oracle).
Scope[Type='ProcessType']/IdentifierProcess typeRequiredCodeFixed: OutboundOutbound means the invoice is sent from the ERP to Sovos.
Scope[Type='BusinessCategory']/IdentifierBusiness categoryRequiredCodeFixed: B2B-
Scope[Type='BusinessProcess']/BusinessService/BusinessServiceNameBusiness service nameRequiredCodeFixed: DefaultTurns on the full end-to-end Sovos pipeline.
Scope[Type='Version']/IdentifierVersionRequiredTextFixed: 1.0-
Scope[Type='SubSchema']/IdentifierSub-schemaRequiredTextBlank alwaysLeave blank for standard processing. Only set this value if Sovos instructs you to do so.
Businesscope - Mapping scopesScope[Type='Mapping.TransformDocument']/IdentifierTransform documentRequiredCodeInvoice: LEGAL-TO-SCI_INVOICE. Credit note: LEGAL-TO-SCI_CREDIT_NOTE.-
Scope[Type='Mapping.OutputSchema']/IdentifierOutput schemaRequiredCodeFixed: 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 pathElementCardinalityDescription
Invoice/CustomizationID<cbc:CustomizationID>1..1Required PINT-AE specification identifier. See the UAE-specific fields section.
Invoice/ProfileID<cbc:ProfileID>1..1PEPPOL billing process identifier. See the UAE-specific fields section.
Invoice/ID<cbc:ID>1..1Invoice number. Must be sequential and unique within your system.
Invoice/IssueDate<cbc:IssueDate>1..1Invoice date. Format: YYYY-MM-DD.
Invoice/InvoiceTypeCode<cbc:InvoiceTypeCode>1..1Document type. 380 for invoices, 381 for credit notes.
Invoice/DocumentCurrencyCode<cbc:DocumentCurrencyCode>1..1Invoice 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..1VAT 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..1Date VAT becomes chargeable, if different from the invoice date.
Invoice/DueDate<cbc:DueDate>0..1Payment due date.
Invoice/Note<cbc:Note>0..nFree-text note.
Invoice/BuyerReference<cbc:BuyerReference>0..1Buyer'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 380 or 381.
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 fieldsElementCardinalityDescription
AccountingSupplierParty/Party/EndpointID<cbc:EndpointID schemeID="0235">1..1Your PEPPOL Participant ID. Set schemeID="0235" and use your 10-digit TIN as the value.
AccountingSupplierParty/Party/PartyTaxScheme/CompanyID<cbc:CompanyID>0..1Your 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..1ISO 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 fieldsElementCardinalityDescription
AccountingCustomerParty/Party/EndpointID<cbc:EndpointID schemeID="0235">1..1Buyer'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..1Buyer'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..1ISO 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 TaxTotal or 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), and O (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 CustomizationID returns a 422 validation 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 SovosExtension block. 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 true when:

FlagScenario
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 InvoiceTypeCode to 381.

  • 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.