Zoho books logo Help Docs
/

Belgian Peppol UBL Structure Guide

Every e-invoice sent through the Peppol network in Belgium is an XML document based on the Universal Business Language (UBL 2.1) standard. These invoices must conform to the Peppol BIS Billing 3.0 profile, which is built on the European e-invoicing standard EN 16931. Starting 1 January 2026, all VAT-registered Belgian businesses must send and receive B2B invoices electronically through the Peppol network. Invoices sent via email in PDF format are no longer considered valid for VAT purposes.

This document covers the full structure of a Peppol UBL invoice, section by section, with XML examples and Zoho Books mapping notes.

What Is UBL?

UBL (Universal Business Language) is an XML-based standard maintained by OASIS for electronic business documents such as invoices and credit notes. It provides a single structured vocabulary that any system can read and process. The current version used by the Peppol network is UBL 2.1.

What is Peppol BIS Billing 3.0?

Peppol does not use raw UBL. It uses a specific profile called Peppol BIS Billing 3.0, built on top of UBL 2.1 and compliant with the European standard EN 16931. Every Peppol invoice must satisfy three layers of rules:

  1. UBL 2.1 XML schema — the document must be valid XML that conforms to the UBL 2.1 structure.
  2. EN 16931 business rules — the European standard defines semantic rules (e.g., tax amounts must add up, every line must have a price and quantity).
  3. Peppol BIS 3.0 rules — Peppol adds its own requirements on top (e.g., mandatory CustomizationID, ProfileID, and BuyerReference).

Header Information

The header identifies the invoice on the Peppol network. Every Peppol BIS 3.0 invoice must include a CustomizationID and ProfileID so the network can recognise and route it. The InvoiceTypeCode identifies the document type. It is usually 380 for a standard invoice and 381 for a credit note. Belgian invoices typically use EUR as the document currency and must include a BuyerReference to help the buyer route the invoice internally.

<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>INV-000005</cbc:ID>
<cbc:IssueDate>2026-02-19</cbc:IssueDate>
<cbc:DueDate>2026-02-19</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>EMP-000012</cbc:BuyerReference>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Mandatoryubl:InvoiceInvoiceRoot element of a UBL Invoice
Mandatorycbc:IDInvoice numberA unique identification of the Invoice (Article 226(2) of directive 2006/112/EC).33445566
Mandatorycbc:IssueDateInvoice issue dateThe date when the Invoice was issued. Format YYYY-MM-DD.2017-11-01
Optionalcbc:DueDatePayment due dateThe date when the payment is due. Format YYYY-MM-DD.2017-11-01
Mandatorycbc:InvoiceTypeCodeInvoice type codeCode specifying the functional type of the Invoice. 380 = standard invoice, 381 = credit note.380
Optionalcbc:BuyerReferenceBuyer referenceAn identifier assigned by the Buyer used for internal routing purposes.abs1234
Mandatorycbc:DocumentCurrencyCodeInvoice currency codeThe currency in which all Invoice amounts are given (except Total VAT in accounting currency).EUR

For credit notes, use InvoiceTypeCode 381 with a CreditNote root element. The BuyerReference is mandatory in Peppol and typically contains a purchase order number or an internal reference agreed upon between buyer and seller.

Seller Information

This section identifies the party issuing the invoice. It includes the seller’s name, postal address, VAT number, legal registration details, and contact information.

The seller’s VAT number follows the BE0XXXXXXXXX format and is placed under PartyTaxScheme. The RegistrationName under PartyLegalEntity must be the official registered name as it appears in the KBO.

Note: The PartyTaxScheme block is included in the UBL output only if the seller’s tax identifier is registered with scheme 9925 (Belgian VAT). If the identifier is not registered under the 9925 scheme, this block is not added to the UBL.

<cac:AccountingSupplierParty>
   <cac:Party>
      <cbc:EndpointID schemeID="0208">0xxxxxxxx0</cbc:EndpointID>
      <cac:PartyIdentification>
         <cbc:ID schemeAgencyID="ZZZ" schemeID="0208">0xxxxxxxx0</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
         <cbc:Name>Business Reg. Name</cbc:Name>
      </cac:PartyName>
      <cac:PostalAddress>
         <cbc:StreetName>Bessenveldstraat 453</cbc:StreetName>
         <cbc:CityName>Monstreux</cbc:CityName>
         <cbc:PostalZone>1400</cbc:PostalZone>
         <cac:Country>
            <cbc:IdentificationCode listAgencyID="6" listID="ISO3166-1:Alpha2">BE</cbc:IdentificationCode>
         </cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
         <cbc:CompanyID schemeAgencyID="ZZZ" schemeID="9925">BE0xxxxxxxx0</cbc:CompanyID>
         <cac:TaxScheme>
            <cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5153">VAT</cbc:ID>
         </cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
         <cbc:RegistrationName>Business Reg. Name</cbc:RegistrationName>
         <cbc:CompanyID schemeAgencyID="ZZZ" schemeID="0208">0xxxxxxxx0</cbc:CompanyID>
      </cac:PartyLegalEntity>
      <cac:Contact>
         <cbc:Name>post8 t0</cbc:Name>
         <cbc:ElectronicMail>email@example.com</cbc:ElectronicMail>
      </cac:Contact>
   </cac:Party>
</cac:AccountingSupplierParty>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Mandatorycac:AccountingSupplierPartySellerGroup providing information about the Seller.
Mandatorycac:AccountingSupplierParty/cac:PartyPartySeller party container.
Mandatorycac:AccountingSupplierParty/cac:Party/cbc:EndpointIDSeller electronic addressIdentifies the Seller's electronic address for application level response.7300010000001
Mandatorycac:AccountingSupplierParty/cac:Party/cbc:EndpointID/@schemeIDSeller electronic address scheme IDIdentification scheme of the Seller electronic address.0088
Optionalcac:AccountingSupplierParty/cac:Party/cac:PartyIdentificationParty identificationSeller party identification container (repeatable).
Mandatorycac:PartyIdentification/cbc:ID (Seller)Seller identifier / bank assigned creditor identifierIdentification of the Seller or unique banking reference. Use ICD code list or SEPA.5060012349998
Optionalcac:AccountingSupplierParty/cac:Party/cac:PartyNameParty nameSeller party name container.
Mandatorycac:PartyName/cbc:Name (Seller)Seller trading nameA name by which the Seller is known (Business name).Seller Business Name AS
Mandatorycac:AccountingSupplierParty/cac:Party/cac:PostalAddressSeller postal addressGroup providing Seller address info. Sufficient components must comply with legal requirements.
OptionalSellerPostalAddress/cbc:StreetNameSeller address line 1The main address line.Main Street 1
OptionalSellerPostalAddress/cbc:CityNameSeller cityThe city, town or village of the Seller address.London
OptionalSellerPostalAddress/cbc:PostalZoneSeller post codeThe postal code of the Seller address.W1G 8LZ
MandatorySellerPostalAddress/cac:CountryCountrySeller country container.
MandatorySellerPostalAddress/cac:Country/cbc:IdentificationCodeSeller country codeA code that identifies the country.GB
Optionalcac:AccountingSupplierParty/cac:Party/cac:PartyTaxSchemeParty VAT/tax identifiersSeller VAT/Tax identifier group (up to 2 occurrences).
MandatorySellerPartyTaxScheme/cbc:CompanyIDSeller VAT identifier / Tax registration IDThe Seller's VAT identifier or local tax identification.NO999888777
MandatorySellerPartyTaxScheme/cac:TaxSchemeTax schemeTax scheme container.
Mandatorycac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntityParty legal entitySeller legal entity container.
MandatorySellerPartyLegalEntity/cbc:RegistrationNameSeller nameFull formal name of the Seller in the national registry.Full Formal Seller Name LTD.
OptionalSellerPartyLegalEntity/cbc:CompanyIDSeller legal registration identifierIdentifier issued by an official registrar identifying the Seller.987654321
Optionalcac:AccountingSupplierParty/cac:Party/cac:ContactSeller contactGroup providing Seller contact information.
OptionalContact/cbc:NameSeller contact pointA contact point for the Seller.xyz123
OptionalContact/cbc:ElectronicMailSeller contact email addressAn e-mail address for the Seller contact point.test.name@foo.bar

Buyer Information

The buyer section identifies the party receiving and paying the invoice. It includes the buyer’s name, address, legal registration, and optionally, a VAT identifier and contact details.

Belgian buyers use schemeID="0208" for their KBO/BCE enterprise number as the electronic endpoint. PartyLegalEntity/RegistrationName is the buyer’s official registered name, while PartyName/Name is their trading name.

Note: The PartyTaxScheme block is included in the UBL output only if the buyer’s tax identifier is registered with scheme 9925 (Belgian VAT). If the identifier is not registered under the 9925 scheme, this block is not added to the UBL.

<cac:AccountingCustomerParty>
   <cac:Party>
      <cbc:EndpointID schemeID="0208">0xxxxxxxx0</cbc:EndpointID>
      <cac:PartyIdentification>
         <cbc:ID schemeAgencyID="ZZZ" schemeID="0208">0xxxxxxxx0</cbc:ID>
      </cac:PartyIdentification>
      <cac:PartyName>
         <cbc:Name>Lien Janssens</cbc:Name>
      </cac:PartyName>
      <cac:PostalAddress>
         <cbc:StreetName>Strepestraat 233</cbc:StreetName>
         <cbc:CityName>Laar</cbc:CityName>
         <cbc:PostalZone>3400</cbc:PostalZone>
         <cbc:CountrySubentity>Belgium</cbc:CountrySubentity>
         <cac:Country>
            <cbc:IdentificationCode listAgencyID="6" listID="ISO3166-1:Alpha2">BE</cbc:IdentificationCode>
         </cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
         <cbc:CompanyID schemeAgencyID="ZZZ" schemeID="9925">BE0xxxxxxxx0</cbc:CompanyID>
         <cac:TaxScheme>
            <cbc:ID schemeAgencyID="6" schemeID="UN/ECE 5153">VAT</cbc:ID>
         </cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
         <cbc:RegistrationName>Lien Janssens</cbc:RegistrationName>
         <cbc:CompanyID schemeAgencyID="ZZZ" schemeID="0208">0xxxxxxxx0</cbc:CompanyID>
      </cac:PartyLegalEntity>
      <cac:Contact>
         <cbc:Name>Lien Janssens</cbc:Name>
         <cbc:ElectronicMail>buyer@example.com</cbc:ElectronicMail>
      </cac:Contact>
   </cac:Party>
</cac:AccountingCustomerParty>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Mandatorycac:AccountingCustomerPartyBuyerGroup providing information about the Buyer.
Mandatorycac:AccountingCustomerParty/cac:PartyPartyBuyer party container.
MandatoryParty/cbc:EndpointIDBuyer electronic addressIdentifies the Buyer's electronic address to which the invoice is delivered.987654321
MandatoryParty/cbc:EndpointID/@schemeIDBuyer electronic address scheme IDIdentification scheme of the Buyer electronic address.0192
MandatoryBuyerPartyIdentification/cbc:IDBuyer identifierAn identifier of the Buyer.SE8765456787
OptionalParty/cac:PartyNameParty nameBuyer party name container.
MandatoryBuyerPartyName/cbc:NameBuyer trading nameA name by which the Buyer is known (Business name).Buyer Trading Name
MandatoryParty/cac:PostalAddressBuyer postal addressGroup providing Buyer address info.
OptionalBuyerPostalAddress/cbc:StreetNameBuyer address line 1The main address line.Hovudgatan 32
OptionalBuyerPostalAddress/cbc:CityNameBuyer cityThe city, town or village of the Buyer address.Stockholm
OptionalBuyerPostalAddress/cbc:PostalZoneBuyer post codeThe postal code of the Buyer address.34567
OptionalBuyerPostalAddress/cbc:CountrySubentityBuyer country subdivisionThe subdivision of a country.Region A
MandatoryBuyerPostalAddress/cac:CountryCountryBuyer country container.
MandatoryBuyerPostalAddress/cac:Country/cbc:IdentificationCodeBuyer country codeA code that identifies the country.SE
OptionalParty/cac:PartyTaxSchemeParty VAT identifierBuyer VAT identifier group.
MandatoryBuyerPartyTaxScheme/cbc:CompanyIDBuyer VAT identifierThe Buyer's VAT identifier.SE8765456787
MandatoryBuyerPartyTaxScheme/cac:TaxSchemeTax schemeTax scheme container.
MandatoryBuyerPartyTaxScheme/cac:TaxScheme/cbc:IDTax scheme IDMandatory element. Use VAT.VAT
MandatoryParty/cac:PartyLegalEntityParty legal entityBuyer legal entity container.
MandatoryBuyerPartyLegalEntity/cbc:RegistrationNameBuyer nameThe full name of the Buyer.Buyer Full Name AS
OptionalBuyerPartyLegalEntity/cbc:CompanyIDBuyer legal registration identifierIdentifier from an official registrar identifying the Buyer.5560104525
OptionalParty/cac:ContactBuyer contactGroup providing Buyer contact information.
OptionalContact/cbc:NameBuyer contact pointA contact point for the Buyer.Jens Jensen
OptionalContact/cbc:ElectronicMailBuyer contact email addressAn e-mail address for the Buyer contact point.jens.j@buyer.se

Document References

This section links the invoice to related business documents such as purchase orders, sales orders, contracts, and previously issued invoices.

<cbc:BuyerReference>Buyer Reference</cbc:BuyerReference>

<cac:OrderReference>
   <cbc:ID>PO Reference</cbc:ID>
   <cbc:SalesOrderID>SO-Reference</cbc:SalesOrderID>
</cac:OrderReference>

<cac:ProjectReference>
   <cbc:ID>Project Reference</cbc:ID>
</cac:ProjectReference>

<cac:AdditionalDocumentReference>
   <cbc:ID>BE-INV-2026-000009</cbc:ID>
   <cac:Attachment>
      <cbc:EmbeddedDocumentBinaryObject characterSetCode="ASCII" encodingCode="Base64" filename="invoice.pdf" mimeCode="application/pdf">
         JVBERi0xLjUKJeLjz9MK...
      </cbc:EmbeddedDocumentBinaryObject>
   </cac:Attachment>
</cac:AdditionalDocumentReference>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Optionalcac:OrderReferenceOrder and sales order referenceGroup for order and sales order references.
Optionalcac:OrderReference/cbc:IDPurchase order referenceIdentifier of a referenced purchase order, issued by the Buyer.98776
Optionalcac:OrderReference/cbc:SalesOrderIDSales order referenceIdentifier of a referenced sales order, issued by the Seller.112233
Optionalcac:ProjectReferenceProject referenceReference to a project.
Optionalcac:ProjectReference/cbc:IDProject referenceThe identification of the project the invoice refers to.PID33
Optionalcac:AdditionalDocumentReferenceAdditional supporting documentsGroup providing info about additional supporting documents.
Optionalcac:AdditionalDocumentReference/cbc:IDInvoiced object identifier / Supporting document referenceIdentifier for an object or supporting document.AB23456
Optionalcac:AdditionalDocumentReference/cac:AttachmentAttachmentContainer for attached or external documents.
Optionalcac:Attachment/cbc:EmbeddedDocumentBinaryObjectAttached documentAn attached document embedded as Base64 binary object.aHR0cHM6Ly90ZXN0...
Optionalcac:Attachment/cbc:EmbeddedDocumentBinaryObject/@mimeCodeAttached document Mime codeThe mime code of the attached document.text/csv
Optionalcac:Attachment/cbc:EmbeddedDocumentBinaryObject/@filenameAttached document FilenameThe file name of the attached document.Hours-spent.csv
Optionalcac:Attachment/cac:ExternalReference/cbc:URIExternal document locationURL identifying where the external document is located.http://www.example.com/index.html

The BuyerReference is a mandatory Peppol field that helps the buyer route and identify the invoice internally. The OrderReference/ID is the purchase order number issued by the buyer. The SalesOrderID is the seller’s own sales order reference. ProjectReference/ID links the invoice to a specific project or contract identifier, making it easier for the buyer to allocate costs to the correct project in their accounting system. AdditionalDocumentReference allows you to embed supporting files (like a PDF copy of the invoice) directly in the XML as Base64-encoded binary objects. Common MIME types are application/pdf, image/png, and image/jpeg.

Delivery Information

The delivery section describes where and when goods or services were delivered. It can include the delivery date, a location identifier, the full address, and the name of the receiving party. This section is optional.

<cac:Delivery>
   <cac:DeliveryLocation>
      <cac:Address>
         <cbc:CityName>Laar</cbc:CityName>
         <cbc:PostalZone>3400</cbc:PostalZone>
         <cbc:CountrySubentity>Belgium</cbc:CountrySubentity>
         <cac:Country>
            <cbc:IdentificationCode listAgencyID="6" listID="ISO3166-1:Alpha2">BE</cbc:IdentificationCode>
         </cac:Country>
      </cac:Address>
   </cac:DeliveryLocation>
</cac:Delivery>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Optionalcac:DeliveryDelivery informationGroup providing info about where and when goods/services are delivered.
OptionalDelivery/cac:DeliveryLocationDelivery locationDelivery location container.
OptionalDeliveryLocation/cac:AddressDeliver to addressGroup providing the delivery address.
OptionalDeliveryAddress/cbc:CityNameDeliver to cityThe city of the delivery address.Malmö
OptionalDeliveryAddress/cbc:PostalZoneDeliver to post codeThe postal code of the delivery address.86756
OptionalDeliveryAddress/cbc:CountrySubentityDeliver to country subdivisionThe subdivision of a country.South Region
OptionalDeliveryAddress/cac:CountryCountryDelivery country container.
OptionalDeliveryAddress/cac:Country/cbc:IdentificationCodeDeliver to country codeA code that identifies the country.SE

Payment Instructions

This section specifies how the buyer should pay the invoice. The PaymentMeansCode indicates the payment method.

For Belgian invoices, credit transfer with an IBAN is the standard setup. The PaymentID is used for reconciliation and typically contains the structured communication reference that appears on the bank statement.

<cac:PaymentMeans>
  <cbc:PaymentMeansCode>1</cbc:PaymentMeansCode>
  <cbc:PaymentID>INV-000005</cbc:PaymentID>
  <cac:CardAccount>
    <cbc:PrimaryAccountNumberID>f52d87</cbc:PrimaryAccountNumberID>
    <cbc:NetworkID>N/A</cbc:NetworkID>
  </cac:CardAccount>
</cac:PaymentMeans>

<cac:PaymentTerms>
  <cbc:Note>Net within 30 days</cbc:Note>
</cac:PaymentTerms>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Optionalcac:PaymentMeansPayment instructionsGroup providing information about the payment.
MandatoryPaymentMeans/cbc:PaymentMeansCodePayment means type codeCode for how a payment is expected to be settled.30
OptionalPaymentMeans/cbc:PaymentMeansCode/@namePayment means textText for how a payment is expected to be settled.Credit transfer
OptionalPaymentMeans/cbc:PaymentIDRemittance informationA textual value to establish a link between payment and Invoice.432948234234234
OptionalPaymentMeans/cac:CardAccountPayment card informationGroup for card payment information.
OptionalCardAccount/cbc:PrimaryAccountNumberIDPayment card primary account numberThe PAN of the card (never include full PAN).1234
OptionalCardAccount/cbc:NetworkIDNetwork IDSyntax required element (not a business term).NA
OptionalCardAccount/cbc:HolderNamePayment card holder nameThe name of the payment card holder.John Doe
OptionalPaymentMeans/cac:PaymentMandateDirect debitGroup to specify a direct debit.
OptionalPaymentMandate/cbc:IDMandate reference identifierUnique ID assigned by Payee for the direct debit mandate.123456
OptionalPaymentMandate/cac:PayerFinancialAccountPayer financial accountPayer financial account container.
OptionalPayerFinancialAccount/cbc:IDDebited account identifierThe account to be debited by the direct debit.12345676543
Optionalcac:PaymentTermsPayment termsPayment terms container.
OptionalPaymentTerms/cbc:NotePayment termsTextual description of payment terms (including possible penalties).Net within 30 days

Allowances and Charges

This section applies document-level discounts (allowances) and surcharges (charges) that affect the entire invoice. Line-level allowances and charges are handled separately within each invoice line.

The ChargeIndicator distinguishes between the two: true for charges, false for allowances. Each entry must include the applicable VAT category and rate so the tax totals remain correct. Reason codes follow UNCL5189 for allowances and UNCL7161 for charges. The totals from this section feed into AllowanceTotalAmount and ChargeTotalAmount in the monetary totals.

<cac:AllowanceCharge>
  <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
  <cbc:AllowanceChargeReason>Discount</cbc:AllowanceChargeReason>
  <cbc:Amount currencyID="EUR">200</cbc:Amount>
  <cac:TaxCategory>
    <cbc:ID>S</cbc:ID>
    <cbc:Percent>25</cbc:Percent>
    <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
  </cac:TaxCategory>
</cac:AllowanceCharge>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Optionalcac:AllowanceChargeDocument level allowances and chargesGroup for allowances/charges applicable to the Invoice as a whole.
OptionalAllowanceCharge/cbc:ChargeIndicatorCharge indicatorUse true for Charges, false for Allowances.false
OptionalAllowanceCharge/cbc:AllowanceChargeReasonCodeAllowance/charge reason codeThe reason code (UNCL5189 for allowances, UNCL7161 for charges).95
OptionalAllowanceCharge/cbc:AllowanceChargeReasonAllowance/charge reasonThe reason expressed as text.Discount
OptionalAllowanceCharge/cbc:MultiplierFactorNumericAllowance/charge percentageThe percentage used with base amount to calculate amount.20
OptionalAllowanceCharge/cbc:AmountAllowance/charge amountThe amount without VAT. Max 2 decimals.200
OptionalAllowanceCharge/cbc:Amount/@currencyIDCurrency IDMandatory attribute. Use BT-5.EUR
OptionalAllowanceCharge/cbc:BaseAmountAllowance/charge base amountThe base amount for calculation. Max 2 decimals.1000
OptionalAllowanceCharge/cbc:BaseAmount/@currencyIDCurrency IDMandatory attribute. Use BT-5.EUR
OptionalAllowanceCharge/cac:TaxCategoryTax categoryTax category for the allowance/charge.
OptionalAllowanceCharge/TaxCategory/cbc:IDVAT category codeCoded identification of the VAT category.S
OptionalAllowanceCharge/TaxCategory/cbc:PercentVAT rateThe VAT rate as percentage.25
OptionalAllowanceCharge/TaxCategory/cac:TaxSchemeTax schemeTax scheme container.
OptionalAllowanceCharge/TaxCategory/cac:TaxScheme/cbc:IDTax scheme IDMandatory. Use VAT.VAT

Tax Total and VAT Breakdown

This section provides the total VAT amount and a breakdown by VAT category and rate. If the invoice has lines with different VAT rates, each rate gets its own TaxSubtotal entry. This section is mandatory.

When the tax currency differs from the document currency, two TaxTotal elements are required — one in each currency. Belgian invoices commonly use VAT categories S (standard rate — 6%, 12%, or 21%), Z (zero-rated), and AE (reverse charge for intra-EU B2B transactions).

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">64.80</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">1080.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">64.80</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>6.0</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Mandatorycac:TaxTotalTax totalWhen tax currency is provided, two instances must be present (only one with tax subtotal).
MandatoryTaxTotal/cbc:TaxAmountInvoice total VAT amountTotal VAT amount for the Invoice. Max 2 decimals.486.25
MandatoryTaxTotal/cbc:TaxAmount/@currencyIDCurrency IDMandatory attribute. Use BT-5 or BT-6.EUR
OptionalTaxTotal/cac:TaxSubtotalVAT breakdownGroup providing VAT breakdown by category, rate and exemption.
MandatoryTaxSubtotal/cbc:TaxableAmountVAT category taxable amountSum of all taxable amounts for this VAT category. Max 2 decimals.1945.00
MandatoryTaxSubtotal/cbc:TaxableAmount/@currencyIDCurrency IDMandatory attribute. Use BT-5.EUR
MandatoryTaxSubtotal/cbc:TaxAmountVAT category tax amountTotal VAT amount for a given category. Max 2 decimals.486.25
MandatoryTaxSubtotal/cbc:TaxAmount/@currencyIDCurrency IDMandatory attribute. Use BT-5.EUR
MandatoryTaxSubtotal/cac:TaxCategoryVAT categoryVAT category container.
MandatoryTaxSubtotal/TaxCategory/cbc:IDVAT category codeCoded identification of a VAT category.S
OptionalTaxSubtotal/TaxCategory/cbc:PercentVAT category rateThe VAT rate as percentage.25
MandatoryTaxSubtotal/TaxCategory/cac:TaxSchemeTax schemeTax scheme container.
MandatoryTaxSubtotal/TaxCategory/cac:TaxScheme/cbc:IDTax scheme IDMandatory. Use VAT.VAT

Monetary Totals

This section summarises all amounts on the invoice. It is mandatory and must be mathematically consistent — validation errors commonly occur here if the amounts don’t add up.

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="EUR">1080.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="EUR">1085.20</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="EUR">1150.00</cbc:TaxInclusiveAmount>
  <cbc:AllowanceTotalAmount currencyID="EUR">4.80</cbc:AllowanceTotalAmount>
  <cbc:ChargeTotalAmount currencyID="EUR">10.00</cbc:ChargeTotalAmount>
  <cbc:PayableRoundingAmount currencyID="EUR">0.00</cbc:PayableRoundingAmount>
  <cbc:PayableAmount currencyID="EUR">1150.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Mandatorycac:LegalMonetaryTotalDocument totalsGroup providing monetary totals for the Invoice.
MandatoryLegalMonetaryTotal/cbc:LineExtensionAmountSum of Invoice line net amountSum of all Invoice line net amounts. Max 2 decimals.3800.0
MandatoryLegalMonetaryTotal/cbc:LineExtensionAmount/@currencyIDCurrency IDline items total Currency CodeEUR
MandatoryLegalMonetaryTotal/cbc:TaxExclusiveAmountInvoice total amount without VATTotal amount without VAT. Max 2 decimals.3600.0
MandatoryLegalMonetaryTotal/cbc:TaxExclusiveAmount/@currencyIDCurrency IDinvoice total without tax Currency CodeEUR
MandatoryLegalMonetaryTotal/cbc:TaxInclusiveAmountInvoice total amount with VATTotal amount with VAT. Max 2 decimals.4500.0
MandatoryLegalMonetaryTotal/cbc:TaxInclusiveAmount/@currencyIDCurrency IDinvoice total with tax Currency CodeEUR
OptionalLegalMonetaryTotal/cbc:AllowanceTotalAmountSum of allowances on document levelSum of all document level allowances. Max 2 decimals.200.0
OptionalLegalMonetaryTotal/cbc:AllowanceTotalAmount/@currencyIDCurrency IDSum of total Invoice Allowance (entity level) Currency CodeEUR
OptionalLegalMonetaryTotal/cbc:ChargeTotalAmountSum of charges on document levelSum of all document level charges. Max 2 decimals.0.0
OptionalLegalMonetaryTotal/cbc:ChargeTotalAmount/@currencyIDCurrency IDSum of total Invoice Charges (entity level) Currency CodeEUR
OptionalLegalMonetaryTotal/cbc:PrepaidAmount/@currencyIDCurrency IDMandatory attribute. Use BT-5.EUR
OptionalLegalMonetaryTotal/cbc:PayableRoundingAmountRounding amountAmount to add for rounding. Max 2 decimals.0.0
OptionalLegalMonetaryTotal/cbc:PayableRoundingAmount/@currencyIDCurrency IDAmount to add for rounding at entity level Currency CodeEUR
MandatoryLegalMonetaryTotal/cbc:PayableAmountAmount due for paymentThe outstanding amount requested to be paid. Max 2 decimals.3500.0
MandatoryLegalMonetaryTotal/cbc:PayableAmount/@currencyIDCurrency IDPayable Amount Currency CodeEUR

Invoice Lines

Each invoice must have at least one invoice line representing a good or service being billed. Every line includes a unique ID, the invoiced quantity with its unit code (UN/ECE Rec 20, e.g., C62 for units, KGM for kilograms), the line net amount, and item details such as the name, description, VAT category, and unit price.

Lines can also include their own allowances and charges, an invoice period, and references to purchase order lines or object identifiers. The ClassifiedTaxCategory within each line item determines which VAT bucket the line falls into for the tax breakdown.

<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cbc:InvoicedQuantity unitCode="C62">4.0</cbc:InvoicedQuantity>
  <cbc:LineExtensionAmount currencyID="EUR">1080.00</cbc:LineExtensionAmount>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReason>N/A</cbc:AllowanceChargeReason>
    <cbc:Amount currencyID="EUR">8.00</cbc:Amount>
  </cac:AllowanceCharge>
  <cac:Item>
    <cbc:Description>Item description text</cbc:Description>
    <cbc:Name>Dozen Cement</cbc:Name>
    <cac:ClassifiedTaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>6.0</cbc:Percent>
      <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
    </cac:ClassifiedTaxCategory>
  </cac:Item>
  <cac:Price>
    <cbc:PriceAmount currencyID="EUR">205.00</cbc:PriceAmount>
    <cbc:BaseQuantity unitCode="C62" unitCodeListID="UNECERec20">1.0</cbc:BaseQuantity>
  </cac:Price>
</cac:InvoiceLine>
Field Reference & Books Mapping
StatusXPathZoho Books FieldDescriptionExample
Mandatorycac:InvoiceLineInvoice lineGroup providing information on individual Invoice lines.
MandatoryInvoiceLine/cbc:IDInvoice line identifierA unique identifier for the individual line.12
MandatoryInvoiceLine/cbc:InvoicedQuantityInvoiced quantityThe quantity of items charged in the Invoice line.100
MandatoryInvoiceLine/cbc:InvoicedQuantity/@unitCodeInvoiced quantity unit of measureUnit of measure for the invoiced quantity (UN/ECE Rec 20/21).C62
MandatoryInvoiceLine/cbc:LineExtensionAmountInvoice line net amountTotal amount of the line net of VAT. Max 2 decimals.2145.00
MandatoryInvoiceLine/cbc:LineExtensionAmount/@currencyIDCurrency IDCurrency of Invoice line net amountEUR
MandatoryLineDocumentReference/cbc:IDInvoice line object identifierIdentifier for an object on which the line is based.AB12345
OptionalLineDocumentReference/cbc:ID/@schemeIDLine object identifier scheme IDIdentification scheme of the line object identifier.ABZ
OptionalInvoiceLine/cac:AllowanceChargeLine allowances or chargesGroup for allowances/charges on the Invoice line.
OptionalAllowanceCharge/cbc:ChargeIndicatorCharge indicatorUse true for Charges, false for Allowances.false
OptionalAllowanceCharge/cbc:AllowanceChargeReasonLine allowance/charge reasonReason expressed as text.Discount
OptionalAllowanceCharge/cbc:MultiplierFactorNumericLine allowance/charge percentagePercentage used with base amount to calculate amount.20
OptionalAllowanceCharge/cbc:AmountLine allowance/charge amountThe amount without VAT. Max 2 decimals.200
OptionalAllowanceCharge/cbc:Amount/@currencyIDCurrency IDLine Allowance total Currency CodeEUR
OptionalAllowanceCharge/cbc:BaseAmountLine allowance/charge base amountBase amount for calculation. Max 2 decimals.1000
OptionalAllowanceCharge/cbc:BaseAmount/@currencyIDCurrency IDLine Item Base Currency Total Currency CodeEUR
MandatoryInvoiceLine/cac:ItemItem informationGroup providing info about the goods/services invoiced.
OptionalItem/cbc:DescriptionItem descriptionA description for an item, more detail than Item name.Long description of the item on the invoice line
MandatoryItem/cbc:NameItem nameA name for an item.Item name
MandatoryItem/cac:ClassifiedTaxCategoryLine VAT informationGroup for VAT info applicable to the goods/services invoiced on the line.
MandatoryClassifiedTaxCategory/cbc:IDInvoiced item VAT category codeThe VAT category code for the invoiced item.S
OptionalClassifiedTaxCategory/cbc:PercentInvoiced item VAT rateThe VAT rate as percentage for the invoiced item.25
MandatoryClassifiedTaxCategory/cac:TaxSchemeTax schemeTax scheme container.
MandatoryClassifiedTaxCategory/cac:TaxScheme/cbc:IDTax scheme IDMandatory. Use VAT.VAT
MandatoryInvoiceLine/cac:PricePrice detailsGroup providing price info for the Invoice line.
MandatoryPrice/cbc:PriceAmountItem net pricePrice of an item, exclusive of VAT, after subtracting item price discount.23.45
MandatoryPrice/cbc:PriceAmount/@currencyIDCurrency IDMandatory attribute. Use BT-5.EUR
OptionalPrice/cbc:BaseQuantityItem price base quantityThe number of item units to which the price applies.1
OptionalPrice/cbc:BaseQuantity/@unitCodeItem price base quantity unit of measureUnit of measure for the base quantity (must match invoiced quantity unit).C62
Was this document helpful?
Yes
No

Thank you for your feedback!