Faktura

Find out why your e-invoice was rejected.

Upload a UBL or CII invoice — or a Factur-X / ZUGFeRD PDF, or a ZIP of up to 200 invoices — and get the rule that failed, what it means in plain English, and how to fix it. Free, no account, nothing stored.

No invoice to hand? Try a sample with a VAT rounding error or the same invoice against Peppol rules, or against XRechnung (Germany). Or grab a sample invoice to test your own code with.

2 fatal errors

UBL syntax · EN 16931 (core)

VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.

WhyIn a VAT breakdown group the VAT category tax amount (BT-117) does not equal the taxable amount (BT-116) multiplied by the rate (BT-119), rounded to 2 decimals.
How to fixSet BT-117 = round(BT-116 x BT-119 / 100, 2) per breakdown group. Round the product itself with half-up rounding - summing per-line VAT amounts drifts by a cent or two. BT-119 is a percentage (21, not 0.21). Note the EN core rule tolerates a deviation of up to 1.00 in the invoice currency, so if this fires your figure is off by more than a rounding cent - look for a wrong rate or a taxable amount that excludes an allowance. National profiles (XRechnung, Peppol BIS, KSeF) routinely tighten this to the exact cent.
  24     <cbc:TaxAmount currencyID="EUR">66.66</cbc:TaxAmount>
  25     <cac:TaxSubtotal>
  26       <cbc:TaxableAmount currencyID="EUR">333.30</cbc:TaxableAmount>
line 25 · /Invoice/TaxTotal/TaxSubtotal
fatalBR-S-09

The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119).

WhyIn the VAT breakdown group for standard rated VAT (category S), the VAT category tax amount (BT-117) does not equal the taxable amount (BT-116) times the rate (BT-119).
How to fixSet BT-117 = round(BT-116 x BT-119 / 100, 2) for the S group. This rule usually fires together with BR-CO-17 - fix the arithmetic once and both clear. If BT-116 itself is wrong, fix that first (see BR-S-08), because BT-117 is derived from it.
  27       <cbc:TaxAmount currencyID="EUR">66.66</cbc:TaxAmount>
  28       <cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>22</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>
  29     </cac:TaxSubtotal>
line 28 · /Invoice/TaxTotal/TaxSubtotal/TaxCategory

1,722 rules explained

Every EN 16931 and Peppol BIS rule has its own reference page with the cause and the fix.

Hybrid PDFs, wrapper included

Factur-X and ZUGFeRD PDFs are unpacked and the XML checked — plus the container itself: /AF, /AFRelationship and the XMP profile declaration, which almost nothing else looks at.

Profiles that actually reject you

An invoice can be valid EN 16931 and still bounce off Peppol or XRechnung. The Peppol check adds the national rules for DE, DK, GR, IS, IT, NL, NO and SE automatically, from the seller's country.

Checked against the official corpus

Passes 1,142 of 1,142 assertions in CEN's own EN 16931 test suite — the same corpus the standard is validated with.

Who must comply, and when

Country-by-country mandate deadlines — Belgium, Poland, France, Germany, Slovenia and the rest.