Key points
- BR-CO-09 is a fatal EN 16931 rule: every VAT identifier must start with an ISO 3166-1 alpha-2 country code, or EL for Greece.
- UK VAT numbers must start with GB (or XI for Northern Ireland goods trade with the EU). UK123456789 fails because UK is not an ISO country code.
- The rule checks only the first two characters, so it does not prove a VAT number is real or correctly formatted.
- It applies to the buyer's VAT number as well as the seller's and the tax representative's.
- HMRC's Check a UK VAT number service and API confirm whether a number is registered; validation rules do not.
BR-CO-09 means one of the VAT numbers in your Peppol invoice does not start with a recognised two-letter country code. For a UK business the fix is almost always the same: write the number as GB123456789, not UK123456789 and not 123456789. The rule is fatal, so the invoice is rejected until every VAT identifier has a valid prefix.
The rule text, from the EN 16931 rules published with Peppol BIS Billing 3.0.21, is:
"The Seller VAT identifier (BT-31), the Seller tax representative VAT identifier (BT-63) and the Buyer VAT identifier (BT-48) shall have a prefix in accordance with ISO code ISO 3166-1 alpha-2 by which the country of issue may be identified. Nevertheless, Greece may use the prefix 'EL'."
What the rule actually tests
The UBL test is simpler than the text suggests. It runs on every cac:PartyTaxScheme whose cac:TaxScheme/cbc:ID is VAT, and checks only the first two characters of cbc:CompanyID:
context: //cac:PartyTaxScheme[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']
test: contains(' 1A AD AE ... GB GD ... XI YE YT ZA ZM ZW ', substring(cbc:CompanyID,1,2))
In the current artefact (validation artefacts 1.3.16 for BIS 3.0.21, mandatory from 17 August 2026) the list includes GB, XI, IM, JE, GG, EL and GR. It does not include UK.
Three consequences matter:
- It is case sensitive.
gb123456789failed in our test. The comparison is on the raw text. - It checks the buyer too. If your customer master data holds EU or UK buyer VAT numbers without prefixes, the buyer's number fails, not yours.
- It does not check the number. Anything that starts with a listed code passes.
GB000000000passes. So doesGD123, because GD is the ISO code for Grenada.
What we tested
We changed one value in a valid UK invoice (our UK Peppol XML example) and ran it through the BIS 3.0.21 rules, including the live service behind our e-invoice validator.
| Seller VAT identifier (BT-31) | Result |
|---|---|
GB123456789 |
Passes |
XI123456789 |
Passes |
UK123456789 |
BR-CO-09 fatal |
123456789 |
BR-CO-09 fatal |
gb123456789 |
BR-CO-09 fatal |
123456789GB |
BR-CO-09 fatal |
GB 123 4567 89 |
Passes (prefix only is checked) |
Changing the buyer's GB987654321 to 987654321 produced the same BR-CO-09 error.
How to fix it
Put the full number, prefix included, in cbc:CompanyID:
<cac:PartyTaxScheme>
<cbc:CompanyID>GB123456789</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
Then check where the bad value came from:
- Hard-coded "UK". Some templates build the identifier as
"UK" + vrn. Change the constant toGB. - Number stored without a prefix. HMRC itself treats the VAT registration number as digits: its Check a UK VAT number API takes "A 9-digit or 12-digit number" without a prefix. If your ERP stores the bare number, add the prefix when you generate the invoice, not by hand.
- Lower case or stray characters. Upper-case the first two characters and strip leading spaces.
- Customer master data. Fix EU and UK buyer VAT numbers at source. Our master data clean-up guide covers the wider exercise.
Spaces inside the number pass BR-CO-09, but we suggest removing them. Many receiving systems match VAT numbers as strings, and the 9932 Peppol participant ID built from the same number is a separate identifier that must match what is registered. See UK Peppol EAS codes: 9932 and 0088.
UK prefixes: GB, XI and the special cases
| Situation | Prefix in BT-31 | Notes |
|---|---|---|
| Normal UK VAT registration | GB |
HMRC's API describes UK numbers as 9 or 12 digits |
| Northern Ireland business, goods to or from the EU | XI |
HMRC: show "The letters 'XI' ... as a prefix to your VAT registration number" on these invoices |
| Isle of Man VAT registration | GB |
Manx numbers are issued in the UK series. See Peppol IDs for the Isle of Man |
| Government departments and health authorities | GD / HA (see below) |
Recorded manually by HMRC |
The XI rule comes from HMRC's guidance on VAT on movements of goods between Northern Ireland and the EU. For services, and for trade within the UK, NI businesses use their GB number. Our Northern Ireland Peppol ID guide explains why XI is a VAT prefix and not a Peppol scheme.
Government and NHS bodies. HMRC's VAT Registration Manual says government departments and similar bodies "are recorded manually, with a prefix 'GD' (for government departments) or 'HA' (for health authorities)" (VATREG12450). How such a number should be written in an e-invoice is not set out in that guidance. Note what BR-CO-09 does with it: GD... passes (GD is Grenada's code) and HA... fails (HA is not an ISO code). If a public sector buyer gives you a GD or HA reference, ask them which VAT identifier they want in BT-48, or whether to leave BT-48 out. We have not found HMRC guidance on this for e-invoices.
A valid prefix is not a valid number
Because BR-CO-09 only reads two characters, a passing invoice can still carry a wrong or made-up VAT number. To confirm that a UK number is registered:
- use HMRC's Check a UK VAT number service, which also shows the registered name and address, or
- call the Check a UK VAT number API v2 from your software. Version 2 is behind authentication: "Version 1 was removed on 17 February 2025" and you must register on HMRC's Developer Hub.
Doing this when you onboard a customer or supplier is cheaper than finding out from a rejected invoice. The supplier onboarding guide has a checklist.
Not yet settled for the UK
BR-CO-09 is an EN 16931 rule, applied today because Peppol BIS Billing 3.0 builds on EN 16931. The UK has confirmed Peppol as the core network for the April 2029 mandate but has not published a UK data specification. Whether a UK specification would add a format or check-digit rule for GB numbers is not yet confirmed. Some countries already do this in Peppol: release 3.0.21 added warnings that Dutch VAT numbers "should have the format NL123456789B12".
What to do now
- Search your invoice templates for a hard-coded
UKprefix. - Make sure seller and buyer VAT numbers are stored or generated with
GBorXIin upper case. - Run a sample through the e-invoice validator and the VAT invoice checker.
- Verify new customer and supplier numbers with HMRC before the first invoice.
More rule-by-rule fixes: common Peppol validation errors.
Frequently asked questions
What does BR-CO-09 mean?
It means a VAT identifier in the invoice (seller, seller's tax representative or buyer) does not start with a valid two-letter ISO 3166-1 country code. Greece may use EL. The rule is fatal, so the invoice is rejected.
Should a UK VAT number start with GB or UK in Peppol?
GB. UK is not an ISO 3166-1 alpha-2 code and fails BR-CO-09. Northern Ireland businesses use XI where HMRC requires it for goods traded with the EU.
Does BR-CO-09 check that the VAT number is valid?
No. It only checks the first two characters against a list of country codes. GB000000000 passes. Use HMRC's Check a UK VAT number service or API to confirm a number is registered.
Why does my buyer's VAT number trigger BR-CO-09?
The rule applies to every PartyTaxScheme whose tax scheme is VAT, including the buyer's (BT-48). A buyer VAT number stored without its prefix, such as 987654321, fails.
Spotted a mistake? Report an error. einvoices.uk is an independent publication and is not affiliated with HMRC. Details of the mandate may change; check the sources and official GOV.UK guidance before acting.