# BR-CO-9 VAT identifiers must carry an ISO 3166-1 alpha-2 country prefix

The Seller VAT identifier (BT-31), Seller tax representative VAT identifier (BT-63) and Buyer VAT identifier (BT-48) must each begin with an ISO 3166-1 alpha-2 country code (for example "DE", "FR", "IT"). Exceptions: Greece may use "EL", and "XI" (Northern Ireland) is also accepted.

## Problem Description

> **ERROR**: EN 16931 calculation and consistency rule (BR-CO)

> **Where BR-CO-09 is checked**
>
> A validator checks an e-invoice in stages. First the file must be well-formed XML that matches the UBL or CII schema (XSD). Then the EN 16931 business rules run: BR core rules, BR-CO calculations, BR-CL code lists, BR-DEC decimals and VAT-category rules such as BR-S. Next come the national or network rules that BT-24 selects: BR-DE for XRechnung, PEPPOL-EN16931 for Peppol BIS Billing. The report lists every failed rule: one error means reject, warnings alone still mean accept. BR-CO-09: EN 16931 calculation rule, reported in the stage “EN 16931 rules”.

## Context and Significance

The validator only checks whether the first two characters are a code from its country list (ISO 3166-1 alpha-2 plus EL and XI). It does not check the rest of the number or whether the number is registered; that is what a VIES lookup does. Peppol routing does not use the VAT identifier but the electronic address (BT-34/BT-49). The error usually occurs when the ERP stores the national number without country code, uses "UK" as prefix, or puts a national tax number (for example a German Steuernummer) into the VAT identifier field instead of the Seller tax registration identifier (BT-32).

## Solution

Prefix every VAT identifier with the correct two-letter country code, for example "DE123456789" instead of "123456789". Use "EL" for Greek and "GB" or "XI" for UK VAT numbers, never "UK". In UBL the value is cac:PartyTaxScheme/cbc:CompanyID (with cac:TaxScheme/cbc:ID = VAT); in CII it is ram:SpecifiedTaxRegistration/ram:ID with schemeID="VA".

- [Validate XML](/en/xrechnung-validator?source=resource&rule=BR-CO-9)
- [Convert invoice](/en/pdf-to-xrechnung?source=resource&rule=BR-CO-9)

## Valid Examples

- BT-31 = "DE123456789"
- BT-48 = "FR12345678901"
- BT-63 = "IT12345678901"
- BT-48 = "EL123456789" (Greece)

## Invalid Examples

- BT-31 = "123456789" (no DE prefix)
- BT-48 = "UK123456789" (UK is not an ISO 3166-1 alpha-2 code; use GB, or XI for Northern Ireland)
- BT-63 = "EU123456789" (EU is not an ISO 3166-1 alpha-2 country code)

## Affected Fields

- [BT-31 Seller VAT identifier](/resources/xrechnung/bt-31-seller-vat-identifier)
- [BT-48 Buyer VAT identifier](/resources/xrechnung/bt-48-buyer-vat-identifier)
- [BT-63 Seller tax representative VAT identifier](/resources/xrechnung/bt-63-seller-tax-representative-vat-identifier)

## Related Rules

- [BR-CO-26](/resources/kosit-validator-errors/br-co-26-seller-must-be-identifiable)
- [BR-DE-16](/resources/kosit-validator-errors/br-de-16-seller-tax-registration-required-for-tax-categories)

## Validation Tools

- [Official KoSIT Validator](https://github.com/itplr-kosit/validator): Run the official KoSIT validator with the XRechnung configuration to check EN 16931 and XRechnung rules.
- [Convert PDF to XRechnung](/pdf-to-xrechnung): Find validation errors during conversion and review each correction.

## Related Resources

- [Official Specification](https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-tc434/)
- [Test Suite](https://github.com/itplr-kosit/xrechnung-testsuite)
- [All validation errors](/resources/kosit-validator-errors): Overview of the EN 16931, XRechnung and Peppol validation rules explained here.
