Check VAT in UBL invoices
Extracts VAT categories, percentages and amounts from cac:TaxTotal and compares declared VAT with calculated VAT.
Paste or load UBL XML
Common VAT errors in UBL
- Wrong VAT percentage on a line (e.g. 19% instead of 21%).
- VAT amount per category does not match TaxableAmount × Percent / 100.
- Missing TaxCategory ID (e.g. S, AE, K, Z, E, O, G).
- Mixed VAT rates without separate TaxSubtotal blocks.
- Reverse charge (AE) used without the required text/note.
- Exempt VAT (E) used without an exemption reason.
Strumenti
Validatore UBL e spiegatore di errori
Trova campi mancanti, problemi strutturali e Peppol, con spiegazioni in linguaggio semplice.
Visualizzatore UBL
Mostra una fattura UBL XML come un riepilogo leggibile.
Verifica PDF incorporato
Controlla se la fattura ha un allegato PDF incorporato valido.
Verifica totali UBL
Verifica totali di righe, imposte e da pagare rispetto a LegalMonetaryTotal.
Esploratore campi UBL
Cerca campi UBL e leggi cosa significa ogni percorso XML.
Verifica Peppol BIS Billing
Rileva problemi comuni delle fatture Peppol BIS Billing 3.0.
Frequently asked questions
›Why does the calculated VAT differ from the declared VAT?
Most often this is rounding. UBL allows VAT to be rounded per category, and small differences (≤ 0.02) are usually acceptable.
›What does category AE mean?
AE is the reverse-charge category code. With AE the supplier does not charge VAT; the buyer accounts for it. Other zero-VAT codes include K (intra-community), Z (zero rated), E (exempt), G (export), O (outside scope).
What this tool does
The UBL VAT checker walks through every TaxSubtotal and compares the declared TaxableAmount × Percent against the declared TaxAmount per VAT category.
Common UBL and Peppol problems it detects
- Mismatch between declared and calculated VAT per category (S, Z, E, AE, K, G, O).
- Missing TaxCategory/ID, Percent or TaxScheme.
- Reverse-charge (AE) lines that still carry a non-zero VAT percentage.
- Zero-rated lines that are missing the required exemption reason.
Why this matters
VAT errors are the single biggest reason invoices are rejected by tax authorities and Peppol access points. They also create costly reconciliation issues at month-end.
Example: reverse charge with VAT
An intra-EU B2B line uses TaxCategory/ID=AE (reverse charge) but Percent=21 and a non-zero TaxAmount. AE lines must declare Percent=0 and the appropriate TaxExemptionReason or TaxExemptionReasonCode.
How to fix the issue
- For category S (standard), make sure TaxAmount = round(TaxableAmount × Percent / 100).
- For category Z (zero-rated), E (exempt), AE (reverse charge), K (intra-EU) and G (export), set Percent=0 and provide a TaxExemptionReason or TaxExemptionReasonCode.
- Group lines by category and verify the per-category TaxSubtotal totals.
- Re-run the checker to confirm declared and calculated VAT match.
Frequently asked questions
›Which VAT categories are supported?
All EN 16931 UNCL5305 categories: S, Z, E, AE, K, G, O and L/M for special regional schemes.
›Does it cover reverse charge invoices?
Yes. The checker validates AE lines and flags them when they carry a non-zero VAT percentage or amount.