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.
Инструменти
UBL валидатор и обяснител на грешки
Намерете липсващи полета, структурни проблеми и Peppol проблеми с обяснения на разбираем език.
UBL преглед
Показва UBL XML фактура като четима обобщена форма.
Проверка на вграден PDF
Проверява дали фактурата има валиден вграден PDF прикачен файл.
Проверка на UBL суми
Проверява сумите на редовете, данъците и за плащане спрямо LegalMonetaryTotal.
Обяснител на UBL полета
Търсете UBL полета и прочетете какво означава всеки XML път.
Проверка на Peppol BIS Billing
Открива често срещани проблеми във фактури 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.