BR-AE-06 The document level allowance at allowances[0] uses VAT category AE (Reverse charge), so its VAT rate (BT-96) must be 0 (zero), but it is 19
The document level allowance at allowances[0] uses VAT category AE (Reverse charge), so its VAT rate (BT-96) must be 0 (zero), but it is 19. The seller charges no VAT at all on a reverse-charge document — the buyer does. A rate here would be you quoting a percentage for tax you are not accounting for, and the buyer's own rate may differ from yours anyway, since the applicable rate is the one in their member state.
This rule is implemented and its error payload below is real, but the long-form write-up — normative text, worked example, divergence note — is not written yet. Everything the library knows about this rule is on this page. Ask and we will prioritise it.
- Business term
BT-96- Severity
fatal
What the library returns
The exact object in result.errors when this rule fires.
Generated by running @attestwire/en16931, not transcribed:
{
"rule": "BR-AE-06",
"field": "BT-96",
"severity": "fatal",
"message": "The document level allowance at allowances[0] uses VAT category AE (Reverse charge), so its VAT rate (BT-96) must be 0 (zero), but it is 19. The seller charges no VAT at all on a reverse-charge document — the buyer does. A rate here would be you quoting a percentage for tax you are not accounting for, and the buyer's own rate may differ from yours anyway, since the applicable rate is the one in their member state.",
"fix": "Set allowances[0].vatRate to 0, or omit it — this library normalises the rate for category AE either way. If you did mean to charge 19% VAT on this allowance, the category should be S instead, and that will change which breakdown group it nets into.",
"example": "\"vatCategory\": \"AE\", \"vatRate\": 0",
"xpath": "/ubl:Invoice/cac:AllowanceCharge[1]/cac:TaxCategory/cbc:Percent",
"docsUrl": "https://attestwire.com/rules/BR-AE-06"
}
xpath locates the element in the generated UBL document,
which is where a KoSIT or Peppol validator will report the same problem.
A passing value
"vatCategory": "AE", "vatRate": 0The fix
Set allowances[0].vatRate to 0, or omit it — this library normalises the rate for category AE either way. If you did mean to charge 19% VAT on this allowance, the category should be S instead, and that will change which breakdown group it nets into.