Skip to main content

Country codes (common)

ISO 3166-1 alpha-2 codes for seller, buyer and delivery addresses, with the VAT identifier prefix and EU VAT status of each country.

How these codes are used on invoices

ISO 3166-1 alpha-2 defines the country codes that structured invoices use instead of free text. Receiving systems, ERPs and validators expect exact codes such as DE (Germany), FR (France), NL (Netherlands). Practical subset; ISO 3166-1 contains many more codes.

ISO 3166-1 alpha-2

Practical subset; ISO 3166-1 contains many more codes.

How to use this code list in production

Keep one mapping for country codes across ERP source data, generated XML and validation checks. Lock the allowed values before go-live, map legacy values before export, and make sure finance teams know which business cases require manual review.

Country codes (common)

CodeMeaningNotes
DEGermanyEU member state. Use DE in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with DE.
FRFranceEU member state. Use FR in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with FR.
ITItalyEU member state. Use IT in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with IT.
ESSpainEU member state. Use ES in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with ES.
NLNetherlandsEU member state. Use NL in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with NL.
BEBelgiumEU member state. Use BE in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with BE.
ATAustriaEU member state. Use AT in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with AT.
PLPolandEU member state. Use PL in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with PL.
DKDenmarkEU member state. Use DK in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with DK.
SESwedenEU member state. Use SE in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with SE.
FIFinlandEU member state. Use FI in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with FI.
IEIrelandEU member state. Use IE in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with IE.
PTPortugalEU member state. Use PT in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with PT.
NONorwayEEA member, but outside the EU VAT area. Goods shipped to Norway are exports (VAT category G); Norwegian VAT numbers end in MVA.
CHSwitzerlandOutside the EU. Goods shipped to Switzerland are exports (VAT category G); Swiss VAT numbers have the form CHE-123.456.789 MWST.
GBUnited KingdomOutside the EU VAT area since 2021. Use GB, not UK. Trade in goods with Northern Ireland still follows EU VAT rules, and those VAT IDs start with XI.
USUnited StatesNo VAT system. Goods shipped to the United States are exports (VAT category G); B2B services to US businesses are usually outside the scope of EU VAT (category O).
TRTürkiyeOutside the EU VAT area. Goods shipped to Türkiye are exports (VAT category G); Turkish tax identification numbers (VKN) have 10 digits.
CZCzechiaEU member state. Use CZ in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with CZ.
HUHungaryEU member state. Use HU in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with HU.
RORomaniaEU member state. Use RO in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with RO.
BGBulgariaEU member state. Use BG in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with BG.
GRGreeceEU member state. Use GR in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with EL. The VAT prefix EL differs from the ISO code GR, so do not copy one into the other.
HRCroatiaEU member state. Use HR in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with HR.
SISloveniaEU member state. Use SI in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with SI.
SKSlovakiaEU member state. Use SK in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with SK.
EEEstoniaEU member state. Use EE in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with EE.
LVLatviaEU member state. Use LV in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with LV.
LTLithuaniaEU member state. Use LT in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with LT.
LULuxembourgEU member state. Use LU in the address country fields (BT-40, BT-55, BT-80); VAT identifiers start with LU.

Next step

Create an XRechnung from your PDF and confirm the codes

The converter determines codes from this list for BT-40, BT-55 from the details on the invoice. You see each value before download and can correct it. Already have an XML file? The free validator reports codes outside the list, for example under BR-CL-14, BR-09.

Download requires an account. Subscriptions from €10/month with annual billing (excl. taxes), or €5 per conversion (excl. taxes) without a subscription.

Practical tips before you send an e-invoice

  • Use the exact code from ISO 3166-1 alpha-2 and keep the spelling and casing expected by the standard.
  • Check that the country codes you use match the business case and the related fields on the invoice.
  • Validate the final XRechnung, ZUGFeRD/Factur-X, UBL, or CII file before sending it to the recipient.

Common code-list mistakes

  • Letting free-text values pass through the ERP export instead of mapping them to the official code list.
  • Using a technically valid code without checking whether the recipient profile or country rule actually allows it.
  • Fixing the XML output only, while leaving the upstream ERP source value inconsistent for the next invoice.

Frequently asked questions

Common questions when teams choose country codes for an invoice or an ERP export.

What are country codes used for on an invoice?

ISO 3166-1 alpha-2 is the standardized list behind these codes. A code tells the receiving system exactly which value you mean, so the invoice can be processed automatically in XRechnung, ZUGFeRD/Factur-X, UBL, CII and Peppol workflows.

Which country codes are used most often?

Common examples on this page include DE (Germany), FR (France), NL (Netherlands). The right choice depends on your transaction, tax treatment, recipient requirements, and the invoice profile you are sending.

Where do country codes go in a structured e-invoice?

Enter the code in the structured invoice field that matches its meaning, for example the currency field, VAT category field, payment means field, unit field, or invoice type field. The exact XML path depends on whether you send XRechnung, ZUGFeRD/Factur-X, UBL, or CII.

How do I avoid validation errors with country codes?

Use only values allowed by the relevant implementation guide, keep the code exactly as defined in ISO 3166-1 alpha-2, and provide all related data required by that choice. Many validation errors happen when a code is correct in isolation but inconsistent with the rest of the invoice.

Can I use codes outside this page?

Often yes, but recipients and national profiles frequently accept only a practical subset of the full ISO 3166-1 alpha-2 list. This page focuses on common invoice values, so confirm buyer-specific or country-specific rules before sending production documents.

Download

Use this code list in your systems or validation rules.

Official resources