What is this page about: How to register an entity on the Peppol network, what you need on your customer records to send to them, and how Light handles the country-specific quirks that come up on Peppol. This article covers what is specific to Peppol. The wizard, registration statuses and EDIFACT codes are the same everywhere and are explained in E-invoicing in Light.
On this page
- At a glance
- What is Peppol?
- Getting registered
- What you need to fill in
- How a Peppol address is built
- Which code to use, by country
- Countries with something extra to know
- Document rules
- Credit notes
- Limits
- FAQ and troubleshooting
- Related articles
At a glance
| Item | Detail |
|---|---|
| Countries | 40+, across Europe and beyond |
| Kind of network | Delivery. The document travels to your customer |
| Set up yourself | Yes |
| Sending / receiving | Both, or sending only |
| Address issued | Yes. EAS code and e-invoice address, filled in automatically |
What is Peppol?
Peppol (Pan-European Public Procurement OnLine) is an open network for exchanging business documents. It is not run by any one tax authority. Certified service providers connect to it and route documents between participants, in much the same way email providers route mail.
Because it is a delivery network, both you and your customer need an address on it. Documents travel in UBL XML built to the EN 16931 European standard, which is what makes an invoice sent from Sweden readable by a system in Portugal.
Joining costs nothing. Many EU countries now require Peppol for invoicing public bodies, and several are extending that to business-to-business invoicing.
Getting registered
Peppol is the one network where you supply the verification, by proving your company owns the address being registered.
- Make sure the entity's country, VAT number and business registration number are filled in
- Open the entity, and in the E-invoicing section click + Add
- Choose Peppol, and choose whether you want Sending and receiving or Sending only
- When the wizard asks for verification, upload a proof-of-ownership document. It needs to be a PDF, up to 10 MB, that clearly shows your company owns the business it says it does
- Wait. The registration sits at Pending verification while your document is checked, moves to Processing, then reaches Active
- Once it is Active, Light writes your EAS code and e-invoice address onto the entity
Your Peppol address is unique to your organisation and is how everyone else on the network reaches you.
If the registration ends in Error, a Retry verification button appears. An unclear or incomplete verification document is the usual cause.
Sending only skips the receiving side. Choose it if you issue invoices over Peppol but take delivery of supplier invoices some other way. It leaves any existing receiving arrangement in place rather than removing it.
What you need to fill in
On your entity
| Field | Needed for | Notes |
|---|---|---|
| Country | Registration | Any Peppol country |
| VAT number | Registration | |
| Business registration number | Sending | Required on every Peppol invoice |
| EAS code, E-invoice address | Filled in for you when registration completes |
On each customer you invoice
| Field | Notes |
|---|---|
| E-invoice network | Set to Peppol |
| EAS code | What kind of identifier their address is |
| E-invoice address | Their identifier on the network |
| VAT number | Required |
| Business registration number | Required, with one exception. See Germany below |
| Billing address | Required |
| Postal code | Required |
| Customer type | Business, government or consumer. This changes what is required |
An invoice will not send if any of these is missing, and the error message names the field.
How a Peppol address is built
Every Peppol address has the same shape:
<EAS code>:<identifier value>
For example, 0007:5560360073 is a Swedish organisation number.
The EAS code is the four-digit prefix saying what kind of identifier follows. The value is the identifier itself, never with a country prefix, never with spaces or dashes.
| Validity | Example |
|---|---|
| Valid | 0192:999888777 |
| Invalid | 192:999888777, because the leading zero matters |
| Invalid | 0192-999888777, because the separator must be a colon |
| Invalid | INVALIDID, because there is no scheme |
Two code lists are in play, and mixing them up is a common cause of rejection. Codes in the
0xxxrange are national identifier schemes: company registers, GLN, LEI. Codes in the9xxxrange are VAT and tax schemes. Some countries have both and either is valid, some have only one. Four countries (Denmark, Norway, Iceland and Sweden) have no VAT scheme code at all and use their national register code instead. If someone hands you a99xxcode for one of those, it is wrong.
Which code to use, by country
Where two codes are listed, either identifies the same business, but they are not the same Peppol participant. A company registered under one is not automatically reachable under the other. Use whichever your customer tells you they are registered under.
| Country | Code | Identifier | Example |
|---|---|---|---|
| Austria | 9914, 9915, 9919 | VAT, government, KUR | 9914:ATU12345678 |
| Belgium | 0208, 9925 | KBO/BCE enterprise no., VAT | 0208:0267300029 |
| Bulgaria | 9926 | VAT | 9926:BG123456789 |
| Croatia | 9934 | VAT (OIB) | 9934:HR12345678901 |
| Cyprus | 9928 | VAT | 9928:CY12345678L |
| Czech Republic | 9929 | VAT | 9929:CZ12345678 |
| Denmark | 0184 | CVR (DIGSTORG) | 0184:13585628 |
| Estonia | 9931, 0191 | VAT, registry code | 9931:EE100123456 |
| Finland | 0212, 0213 | Y-tunnus, VAT | 0212:12345678 |
| France | 9957 | VAT | 9957:FR40303265045 |
| Germany | 9930, 0204 | VAT, Leitweg-ID for public sector | 9930:DE123456789 |
| Greece | 9933 | VAT, prefixed EL not GR | 9933:EL123456789 |
| Hungary | 9910 | VAT | 9910:HU12345678 |
| Iceland | 0196 | Kennitala | 0196:1203748589 |
| Ireland | 9935 | VAT | 9935:IE1234567T |
| Italy | 0211, 0210, 0201, 0202 | Partita IVA, Codice Fiscale, IPA for public admin, PEC | 0211:IT01234567890 |
| Latvia | 9939, 0218 | VAT, unified reg. no. | 9939:LV12345678901 |
| Liechtenstein | 9936 | VAT | 9936:CHE123456789 |
| Lithuania | 9937, 0200 | VAT, legal entity code | 9937:LT123456789 |
| Luxembourg | 9938 | VAT | 9938:LU12345678 |
| Malta | 9943 | VAT | 9943:MT12345678 |
| Netherlands | 9944, 0190 | VAT, OIN for government (20 digits) | 9944:NL123456789B01 |
| Norway | 0192 | Organisasjonsnummer | 0192:991825827 |
| Poland | 9945 | VAT | 9945:PL1234567890 |
| Portugal | 9946 | VAT (NIF) | 9946:PT501964843 |
| Romania | 9947 | VAT | 9947:RO12345678 |
| Slovakia | 9950 | VAT | 9950:SK1234567890 |
| Slovenia | 9949 | VAT | 9949:SI12345678 |
| Spain | 9920 | VAT / CIF / NIF | 9920:ESA12345678 |
| Sweden | 0007 | Organisationsnummer, 10 digits | 0007:5560360073 |
| Switzerland | 9927 | VAT (UID) | 9927:CHE123456789MWST |
| United Kingdom | 9932 | VAT | 9932:GB123456789 |
| Albania, Andorra, Bosnia, Montenegro, North Macedonia, San Marino, Serbia, Turkey, Vatican | 9923, 9922, 9924, 9941, 9942, 9951, 9948, 9952, 9953 | VAT | 9952:TR1234567890 |
| Australia | 0151 | ABN | 0151:51824753556 |
| New Zealand | 0088 | NZBN, in GLN format | 0088:9429000000000 |
| Singapore | 0195 | UEN | 0195:200012345A |
| Japan | 0188, 0221 | Corporate Number, Qualified Invoice Issuer | 0221:T1234567890123 |
| Malaysia | 0230 | National e-invoicing framework | 0230:C12345678901 |
| United Arab Emirates | 0235 | TIN | 0235:100123456700003 |
| United States | 9959, 0060 | EIN, D-U-N-S | 9959:123456789 |
| Any country | 0088, 0199 | GS1 GLN, LEI | 0088:7300009000009 |
Deprecated codes, do not use
These have been removed from the Peppol code list. A customer still quoting one has out-of-date information.
| Old code | Use instead |
|---|---|
| 9906, Italy VAT | 0211 |
| 9907, Italy Codice Fiscale | 0210 |
| 9955, Sweden VAT | 0007, with the 10-digit organisation number |
Countries with something extra to know
Germany, public sector. German public bodies are addressed by their Leitweg-ID under 0204, never by VAT number. Set the customer's type to Government and their EAS code to 0204. Light then does two things automatically: it omits the business registration number, which German public bodies do not have, and it uses the Leitweg-ID as the invoice's buyer reference, which they require.
Norway. No VAT scheme code exists. The nine-digit organisation number under 0192 is the standard. Norwegian VAT numbers displayed with an MVA suffix are the same digits plus a label, so strip the suffix. See the EHF article.
Denmark. No VAT scheme code either, so the CVR number under 0184 is the standard. Denmark also has its own national network, Nemhandel, which is interoperable with Peppol, so a Peppol-registered sender can reach Danish receivers. Danish participants often publish a GLN rather than a CVR-based address, so use whichever they give you.
Italy. Peppol addressing is not how Italian domestic invoices are routed. Those go through SDI, which uses its own codes. See the SDI article.
Belgium. Both 0208 and 9925 are in active use and identify the same company, but they are separate Peppol participants. Ask your customer which one they are registered under rather than deriving one from the other.
Greece. The Greek VAT prefix is EL, not GR. 9933:GR123456789 will not resolve.
Finland. Finland also has a domestic network, Finvoice, which uses OVT identifiers and operator IDs. Light supports Finvoice as its own network, so a customer who gives you an OVT identifier and an operator ID is describing a Finvoice address rather than a Peppol one. Set that customer's e-invoice network to Finvoice, or ask them for their Peppol address if you would rather reach them that way.
Luxembourg. Luxembourg's business register has no national scheme code, so Luxembourgish companies are identified by VAT number and routed under 9938. Some validators wrongly reject 9938. If a Luxembourgish invoice is refused on the scheme code, raise it with us rather than changing the customer's data.
Faroe Islands and Greenland. Part of the Kingdom of Denmark, but with their own identifiers. They are handled through Nemhandel rather than Peppol, so see that article.
Checking an address before you send
An address that is correctly formatted still will not work if the recipient is not registered. The Peppol Directory lets you look one up. A match is a strong signal the address is real. No match is inconclusive, since participants can choose not to be listed.
Document rules
Peppol imposes no format on your document numbers.
Tax codes are translated from their EDIFACT code into the EN 16931 classification, and every line without VAT is stamped with the reason it has none. The standard requires an explicit exemption reason, not just an absent rate.
| EDIFACT code | On the Peppol invoice |
|---|---|
| S | Standard rate, at the tax code's percentage |
| Z | Zero rated |
| E | Exempt, with an exemption reason |
| AE | Reverse charge, with a reverse-charge reason |
| K | Intra-community supply, with the corresponding reason |
| G | Export, with an export reason |
| O | Outside scope, marked as not subject to VAT |
| L | Canary Islands IGIC, sent as its own tax category rather than as VAT |
| M | Ceuta/Melilla IPSI, sent as its own tax category rather than as VAT |
A line with no tax code at all is sent as exempt.
Payment details. Bank transfer and direct debit are conveyed as SEPA credit transfer and direct debit respectively, along with the IBAN, BIC and bank name from the entity's bank account. Invoices paid by Stripe or Airwallex carry no payment instruction, because those are settled outside the banking instruction the invoice would describe.
Delivery address. If a customer has a shipping address that differs from their billing address, it is included on the invoice as the delivery address. If they are the same, it is left off.
Credit notes
Credit notes go over Peppol the same way invoices do, with the same field requirements. There is no special linking step. A credit note references the invoice it corrects through the normal invoice reference.
Limits
- Finvoice is a separate network. A Finnish customer reachable only by OVT identifier is on Finvoice, not Peppol. See the country note above.
- Peppol reaches Peppol participants only. A customer who is not registered on the network cannot be invoiced through it, however complete their record in Light is.
- Sending to a country Light has not yet declared an identifier scheme for will be refused rather than guessed at. If you need a country that is not in the country notes above, contact support.
FAQ and troubleshooting
How do I find a customer's Peppol address?
Ask them, because their finance team will know it. It is normally their company registration number or VAT number, plus the code that says which. You can also search the Peppol Directory, though not every participant is listed.
My customer gave me a code starting with 99 and they are Danish.
Denmark has no VAT scheme code in Peppol. Use 0184 with their CVR number. The same applies to Norway, Sweden and Iceland, as shown in the country table above.
My customer's code is 9906 or 9907.
Those were removed from the Peppol code list. Italian companies now use 0211 for the Partita IVA and 0210 for the Codice Fiscale.
My customer gave me an OVT number and an operator ID.
That is a Finvoice address, not a Peppol one. Light supports Finvoice as its own network, so set that customer's e-invoice network to Finvoice, or ask them for a Peppol address instead.
The invoice was rejected because of the scheme code.
Usually a national code used where a VAT code belongs, or the reverse. Contact support with the rejection message rather than editing the customer's data by trial and error.
My German public-sector invoice was rejected for a missing business registration number.
Set the customer's type to Government and their EAS code to 0204. Light then omits the business registration number, which is what German public bodies expect.
Do I have to register to receive invoices?
Yes, and you must not choose Sending only if you want to receive.
Is Peppol free?
There is no fee to participate in the network itself.