BR-20 The seller tax representative's postal address (BG-12) has no country code (BT-69)
The seller tax representative's postal address (BG-12) has no country code (BT-69). Of everything in that address, the country is the only element with legal effect: it is what identifies the member state in which the representation is registered, and so which authority's rules govern the VAT this invoice reports. A street and a city without a country name a place that the receiving system cannot resolve to a tax jurisdiction.
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-69- 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-20",
"field": "BT-69",
"severity": "fatal",
"message": "The seller tax representative's postal address (BG-12) has no country code (BT-69). Of everything in that address, the country is the only element with legal effect: it is what identifies the member state in which the representation is registered, and so which authority's rules govern the VAT this invoice reports. A street and a city without a country name a place that the receiving system cannot resolve to a tax jurisdiction.",
"fix": "Set taxRepresentative.address.countryCode to the ISO 3166-1 alpha-2 code of the member state where the representative is established — \"FR\", \"IT\", \"ES\" and so on. It is normally the country of the VAT identifier in taxRepresentative.vatId.",
"example": "\"address\": { \"city\": \"Lyon\", \"postalCode\": \"69001\", \"countryCode\": \"FR\" }",
"xpath": "/ubl:Invoice/cac:TaxRepresentativeParty/cac:PostalAddress/cac:Country/cbc:IdentificationCode",
"docsUrl": "https://attestwire.com/rules/BR-20"
}
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
"address": { "city": "Lyon", "postalCode": "69001", "countryCode": "FR" }The fix
Set taxRepresentative.address.countryCode to the ISO 3166-1 alpha-2 code of the member state where the representative is established — "FR", "IT", "ES" and so on. It is normally the country of the VAT identifier in taxRepresentative.vatId.