Rule reference

BR-AG-06 The document level allowance at allowances[1] uses VAT category M (Tax on production, services and imports in Ceuta and Melilla (IPSI)), so its VAT rate (BT-96) must be 0 (zero) or greater than zero, but it is missing

The document level allowance at allowances[1] uses VAT category M (Tax on production, services and imports in Ceuta and Melilla (IPSI)), so its VAT rate (BT-96) must be 0 (zero) or greater than zero, but it is missing. IPSI is charged, so the adjustment carries a rate, and that rate may be 0 as well as positive — the Ceuta and Melilla tariffs include a zero band. An absent rate would leave the adjustment untethered from the tax the document says applies to it.

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:

TeachingError
{
  "rule": "BR-AG-06",
  "field": "BT-96",
  "severity": "fatal",
  "message": "The document level allowance at allowances[1] uses VAT category M (Tax on production, services and imports in Ceuta and Melilla (IPSI)), so its VAT rate (BT-96) must be 0 (zero) or greater than zero, but it is missing. IPSI is charged, so the adjustment carries a rate, and that rate may be 0 as well as positive — the Ceuta and Melilla tariffs include a zero band. An absent rate would leave the adjustment untethered from the tax the document says applies to it.",
  "fix": "Set allowances[1].vatRate to the IPSI percentage the adjusted supply bears, as a number. Zero is a legal value here — unlike category S — but the term must be present, because a missing rate and a rate of zero are different claims about a tax that is genuinely levied.",
  "example": "\"vatCategory\": \"M\", \"vatRate\": 10",
  "xpath": "/ubl:Invoice/cac:AllowanceCharge[2]/cac:TaxCategory/cbc:Percent",
  "docsUrl": "https://attestwire.com/rules/BR-AG-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

the shape this field expects
"vatCategory": "M", "vatRate": 10

The fix

Set allowances[1].vatRate to the IPSI percentage the adjusted supply bears, as a number. Zero is a legal value here — unlike category S — but the term must be present, because a missing rate and a rate of zero are different claims about a tax that is genuinely levied.

Arrived from a stack trace? The docsUrl on every error links straight here. Something wrong on this page — tell us.