AttestwireRule referenceBR-IC-10

BR-IC-10 An intra-community VAT breakdown must give the matching exemption reason

noun · EN 16931 · fatal · BT-120 / BT-121

For a sample invoice, the library reports: The VAT breakdown for category K (Intra-community supply) must have a VAT exemption reason code (BT-121) meaning "Intra-Community supply", or the VAT exemption reason text (BT-120) "Intra-Community supply" (or the equivalent standard text in another language).

Business term
BT-120 / BT-121
Severity
fatal

The fix

Either remove vatExemptionReasons.K entirely, in which case this library supplies the standard text "Intra-Community supply", or set it to your own wording in the invoice language.

A passing value

the shape this field expects
"vatExemptionReasons": { "K": "Intra-Community supply" }

What the library returns

The full error returned by @attestwire/en16931. It includes the rule ID, affected field and suggested correction. Developers can use this object in their application:

TeachingError
{
  "rule": "BR-IC-10",
  "field": [
    "BT-120",
    "BT-121"
  ],
  "severity": "fatal",
  "message": "The VAT breakdown for category K (Intra-community supply) must have a VAT exemption reason code (BT-121) meaning \"Intra-Community supply\", or the VAT exemption reason text (BT-120) \"Intra-Community supply\" (or the equivalent standard text in another language). You set vatExemptionReasons.K to an empty value, which suppresses the wording this library would otherwise supply. The reason is what tells the buyer — and their auditor — why an invoice line carries no VAT; a zero with no explanation is indistinguishable from a mistake.",
  "fix": "Either remove vatExemptionReasons.K entirely, in which case this library supplies the standard text \"Intra-Community supply\", or set it to your own wording in the invoice language.",
  "example": "\"vatExemptionReasons\": { \"K\": \"Intra-Community supply\" }",
  "xpath": "/ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason",
  "docsUrl": "https://attestwire.com/rules/BR-IC-10"
}

xpath is always a UBL path. On a CII invoice, look for the matching CII field instead.