UBLExplain

Understand UBL invoice fields

Search UBL fields by name or XML path and read what each one means in plain English.

cbc:CustomizationID

Commonly required

/Invoice/cbc:CustomizationID

Identifies which specification the invoice follows (e.g. Peppol BIS Billing 3.0 + EN16931).

Where: Top of the Invoice / CreditNote.

<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>

cbc:ProfileID

Commonly required

/Invoice/cbc:ProfileID

The business process / Peppol profile (e.g. billing 01:1.0).

Where: Top of the Invoice / CreditNote.

<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>

cbc:ID

Commonly required

/Invoice/cbc:ID

The supplier's unique invoice number.

Where: Top of the Invoice / CreditNote.

<cbc:ID>INV-2025-001</cbc:ID>

cbc:IssueDate

Commonly required

/Invoice/cbc:IssueDate

The date the invoice was issued, in YYYY-MM-DD format.

Where: Top of the Invoice.

<cbc:IssueDate>2025-01-31</cbc:IssueDate>

cbc:DueDate

Optional

/Invoice/cbc:DueDate

Payment due date in YYYY-MM-DD format.

Where: Top of the Invoice.

<cbc:DueDate>2025-02-28</cbc:DueDate>

cac:AccountingSupplierParty

Commonly required

/Invoice/cac:AccountingSupplierParty

The seller's party block: name, address, tax scheme, endpoint ID.

Where: After the header fields.

<cac:AccountingSupplierParty><cac:Party>…</cac:Party></cac:AccountingSupplierParty>

cac:AccountingCustomerParty

Commonly required

/Invoice/cac:AccountingCustomerParty

The buyer's party block.

Where: After the supplier party.

<cac:AccountingCustomerParty><cac:Party>…</cac:Party></cac:AccountingCustomerParty>

cac:TaxTotal

Commonly required

/Invoice/cac:TaxTotal

Total VAT for the invoice, with one TaxSubtotal per VAT category.

Where: Between parties and LegalMonetaryTotal.

<cac:TaxTotal><cbc:TaxAmount currencyID="EUR">21.00</cbc:TaxAmount>…</cac:TaxTotal>

cac:LegalMonetaryTotal

Commonly required

/Invoice/cac:LegalMonetaryTotal

All monetary totals: line extension, tax-exclusive, tax-inclusive, payable.

Where: After TaxTotal.

<cac:LegalMonetaryTotal><cbc:PayableAmount currencyID="EUR">121.00</cbc:PayableAmount>…</cac:LegalMonetaryTotal>

cac:InvoiceLine

Commonly required

/Invoice/cac:InvoiceLine

A single invoice line with quantity, price and item details.

Where: One per line item.

<cac:InvoiceLine><cbc:ID>1</cbc:ID>…</cac:InvoiceLine>

cac:AdditionalDocumentReference

Optional

/Invoice/cac:AdditionalDocumentReference

References to extra documents — including the embedded PDF version of the invoice.

Where: Anywhere in the Invoice body; often near the header.

<cac:AdditionalDocumentReference><cbc:ID>INV-PDF</cbc:ID><cac:Attachment><cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="invoice.pdf">…</cbc:EmbeddedDocumentBinaryObject></cac:Attachment></cac:AdditionalDocumentReference>

cbc:EmbeddedDocumentBinaryObject

Optional

/Invoice/cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject

Base64-encoded binary content (typically a PDF) embedded directly in the XML.

Where: Inside an Attachment block.

<cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf" filename="invoice.pdf">JVBERi0x…</cbc:EmbeddedDocumentBinaryObject>

Related tools

Frequently asked questions

Are these the only UBL fields?

No. UBL has hundreds of optional elements. This explainer focuses on the ones that most often cause confusion or validation issues.

What do cbc: and cac: mean?

They are XML namespace prefixes: cbc is the Common Basic Components namespace (simple values) and cac is the Common Aggregate Components namespace (composite blocks).