ErrorEN 16931Manual only

BR-AE-10

A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).

What does this rule mean?

A reverse-charge VAT breakdown (category AE) has no exemption reason.

For reverse charge the invoice must carry a "Reverse charge" reason — as a code (BT-121) or text (BT-120).

BG-23
VAT breakdown (group)
BT-118
VAT category code (UNCL 5305)
BT-120
VAT exemption reason text
BT-121
VAT exemption reason code
Official rule message (standard)

A VAT Breakdown (BG-23) with VAT Category code (BT-118) "Reverse charge" shall have a VAT exemption reason code (BT-121), meaning "Reverse charge" or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).

Where the rule applies

Syntax: CII · UBL

The same rule, expressed twice: UBL and CII name the same fields with different paths. Running a CII file against the UBL rules is why you get errors that mean nothing.

UBL

  • /*/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory[normalize-space(cbc:ID) = 'AE'][cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']

CII

  • //rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:CategoryCode[. = 'AE'][upper-case(../ram:TypeCode) = 'VAT']

Technical test

The rule passes when this Schematron expression holds true:

(../ram:ExemptionReason) or (../ram:ExemptionReasonCode)

How to fix it

Touches amounts, VAT or IBAN. We never change these automatically — correct them in your source data.

Add the "Reverse charge" exemption reason to the AE breakdown.

Correct the affected entry in your XML, then re-check the invoice. Validation runs locally in your browser — your file never leaves your machine.

Check an e-invoice here

Drop an XML or ZUGFeRD PDF file here. Validation runs locally in your browser against EN 16931 — your file never leaves your machine.

100% local — no upload, no account.

Related rules

← Back to the error library