Guides

Document-level allowances and charges

Updated 21 August 2026

A commercial discount or shipping costs can apply to the whole invoice, not only to one line: Factur-X sorts them into two distinct groups, the allowance (BG-20) and the charge (BG-21), and each carries, in its own block, an amount, a VAT category and a reason. A tool that reduces this to a plain number writes an incomplete document, refused over a structure the displayed total gives no hint of.

What tells an allowance from a charge. The same XML block serves both: an indicator (BG-20-0 or BG-21-0) says whether it lowers or raises the total. That indicator appears exactly once, never twice, on an allowance as much as on a charge.

The amount, and its currency. Both carry an amount (BT-92 for the allowance, BT-99 for the charge), and only one: a block with no amount fails just as one with two does. That amount does not carry its own currency code; the invoice’s (BT-5) applies everywhere, and writing one here, even a correct one, is one too many. When the allowance or charge is calculated as a percentage, the base amount (BT-93 or BT-100) follows the same rule: no currency there either.

The allowance or charge's VAT. Each carries its own VAT block, and only one: the category code (BT-95 for the allowance, BT-102 for the charge), which ties it to a breakdown (BG-23) exactly like an invoice line, and the rate that goes with it. A tax type code sits alongside that block; its value never varies, always “VAT”.

The reason. An allowance or charge must say why: free text is enough, a code is enough too, but one of the two is required. Leaving out both is an error, not a detail to tidy up later.

None of this shows on a well laid out PDF: the displayed total can be correct and the file refused all the same, over a missing VAT block or an indicator written twice. Drop your invoice into Pruvue: the report names the failing rule, quotes its official text and explains it in French, in your browser, with the file going nowhere. For VAT breakdown in general, see VAT errors; for totals, see totals.

Open the applicationPruvue runs in your browser: no upload, no account.

Sources: EN 16931 (CEN), groups BG-20 and BG-21 · Factur-X specification 1.09.2 and its Schematron, ApplicableHeaderTradeSettlement block (FNFE-MPE, fnfe-mpe.org).