Guide

BR-CO-09 error: UK VAT number prefix in Peppol, fixed

BR-CO-09 fires when a VAT number in a Peppol invoice has no valid country prefix. UK numbers need GB (or XI), never UK. The test, edge cases and fixes.

Published 5 min readBy

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. gb123456789 failed 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. GB000000000 passes. So does GD123, 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:

  1. Hard-coded "UK". Some templates build the identifier as "UK" + vrn. Change the constant to GB.
  2. 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.
  3. Lower case or stray characters. Upper-case the first two characters and strip leading spaces.
  4. 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 UK prefix.
  • Make sure seller and buyer VAT numbers are stored or generated with GB or XI in 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.