Anyone who sends invoices via Peppol knows that even the smallest deviation in structure can result in an error message. You especially notice this with invoices containing multiple VAT percentages, for example 6% and 21%. In theory this seems simple, but in practice many Access Points still struggle with this.
What can you read on this page?
VAT codes in Peppol
A Peppol invoice builds VAT not just on one line, but via a VAT breakdown by rate. For each VAT rate used, you create a separate TaxSubtotal with:
- Taxable Amount: the total amount per rate (excluding VAT)
- Tax Amount: the corresponding VAT amount
- Tax Category: the correct code and VAT rate
| Peppol btw codes | Meaning |
|---|---|
| S | Standard (21%, 12% or 6%). |
| AE | Indicates that the standard VAT rate is shifted to the recipient of the invoice. |
| Z | Zero rate. |
| E | Tax-exempt. |
| G | Exempt export, no VAT charged. |
| O | Services outside the scope of tax. |
| K | VAT exemption for intra-Community supply of goods and services within the EEA. |
Important: each TaxSubtotal contains amounts rounded to two decimal places. Peppol Access Points should validate this on this.
How do you build a correct VAT structure in Peppol?
Within Peppol, correct mapping of VAT categories is essential. The tax codes used in your ERP must be correctly translated to the correct Peppol tax categories and correctly placed in the UBL.
The role of an Access Point or service provider is to technically process the supplied ERP data correctly and position it in the UBL so that the invoice can be validated and delivered via Peppol.
What an Access Point does not do is determine which VAT category applies to a product or service. That tax logic remains entirely a responsibility of the company itself. In other words, if the data in your ERP is set up correctly, then the Access Point will make sure it gets into the Peppol format correctly.
Why are multiple VAT rates such a challenge in Peppol?
An invoice with different VAT rates is common. Consider a supplier billing both food products (6%) and packaging materials (21%). In a classic PDF invoice, you just put two VAT lines below each other, and done. Within Peppol, however, that works differently.
Each invoice in Peppol is built in an XML format, based on the Universal Business Language (UBL) standard. This means that VAT rates are not simply lines of text, but structured data elements.
This is often where the rub comes in: many Access Points do not structure that data correctly, which can cause the bill to be rejected by the network or by the recipient.
In addition, both the Peppol standard and VAT legislation require that VAT be calculated and rounded by category based on the sum of the net amounts for each VAT category. Specifically, this means:
Add up all 21% invoice lines and calculate VAT on them
Add up all 6% invoice lines and calculate VAT on them
That way, you avoid cent differences between individual lines and the total amount, which can otherwise lead to errors and rejections.
So what about rebates? When an invoice contains a discount, such as a cash discount, commercial discount or quantity discount, VAT logic must be applied correctly by discount type. For example, a cash rebate is processed VAT-wise differently than a commercial rebate, and must be structured correctly in UBL to avoid errors in Peppol and accounting.
In short: multiple VAT rates and discounts make an invoice complex, and correct header calculation per VAT category as well as correct VAT logic for discounts are essential for compliant Peppol invoices.
What VAT errors are common in Peppol?
With Peppol invoices, there are some common VAT errors that can cause an invoice to be rejected:
Calculate VAT from the line instead of the header
→ Always calculate by VAT category on the sum of the relevant lines. For example: add up all the 21% lines and calculate VAT on them, same for 6%. Otherwise, cent differences occur between the lines and the total.Document discount not correctly distributed by VAT rate
→ A global discount should be distributed pro rata by VAT rate or applied entirely to one VAT rate.Wrong VAT code
→ Always use the correct tax category. Incorrect code leads to validation errors and can reject an invoice.More than two decimal places
→ Peppol accepts up to 2 decimal places for VAT amounts. Only price and quantity may have more decimal places.
To a human, these may seem like minor details, but within structured Peppol-UBL, these are sufficient reasons for an Access Point to reject an invoice during validation.
Calculation example
Situation
- Product A: 2 × €100.00 at 21% VAT
- Product B: 3 × €50.00 at 6% VAT
- General discount: 2%
Calculation
- VAT category (21%) 1 net = €200.00 → VAT €42.00
- VAT category (6%) 2 net = €150.00 → VAT €9.00
- Total discount = €7.00
- 21% share = €4.00 discount
- 6% share = €3.00 discount
After discount
- 21% rate: net €196.00 → VAT €41.16
- 6% rate: net €147.00 → VAT €8.82
Invoice totals
- Taxable = €343.00
- VAT = €49.98
- Total = €392.98
This invoice validates correctly in Peppol because each VAT category is broken down separately and rounded to two decimal places.
What role does the access point play?
An Access Point ensures that invoices are technically processed and exchanged correctly through Peppol. This means that a good Access Point checks that the UBL structure is valid before sending an invoice. For example, the VAT summaries are automatically validated and checked that each percentage has been calculated correctly. Only if the invoice fully complies with the Peppol BIS standard will it be forwarded.
Note that even if an invoice is technically correct, business logic errors can occur. For example, the UBL may be correct, but if the VAT categories in the ERP system are set incorrectly, or if amounts are incorrect, the customer may reject the invoice or accounting errors will occur.
Therefore, when choosing an Access Point, it is important to pay attention to both technical validation and the ability to work with correctly set ERP values so that your invoices are correct both technically and substantively.
What happens when things go wrong?
Peppol itself does not disapprove VAT errors or invoices; that is the job of the Access Point or service provider. In the ideal scenario, when you want to send an invoice and there are structural errors in it, your own Access Point should reject it and provide feedback.
With Nymus, you can use the Nymus platform to view all rejected invoices, including feedback on what went wrong. This allows you to quickly find invoices that require manual correction.
If an invoice is Peppol-technically correct, but the amounts or discounts are incorrect, it can still be sent to the end customer. In that case, the client may reject the invoice, or accounting errors may arise with you.
Therefore, it is important to choose an Access Point that:
Validates that the invoice is correctly constructed according to Peppol standards
Provides additional tooling, such as an AP tool for checking amounts, rebates and 3-way matching
At Nymus, we offer solutions for both incoming and outgoing invoices. This is how you detect:
Overpayments or underpayments on incoming invoices
Invoices that do not match the order or quantity delivered
Situations requiring manual intervention
In short, an Access Point that validates as well as provides smart tooling prevents errors, saves time and helps keep your financial processes secure and efficient.
Checklist: this is how to prepare a correct Peppol invoice
Specify each TaxCategory separately: make sure each VAT rate is displayed correctly.
Use correct TaxCategory: incorrect code leads to validation errors or accounting errors.
Calculate VAT at header level: add all lines of the same VAT rate together before calculating VAT.
Distribute document discounts pro rata: distribute a global discount to the appropriate VAT rates or apply it fully to one VAT rate.
Rounding to 2 decimal places: Peppol accepts up to 2 decimal places.
Check ERP mapping: ensure that tax codes in the ERP are correctly linked to Peppol tax categories.
UBL validation by Nymus: This is specific to Nymus customers. Each UBL is checked before it is sent or received through Peppol.
Key-takeaway
Peppol is often presented as a “button you activate with one click,” but in practice it is often much more complex. Especially for large companies with multiple ERP systems, complex billing structures and high billing volume.
An Access Point well versed in both the VAT structure in Peppol and the legislation can play a crucial role in preventing errors and keeping processes running smoothly.
At Nymus, we specialize in e-invoicing solutions for large companies with complex invoicing processes, including the correct processing of VAT data in Peppol so that invoices are correct both technically and financially.
Questions about Peppol or VAT processing? Feel free to contact us, and together we’ll see how your billing processes can run flawlessly.
Frequently Asked Questions
FAQ
Is there an overview of Belgian VAT codes for Peppol?
An overview can be found in the Peppol code list UNCL5305. For exceptions or special entries, you can include the explanation in the exemptionReason field of the UBL, similar to how you would do it on a PDF.
Can you combine different tax codes, including 'O'?
The tax code ‘O’ (no VAT) may not be combined with other tax codes in the same invoice because no VAT number may be included with ‘O’. Sometimes “E” is tolerated with “O,” but future Peppol versions relax this restriction.
Can you book purchase invoices that do not come in through Peppol?
Yes, especially during the first three months of the year, if you yourself are active on Peppol and the invoices comply with the regular VAT rules. Recording correctly in your accounts is sufficient.
How is VAT reverse charge displayed in Peppol?
For VAT reverse charge, the code AE is used with 0% VAT. Further processing (reporting, accounting) is done in your own system.
Should the VAT number have an exact format?
Yes, in the UBL, the VAT number must be transmitted without dots and spaces, for example: 0456758458.
Rounding decimals: at the detail level or total level?
Rounding to 2 decimal places is mandatory at both line level and header level. Only price per unit and number may have more decimals. This prevents differences between sender and receiver.
Is there a field for rounding differences?
Yes, Peppol has a field for rounding differences. Often this is not needed because of a small tolerance, but it can be used if the difference is larger and needs to be explicitly reported.
Download our white paper on VAT structure in Peppol
HIGHLIGHTED ARTICLES


