Check UBL invoice totals
Compare the sum of invoice lines, VAT and payable amount against the LegalMonetaryTotal block. Small rounding differences (≤ 0.02) are tolerated.
Paste or load UBL XML
Likely causes of mismatches
- Per-line rounding accumulates across many lines.
- VAT was calculated per line and per category, leading to small differences.
- An allowance (discount) or charge was not included in the totals.
- Different currencyID values were used on different amounts.
- Gross prices were confused with net prices (BT-146/BT-148 confusion).
- A prepaid amount or payable rounding amount is missing.
Nástroje
Validátor UBL a vysvětlovač chyb
Najděte chybějící pole, strukturální problémy a Peppol problémy s vysvětlením v běžné češtině.
Prohlížeč UBL
Zobrazí fakturu UBL XML jako čitelný přehled.
Kontrola vloženého PDF
Zkontroluje, zda má faktura platnou vloženou přílohu PDF.
Kontrola DPH UBL
Porovnává deklarovanou a vypočítanou DPH podle kategorií.
Průvodce poli UBL
Hledejte pole UBL a přečtěte si, co jednotlivá XML cesta znamená.
Kontrola Peppol BIS Billing
Detekuje běžné problémy faktur Peppol BIS Billing 3.0.
Frequently asked questions
›What tolerance is used?
Differences within 0.02 of the document currency are treated as acceptable rounding.
›Why do my totals differ by a cent?
Per-line rounding, VAT rounding, or unincluded allowances/charges are the most common causes.
What this tool does
The UBL totals checker recomputes line, tax, charge, allowance and rounding amounts and compares them against the values declared in LegalMonetaryTotal.
Common UBL and Peppol problems it detects
- Sum of LineExtensionAmount does not equal LegalMonetaryTotal/LineExtensionAmount.
- TaxExclusiveAmount + TaxAmount ≠ TaxInclusiveAmount.
- PayableAmount does not match TaxInclusiveAmount − PrepaidAmount + PayableRoundingAmount.
- Rounding differences caused by per-line versus per-document VAT rounding.
Why this matters
Even a one-cent mismatch can cause a Peppol access point to reject the invoice. Many ERP systems silently accept the invoice but then fail to post it to the ledger.
Example: forgotten ChargeTotalAmount
Lines sum to 100.00 and VAT is 21.00, but PayableAmount is 126.00. A 5.00 shipping charge was added in LegalMonetaryTotal but never declared as ChargeTotalAmount, so the checker flags the 5.00 delta.
How to fix the issue
- Declare every surcharge as cac:AllowanceCharge with ChargeIndicator=true and aggregate it in ChargeTotalAmount.
- Declare discounts symmetrically with ChargeIndicator=false and AllowanceTotalAmount.
- If you round VAT per line, also round at the document level consistently and use PayableRoundingAmount for any leftover cent.
- Re-run the checker until all green.
Frequently asked questions
›Why is my invoice off by one cent?
Almost always a rounding rule. Most accounting systems round VAT per line; if the document-level VAT is rounded differently, use PayableRoundingAmount to absorb the difference.
›Does the checker support credit notes?
Yes. UBL 2.x CreditNote documents are supported with the same logic.