Attestwire › Rule reference › ATW-VAT-CATEGORY-UNSUPPORTED
ATW-VAT-CATEGORY-UNSUPPORTED Split-payment VAT (category B) is not supported by this library
noun · Attestwire · fatal · BT-151
For a sample invoice, the library reports: Line 1 uses VAT category "B" (split payment), which this build does not support.
- Business term
BT-151- Severity
fatal
The fix
Use category "S" and handle the split-payment mechanics outside this library, or produce the document with a tool that implements the Italian FatturaPA rules. If the supply is not Italian public-sector, "B" is the wrong code regardless.
A passing value
"vatCategory": "S", "vatRate": 22What 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": "ATW-VAT-CATEGORY-UNSUPPORTED",
"field": "BT-151",
"severity": "fatal",
"message": "Line 1 uses VAT category \"B\" (split payment), which this build does not support. \"B\" is a valid EN 16931 code — BR-CL-17 and BR-CL-18 both admit it — but it is the one category of the ten with no rule family of its own beyond BR-B-01 and BR-B-02, and both of those exist only to confine it: BR-B-01 restricts it to domestic Italian invoices, and BR-B-02 forbids it from sharing a document with any other category. Split payment (\"scissione dei pagamenti\") means the Italian public-sector buyer pays the net amount to you and the VAT directly to the Agenzia delle Entrate, so the invoice states VAT that you will never receive. Getting that wrong is not a formatting error, it is a payment that goes to the wrong party.",
"fix": "Use category \"S\" and handle the split-payment mechanics outside this library, or produce the document with a tool that implements the Italian FatturaPA rules. If the supply is not Italian public-sector, \"B\" is the wrong code regardless.",
"example": "\"vatCategory\": \"S\", \"vatRate\": 22",
"xpath": "/ubl:Invoice/cac:InvoiceLine[1]/cac:Item/cac:ClassifiedTaxCategory/cbc:ID",
"docsUrl": "https://github.com/attestwire/en16931#not-implemented-yet"
}
xpath is always a UBL path. On a CII invoice, look for the
matching CII field instead.