Compliance · · 11 min read

Does Your Dutch Online Shop Have to Send E-Invoices?

The Netherlands has no general rule forcing one business to e-invoice another, and one case where a shop must. What your checkout collects, and which number.

No general Dutch rule forces your shop to e-invoice another business — and there is one case where it does. The Dutch e-invoicing rules are procurement rules: a supplier to central government must invoice electronically, and every Dutch public body must be able to receive a European-format invoice. Between two private companies there is no such obligation, so a webshop selling to Dutch businesses is not compelled to send structured invoices to them. What is happening instead is that Dutch business buyers increasingly ask, because a structured invoice lands in their accounting software instead of in somebody's inbox. So the real question for a Dutch shop is not whether a mandate has arrived. It is which number to collect at checkout, what to do when the buyer cannot be reached, and why a government order is a different animal altogether.

This page is for the owner or store manager of a Dutch online shop that sells at least partly to businesses. It stays on the shop's own flow. The Dutch regime itself — the dates, the standards, the OIN rule and the government's four sending routes — is set out in full in e-invoicing in the Netherlands, and is not restated here.

Three columns sorting the buyers a Dutch online shop takes orders from. The first is a private customer: no e-invoice is required or raised, nothing changes at the checkout, and the order confirmation is unaffected. The second is an ordinary Dutch company: no general Dutch rule compels the shop to send an electronic invoice, many buyers ask for one anyway because it lands straight in their accounting software, and the buyer is addressed on a Chamber of Commerce number or a Dutch VAT identifier. The third is a Dutch public body: electronic invoicing is compulsory on central-government contracts, the invoice must be addressed on the buyer's twenty-digit organisation identification number rather than anything a checkout field collects, and an ordinary webshop checkout cannot collect that number.
The obligation follows who the buyer is. A private customer and an ordinary company are not the same case, and neither is a public body.

Does my Dutch online shop have to send e-invoices?

Not to ordinary companies. To a Dutch government buyer, yes.

The Dutch rules point in two directions and it is worth keeping them apart. The obligation to send falls on suppliers to central government: the Dutch government's own legislation table, published by Logius, dates it to new procurement contracts entered into from 1 January 2017. The obligation to receive falls on the buyer and is much wider — every Dutch contracting authority, including municipalities, provinces and water boards, has had to be able to receive and process an invoice in the European format since 18 April 2019. That second obligation is the Dutch implementation of the EU's public-procurement e-invoicing directive, which is why it covers every public body rather than only the state.

Neither of those is a rule about private trade. They are public-procurement rules, and they do not create a general obligation between two Dutch companies. If your shop's customers are businesses rather than public bodies, nothing obliges you to send them a structured invoice today.

We are not going to give you a Dutch domestic B2B mandate date, because there is no Dutch government source that sets one. If you have read a date elsewhere, check whose announcement it came from before you plan around it. There is a dated European commitment sitting above all of this, and it has its own section on the Netherlands guide rather than being repeated here — a date restated on four pages is a date that goes stale in four places.

What this absence does not mean is that nothing is happening. Dutch buyers have been receiving e-invoices through the government's own gateway since 2011, and the country runs one of Europe's more mature Peppol communities. Plenty of Dutch companies already have a service provider and would rather receive your invoice through it.

Which number do I collect at checkout?

The btw-id — the Dutch VAT identifier — is the one our apps ask for.

A structured invoice has to be addressed to something a machine can resolve, which is why this is the only real change to your checkout. The Netherlands Peppol Authority permits three identifier schemes for Dutch parties, and the choice is not stylistic:

Scheme Identifier Used for
0106 NL:KVK A Chamber of Commerce number
9944 NL:VAT A Dutch VAT identifier (btw-id)
0190 NL:OIN An organisation identification number

The OIN is required for central government, provinces and municipalities. Any other organisation may be addressed on the KVK or the VAT form. Our storefront apps ask the business buyer for the btw-id under scheme 9944, and your own store is registered on the network under the same scheme when you set it up, so answers and incoming documents can find you.

Two practical notes that save a support thread each. The btw-id has a shape — NL123456789B01, no dots and no spaces — and a sole trader enters the btw-id rather than the older turnover-tax number. And the field should be optional and shown only where it makes sense: an order with no tax number is correctly treated as a consumer sale, no e-invoice is due, and compliance should never stand between a private customer and a completed purchase.

If the field is missing from your checkout, every order will say consumer sale — including the business ones. That is the single commonest surprise on a new install, and it is a one-button fix rather than a fault; your shop says the e-invoice was not delivered explains that state and the six others your orders can be in.

Can my checkout collect what a government buyer needs?

No — and this is the part of the Dutch rules that catches a webshop out.

An invoice to a Dutch central-government organisation must be addressed on that body's OIN, a twenty-digit number belonging to the buying organisation. The central government's own supplier helpdesk answers the substitution question without hedging: if you fill in a number other than the OIN, your e-invoice will not be accepted. The OIN is written in your order letter, and if it is not there the instruction is to ask the organisation that placed the order rather than to guess.

A webshop checkout cannot collect a number that arrives in a contract document. So a public-sector order is not a web sale with an extra field; it is a contract, invoiced on the terms in the order letter. If a ministry or a municipality buys from your shop, treat the invoice as a separate piece of work — the identifier rule, the withdrawn public OIN list and the government's four sending routes are all covered on the Netherlands guide.

Saying this plainly is more useful than selling you a field. The thing most likely to go wrong on a Dutch public-sector invoice is addressing it to the number you happen to hold.

Five steps showing what happens to a paid business order in a Dutch online shop. One, the buyer enters a Dutch VAT identifier at checkout and the number is checked against the Peppol network while they are still on the page. Two, payment completes and the shop hands the order over, exactly as it does today. Three, the order becomes a Peppol BIS Billing 3.0 invoice and is validated against the Dutch rules before anything leaves. Four, the access point looks the buyer up on the network and delivers to the buyer's own provider, or emails a PDF carrying the European standard invoice inside it when the buyer is not reachable. Five, the delivery answer is written onto the order, so the invoice number, the channel and the state sit beside the sale.
Your shop does step one. Everything after it is the access point's work, and the answer comes back to the order you already look at.

How do I invoice a Dutch business buyer from my shop?

The paid order becomes a structured invoice, and the delivery answer comes back to the order.

Your shop raises the sale and stops there. An access point turns the order into the structured document, validates it, resolves the buyer on the network and delivers it. GoRoute is itself the certified Peppol access point — POP000991 — so issuing, delivery and the answer are one service with one place to look when a document does not land. On a good day that is an implementation detail. On the day a buyer rings up asking where their invoice is, it is the whole difference.

The format is Peppol BIS Billing 3.0, the European standard narrowed for Peppol, and Dutch validation applies on top of it through SI-UBL 2 (NLCIUS) — the profile most people still search for under its old name, Simpler Invoicing. You are not going to build either of those, and you should not try. What you should expect to see, on the order, without opening a second system: the invoice number, the channel it went by, and whether it was delivered.

A refund is a credit note that references the original invoice and travels the way the invoice did. You refund in your shop as you always have and the document follows. And a double-clicked checkout or a gateway retry returns the same invoice rather than minting a second one — one sale, one document, ever, which matters more for your buyer's reconciliation than for yours.

What happens when the Dutch buyer is not on the network?

They are emailed two files, and for a Dutch seller the invoice is inside the PDF as well.

A buyer on the network receives the invoice in their accounting software. Anyone else is sent a PDF to read and the e-invoice itself as a separate XML attachment. For a Dutch seller the structured invoice is additionally carried inside the PDF as EN 16931, the European standard, so a buyer whose software reads an embedded invoice needs nothing but the PDF.

The Netherlands permits that fallback. Belgium does not — an e-invoice between businesses cannot be sent by email there at all, which is why a Belgian shop gets told on the order rather than quietly emailed a PDF. If you sell from the Netherlands into Belgium, or run shops in both, does your Belgian online shop have to send e-invoices? sets out the difference, and it is a real one rather than a matter of interpretation.

One more thing the Netherlands Peppol Authority says that is worth carrying with you: the Peppol Directory tells you an organisation receives documents over Peppol. It does not tell you whether that organisation also sends them. Do not read a Directory entry as a promise that your own supplier will invoice you electronically.

What does this look like on WooCommerce and on Wix?

Both are live, both are free to start, and the Netherlands is a supported seller country on each.

  • WooCommerce. The GoRoute plugin runs on WordPress 6.0+ and WooCommerce 8.0+, including High-Performance Order Storage and the block checkout. It hooks the payment-complete event, so Mollie, Stripe, PayPal, bank transfer and cash on delivery behave identically: paid business order in, e-invoice out. Set-up is four steps and needs no developer and no API key to paste. The Dutch detail is on WooCommerce e-invoicing in the Netherlands, and the plugin itself is on the WordPress.org plugin directory.
  • Wix. The GoRoute app requires Wix Stores. It adds the checkout field from one button in Settings, issues on payment, and writes the invoice number, the channel and the delivery state onto the Wix order itself. Its screens appear in Dutch where your Wix account is Dutch. The detail is on Wix e-invoicing and the listing is on the Wix App Market.

Both are free for the first fifty e-invoices a month, with paid plans above that. Wix plans are bought and billed inside Wix; WooCommerce plans are bought from GoRoute. The current prices live on each product page rather than in this article.

What this page does not cover

A Dutch domestic B2B mandate date. There is not one to give, and the European timetable that does exist is on the Netherlands guide.

Penalties. No Dutch figure is quoted here, because a number repeated second-hand in the wrong place is how a wrong number spreads.

The Dutch validation rules themselves. Which rule codes fail an invoice to a Dutch party is a format question, and what is a UBL invoice? is where they belong.

Your VAT treatment. Whether a given sale is a business-to-business supply, and how it is taxed, is a tax question rather than a document-exchange one. Nothing here is inferred about it.

Shopify. The GoRoute Shopify app is in Shopify's review and its listing is not live, so there is nothing to install today and nothing is claimed. If your shop is on Shopify, book a session and we will set it up with you meanwhile.

What to do next

Open your last twenty business orders and count how many carry a Dutch tax number. That number decides whether this is a ten-minute install or a short conversation with a handful of customers, and almost nobody knows it before they look.

Then install: the plugin is on the WordPress.org directory and the app is on the Wix App Market, both free for the first fifty e-invoices a month. Recorded walkthroughs of the connectors are on tutorials; the document types, statuses and identifier formats are in the developer documentation. To walk your own checkout, refund and delivery-answer flow through against the Dutch rules with our team, book a session.


Sources: Logius and its e-invoicing legislation table for the supplier obligation from 1 January 2017, the receiving obligation from 18 April 2019 and the statement that an invoice emailed as a PDF is not an e-invoice; the Netherlands Peppol Authority for the three mandatory standards, the Dutch identifier schemes 0106, 9944 and 0190, the Peppol Test Tool and the Peppol Directory caveat; the Dutch central government's e-invoicing helpdesk for the OIN rule and the correction path; Directive 2014/55/EU for the European obligation the Dutch receiving rule implements; the OpenPeppol BIS Billing 3.0 specification and peppol.org for the format and the network. Product behaviour — the checkout field, the network check, the credit-note path and the EN 16931 invoice carried inside a Dutch seller's PDF — is GoRoute's own, described on the WooCommerce Netherlands page and the Wix page. GoRoute operates certified Peppol Access Point POP000991.

Frequently asked questions

Does my Dutch online shop have to send e-invoices?
Not to ordinary business customers. The Dutch e-invoicing rules are procurement rules: they oblige suppliers to central government to invoice electronically, and they oblige every Dutch contracting authority to be able to receive a European-format invoice. They do not create a general obligation between two private companies, so a webshop selling to Dutch businesses is not compelled to e-invoice them. The exception is the public-sector order: if your shop supplies a Dutch government body, the obligation reaches you.
Is a PDF invoice emailed to a Dutch buyer an e-invoice?
No. Logius, which runs the Dutch government's e-invoicing infrastructure, states it plainly: an e-invoice is an electronic file delivered computer to computer and processed automatically, and invoices sent by email — for example as a PDF — are not e-invoices. That matters where the obligation applies. Where it does not, a PDF is still a perfectly ordinary invoice, and your Dutch business buyer may simply prefer a structured one.
Which number do I collect at checkout — the KVK number or the btw-id?
Either identifies an ordinary Dutch company, and our storefront apps ask for the Dutch VAT identifier, the btw-id, under Peppol scheme 9944. The Netherlands Peppol Authority permits three identifier schemes for Dutch parties: NL:KVK under scheme 0106 for a Chamber of Commerce number, NL:VAT under 9944 for a VAT identifier, and NL:OIN under 0190 for an organisation identification number. The OIN is required for central government, provinces and municipalities; other organisations may use the KVK or VAT form.
Can my checkout collect what a Dutch government buyer needs?
No, and it is worth knowing before you try. An invoice to a Dutch central-government organisation must be addressed on that body's OIN — a twenty-digit number the buyer owns, stated in your order letter. The central government's own supplier helpdesk answers the substitution question directly: if you fill in a number other than the OIN, your e-invoice will not be accepted. No checkout field collects a number that arrives in a contract document, so a public-sector order is handled as a contract rather than as a web sale.
What happens when a Dutch business buyer is not on the Peppol network?
They are emailed two files: a PDF to read, and the e-invoice itself as an XML attachment. For a Dutch seller the structured invoice is also carried inside the PDF as EN 16931, the European standard, so a buyer whose accounting software reads an embedded invoice needs only the PDF. The Netherlands permits that fallback, which is a real difference from Belgium, where an e-invoice between businesses cannot be sent by email at all.
How do I find out whether a Dutch company can receive a Peppol invoice?
Our checkout field checks the number against the network while the buyer is still on the page, which is the useful moment to find out. The Netherlands Peppol Authority also publishes a Peppol Test Tool that looks receivers up by KVK, OIN or VAT number, and the international Peppol Directory searches by name. The Authority's own caveat is worth repeating: the Directory tells you an organisation receives documents over Peppol, not that it sends them.
What does a refund become?
A credit note that references the original invoice and travels the way the invoice did. You refund in your shop exactly as you do today and the document follows. The thing not to do is quietly delete or re-issue the original invoice: the Dutch government's own helpdesk describes the same correction path for its portal, which is to credit the sent invoice in full and raise a new one.
What does this cost on WooCommerce or Wix?
Both apps are free for the first fifty e-invoices a month, with paid plans above that. Wix plans are bought and billed inside Wix, on the bill you already have; WooCommerce plans are bought from GoRoute inside WordPress. The current ladder is on each product page rather than in this article, because a price written into a blog post goes stale without anyone noticing.

Related posts

Building on Peppol?

GoRoute is a certified Peppol Access Point & SMP. Book a demo or read the docs to get started.

Book a demo Read the docs