Attestwire › Rule reference › BR-AG-03
BR-AG-03 A Ceuta and Melilla IPSI allowance requires a seller or tax representative tax ID
noun · EN 16931 · fatal · BT-31 / BT-32
For a sample invoice, the library reports: This invoice contains a document level allowance (BG-20) whose VAT category code (BT-95) is M (Tax on production, services and imports in Ceuta and Melilla (IPSI)) — allowances[1] — so the invoice must contain the seller VAT identifier (BT-31), the seller tax registration identifier (BT-32) and/or the seller tax representative VAT identifier (BT-63).
- Business term
BT-31 / BT-32- Severity
fatal
The fix
Set seller.vatId (e.g. "ESX1234567X"), or seller.taxRegistrationId, or supply the taxRepresentative group.
A passing value
"seller": { "vatId": "ESX1234567X" }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:
{
"rule": "BR-AG-03",
"field": [
"BT-31",
"BT-32"
],
"severity": "fatal",
"message": "This invoice contains a document level allowance (BG-20) whose VAT category code (BT-95) is M (Tax on production, services and imports in Ceuta and Melilla (IPSI)) — allowances[1] — so the invoice must contain the seller VAT identifier (BT-31), the seller tax registration identifier (BT-32) and/or the seller tax representative VAT identifier (BT-63). IPSI is the tax on production, services and imports levied in Ceuta and Melilla, which sit outside both the EU VAT area and the customs union. As with IGIC, the tax on the adjusted supply is real and collected, so the seller has to be identifiable to the administration that levies it.",
"fix": "Set seller.vatId (e.g. \"ESX1234567X\"), or seller.taxRegistrationId, or supply the taxRepresentative group.",
"example": "\"seller\": { \"vatId\": \"ESX1234567X\" }",
"xpath": "/ubl:Invoice/cac:AllowanceCharge[2]/cac:TaxCategory/cbc:ID",
"docsUrl": "https://attestwire.com/rules/BR-AG-03"
}
xpath is always a UBL path. On a CII invoice, look for the
matching CII field instead.