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.
Tööriistad
UBL validaator ja vigade selgitaja
Leia puuduvad väljad, struktuursed probleemid ja Peppoli probleemid arusaadavate selgitustega.
UBL vaatur
Näitab UBL XML-arvet loetava kokkuvõttena.
Manustatud PDF kontrollija
Kontrollib, kas arvel on kehtiv manustatud PDF manus.
UBL kogusummade kontroll
Kontrollib ridade, maksude ja makstavate kogusummasid LegalMonetaryTotal'i suhtes.
UBL väljade selgitaja
Otsi UBL välju ja loe, mida iga XML-tee tähendab.
Peppol BIS Billing kontroll
Tuvastab Peppol BIS Billing 3.0 arvete tavalisi probleeme.
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.