AWRA OpsHub Search
Netherlands · Western Europe

Our arithmetic is fine. It is the invoice document that would fail here, and it fails before any rate is applied.

The standard rate is 21% and the reduced rate is 9%, and neither is the Dutch problem. The problem is that here the cross-border invoice is the ordinary invoice — a small, open, re-exporting economy where a mid-sized company's customers are mostly in other member states. Such an invoice carries no VAT, and it is lawful only because it names the buyer's VAT identification number and states in words that the tax has been reverse-charged. Both are properties of the document, not of the calculation. We store the buyer's VAT number on the customer record and it never reaches an invoice; we can produce a zero on a line and cannot say which of three legal reasons produced it. This page is about that, and about the one thing on the list you can work around today.

Why this is not a formatting problem

Three legal reasons for a zero, two places to put them

A Dutch invoice line can be nil for reasons that are not interchangeable. Zero-rated is a taxable supply at 0% and the input tax behind it is recoverable. Exempt is outside the charge and generally is not. Reverse-charged is neither: the supply is taxable, the tax is real, and the obligation to account for it has moved to the buyer — which is why the buyer has to be named on the document. Those are three different facts about the same nil, and they land differently on a return.

An item in our product can be marked standard, zero-rated or exempt. Our resolver maps the last two to the same 0.00, so the recoverable and the non-recoverable are indistinguishable once saved — and there is no third setting for a reverse charge at all. The sharp end: anything the resolver does not recognise falls through to the organization's default rate. Invent a reverse-charge value of your own, which is the reasonable thing for somebody to try, and the line is charged 21%. Not an error, not a warning, not a zero — a plausible wrong number on a document that then goes to a customer who owed nothing.

Measured, not estimated

What a Dutch cross-border invoice must carry, and what ours puts on the page

The left column is the Dutch requirement. The right is a fact about our own invoice template on 5 August 2026, and the picture at the top of this page is drawn from this table, so the two cannot drift apart. Every row is checkable in a ten-minute trial: raise an invoice, download the PDF, and look for the field.

Your own VAT identification number

Stored — your organization's tax settings hold it and the settings screen collects it. The PDF header prints your organization's name, email, phone and country, and stops. This is the least interesting row on the table and the easiest to fix, which is why it is first: the data is already there.

Not on the document at all

The buyer's VAT identification number

Also stored, in the customer's own tax settings, collected by the customer form and shown on the customer page. Those are the only two screens in the product that read it. For a supply to a business in another member state this field is not decoration — it is part of what makes the zero lawful, and our document does not have it.

Not on the document at all

The buyer's address

The customer's street address and country are both held and are filled in by anybody who uses the customer form. The Bill To block prints the company name, an attention line, an email and a phone number. An address is a mandatory invoice particular and we hold it one join away from the document that needs it.

Not on the document at all

A statement that VAT is reverse-charged

The invoice has a free-text notes box and it renders on the PDF, so "btw verlegd" can genuinely go on our document today — typed by a person, on each invoice, with nothing checking that it was. That is a workaround rather than a feature, and it is the honest answer to the most common question on this page. It is also the only row here you can act on without us.

Only if somebody types it

The VAT split by rate, where more than one applies

A rate is stored on every invoice line at two decimal places, and the printed document does not use it. The figures on the page come from one rate held against the invoice as a whole, so the PDF shows a single label and a single total. An invoice mixing the two positive rates cannot show them apart.

Not on the document at all

A sequential invoice number and the supply date

Both present and both correct. Worth stating because a page of absences invites the assumption that nothing is there — the numbering, the dates, the line descriptions, the quantities and the totals are ordinary and fine.

On the document today

What this costs in practice

Four ways a correct total sits on an invoice that does not do its job

The lawful invoice is a document, not a calculation

Systems are shortlisted on whether the tax comes out right, and here it comes out right by being absent. What makes the absence lawful is a name, a number and a sentence on the face of the document — none of which a tax engine produces.

A number you cannot check is a rate you cannot rely on

The zero on an intra-Community supply is conditional on the buyer holding a valid VAT identification number. Storing whatever was typed into a text box is not the same as knowing that, and the consequence of being wrong lands on the seller.

Nil, nil and nil are three different facts

Zero-rated, exempt and reverse-charged all print as nothing and mean different things for what can be recovered and who accounts for the tax. Once the distinction is gone from storage, no report can put it back.

The periodic return is not the only return

Alongside the VAT return sits a separate listing of intra-Community supplies, per customer, per period, tied to the VAT numbers on the invoices. It is assembled from exactly the data an operations system holds and exactly the fields our document leaves off.

Scope, in three parts rather than two

What runs today, what we would build, and where we stop on purpose

Three columns, because "no" means two entirely different things and one list hides which is which. The middle column is where the document work sits, and its first two items are much smaller than they look — the data they need is already in the database.

Scope in the Netherlands, starting with what is missing from the document

Real today

  • A per-line rate column on invoices, quotations and POS lines, at two decimal places. The storage a multi-rate market needs exists; the printed document does not yet use it.
  • Item-level treatment — standard, zero-rated or exempt — travelling with the item onto every document rather than being re-decided by whoever is typing.
  • Customer-level VAT exemption, wired and applied. A customer marked exempt is not charged. This was a stored-but-inert setting until 5 August 2026 and the fix is recorded rather than glossed.
  • A free-text note that prints, which is where a reverse-charge legend can go today by hand.
  • Euro handled as an ordinary base currency at two decimal places, with document-level exchange rates.
  • The warehouse half in full — transfers with acknowledged receipt, batch traceability, quality holds, landed costs, procurement with three-way matching and an asset register with named custodians.

Not built yet — and commissionable

  • Neither VAT identification number reaches the invoice. Yours and your customer's are both stored and neither prints. This is the smallest item on the list and the one with the largest gap between effort and consequence, because the data is already in the database.
  • The customer's address is not on the document either. It is collected on the customer record and the Bill To block does not render it. Same shape of fix as the row above and the same reason it matters: these are mandatory invoice particulars, not formatting preferences.
  • No reverse-charge treatment exists. There is no value to store, so nothing distinguishes a reverse-charged line from a zero-rated one, and asking for one on a line charges the standard rate instead — because anything the resolver does not recognise falls through to the default. A validation error would be a far smaller problem than a plausible wrong number.
  • Zero-rated and exempt are stored identically. Both resolve to nil. They differ in what can be recovered and we cannot tell you afterwards which one a record meant.
  • No VAT-number validation of any kind, and no VIES lookup. The field is free text with a length limit. Nothing checks the format, the checksum or whether the number exists. Since the zero rate on an intra-Community supply is conditional on that number being valid, this is the item on the list that can cost money.
  • The document shows one blended rate. A mixed invoice prints a single label and a single tax total, because the printed figures come from one rate stored on the invoice rather than from the per-line column.
  • No Belastingdienst integration and no return output. No btw-aangifte, no opgaaf ICP, no Digipoort, no Intrastat, and no tax dataset in the report catalog. Kenya's eTIMS transmission is a live tax-authority integration we built and maintain, so the shape of the work is known — none of it is Dutch work.
  • No Peppol access point. Business-to-government invoicing in the Netherlands has run on Peppol or Digipoort since January 2019, so this is a present blocker for a supplier to Dutch public bodies rather than a future one. The domestic business-to-business mandate is a proposal under ViDA and was not law when this page was written; we are not selling against a deadline that does not exist yet.
  • No Dutch payroll engine. No loonheffing, no pension administration, no submission on a pay run. Labour cost is attributed to projects and cost centres, which is useful and is not payroll.

What we would decline, and would rather say now

  • We will not tell you whether a supply is reverse-charged. Whether a transaction falls under the intra-Community rules, or under one of the domestic sectors where the charge shifts to the customer, is a determination about your business that your adviser makes and signs. A software vendor with a view on it is inviting reliance it cannot carry. Holding the evidence in a form your adviser can work from is the useful thing we can do.
  • We will not be your filing agent. Even with a Belastingdienst integration built, submitting a return or an ICP listing on your behalf and standing behind its contents is not work we would take on. The obligation is yours and software should make it answerable rather than absorb it.
  • We will not claim per-organization data residency, because it does not exist. Hosting region is a property of the deployment. An EU-region deployment is a real thing we would do and price; it is not a setting, and the compliance matrix records where we published otherwise and corrected it. For a Dutch reader this is likely to be the most consequential paragraph on the page.
  • We have no Dutch reference customer. Nothing here is a case study. If a reference in your own market matters to your decision — and it reasonably might — this is the most important sentence on the page.

The Dutch list has an obvious order and the first two items are much smaller than the rest. Put both VAT identification numbers and the buyer's address on the printed document — the data is stored, the fix is a template change and a query. Then add a reverse-charge treatment that survives being saved, with the legend printed from it rather than typed. Then validate the number against VIES at the point it is entered. Then, and only then, assemble a return and an ICP listing from the result. The first two would take a fraction of the time of the last one and remove most of the reason this page reads badly, and every one of them improves every EU market in the product rather than only this one — which is the argument for doing it properly rather than for the Netherlands specifically. The precedent is real rather than rhetorical: eTIMS transmission and a maintained statutory payroll engine were both built to specification for one market and are part of the product now. Usual terms — a written specification, a timeline and a price agreed before anything starts, and no dates on a public page.

One thing we would rather state than have inferred. Nothing above says our arithmetic is wrong, because it is not: the totals are right, the per-line rates are stored correctly, and a purely domestic Dutch business selling at one rate to Dutch customers will find the invoice ordinary and adequate. The failure is specific to the cross-border document, and the reason it gets a whole page is that in this country that document is the normal case rather than the exception.

Operations in the Netherlands

The document argument above is a finance argument. Most Dutch buyers are here for the warehouse.

This country moves other people's goods for a living. A great deal of what happens in a Dutch facility is receiving something, holding it, splitting it, relabelling it and sending most of it somewhere else — often without ever owning it in the ordinary sense. That is a stock-and-movement problem with a documentation trail attached, and it is a much better description of what we are than anything on the invoice above.

Stock transfers

Goods leaving one site for another, acknowledged at both ends

Approved, confirmed transfers with quantities signed for on arrival rather than assumed. Where a business runs a hub and several forward positions, the difference between a dispatch note and a confirmed receipt is the difference between a stock figure and a guess.

Traceability

Batch and expiry held at item level, in both directions

Where a consignment came from, what it was split into and who it went to, held against the batch rather than reconstructed from paperwork. In food, horticulture and pharmaceutical distribution this is the record somebody asks for at short notice and on a bad day.

Quality holds

Stock blocked from sale while a question is open

A status that quarantines affected quantity pending release, at batch granularity. The useful property is that it is a state of the stock rather than a note somebody left — the goods cannot be picked while the hold stands.

Landed costs

Freight, duty and handling pushed into the unit cost

Charges apportioned across a consignment so the cost of an item reflects what it took to get it here. For an importer or a re-exporter this is the difference between a margin you can defend and one you discover at year end.

Procurement

Approvals that refuse, and a match before anything is paid

Requisition, threshold approval, purchase order, receipt and three-way matching, with the supplier record and its prequalification attached. In a company of forty people the control is usually one person's attention; the module is how it stops being that without hiring a department.

Assets

Handling equipment with a named custodian and a service history

Forklifts, racking, chillers and vehicles on a register that holds the custodian, the location, the movement history, the inspection rhythm and the documents. A claim about equipment becomes checkable rather than remembered.

The qualification this section needs: no Dutch payroll engine — no loonheffing calculation, no pension administration, no submission on a pay run — so hours, leave and labour cost here are records rather than a payroll run. It is on the commissionable list, and Kenya's maintained statutory engine is why we would price that work rather than guess at it.

Before you buy anything

Four checks that work on any vendor, including us

Download one of your own cross-border invoices and read it as a stranger

Not the totals — the particulars. Is your customer's VAT number on it? Their address? A sentence saying why there is no VAT? Most people have never looked at their own document this way, and it takes about four minutes.

Ask any vendor to show you the PDF, not the tax settings screen

A settings screen with a VAT number field on it proves the field exists. It does not prove the number reaches the document, and on this product it does not. The demo that answers the question is a generated invoice.

Find out what your system does with an unrecognised treatment

Put a value the software does not know into its tax treatment field and see whether you get an error, a zero, or the standard rate. The third is the dangerous answer and it is more common than the first.

Decide where the return and the listing get assembled before you shortlist

If your accounting system owns them, your operations system needs clean exports rather than a tax engine — a far cheaper requirement, and one we meet. Settle it first and the shortlist changes shape.

Questions we are asked here

Direct answers, including the two fields our own invoice leaves off

Can we put "btw verlegd" on our invoices?

Yes, today, by typing it into the invoice notes box — it renders on the generated PDF. That is a genuine answer and a limited one, so both halves belong in the same sentence: the legend is free text a person enters on each invoice, nothing checks that it was entered, and it is not derived from the line's tax treatment because no reverse-charge treatment exists to derive it from. On the roadmap, and commissionable now: a treatment value that survives being saved, with the legend printed from it rather than remembered. Until then, the workaround works and you should know it is a workaround.

Does the invoice show our customer's VAT identification number?

No. It is stored — the customer form collects it and the customer page displays it — and the invoice template does not read it. Neither does it print your own. On the roadmap, and commissionable now, and this is the item where the gap between the size of the work and the size of the consequence is widest, because the data is already in the database and the change is to a template and a query. We are stating it this plainly because it is the kind of thing that gets discovered in week three of an implementation otherwise.

Do you check VAT numbers against VIES?

No, and there is no validation of any kind — not the format, not the checksum, not whether the number exists. The field accepts any string up to 255 characters. On the roadmap, and commissionable now. We are flagging it harder than the other items because of what it is attached to: the zero rate on a supply to a business in another member state depends on that customer holding a valid identification number, and the consequence of being wrong falls on the seller rather than the buyer. If your current system does check, that is a real advantage it has over us and you should weigh it.

What happens if we set an item's treatment to "reverse charged"?

It is charged the standard rate. The resolver recognises a blank or standard treatment, and zero-rated or exempt in either spelling, and returns the organization's default rate for anything else — so a value invented in good faith produces a plausible wrong number rather than an error. We would rather write that sentence than let you find it. On the roadmap, and commissionable now: the fix is a real treatment value plus a validation failure for unrecognised ones, and the second half matters as much as the first.

Can you produce our VAT return or the ICP listing?

No — no btw-aangifte, no opgaaf ICP, no Digipoort connection, and no tax dataset in the report catalog. On the roadmap, and commissionable now, with a dependency worth understanding: an ICP listing is a per-customer, per-period total of intra-Community supplies keyed to VAT identification numbers, so it cannot be assembled until those numbers are on the transactions in a form a query can read. That is why the document fixes above come first in our own ordering rather than being the cosmetic items they look like. The precedent for the transmission half is Kenya, where we built and maintain a live tax-authority integration.

We sell to Dutch government bodies. Does that work?

Not through us. Business-to-government invoicing in the Netherlands has been electronic since January 2019, over Peppol or Digipoort, and we are not a Peppol access point and do not connect to either. On the roadmap, and commissionable now, and unlike most items on this page it is a present blocker rather than a future one — if the public sector is a meaningful part of your revenue, you need something in the chain that can transmit, whether or not that is us. The domestic business-to-business mandate is a separate matter and a proposal rather than law, so we are not going to sell you a deadline for it.

Our invoices have lines at both rates. Will the PDF show them separately?

No. The rates are stored correctly per line, and the printed document shows one blended label and one tax total because those figures come from a single rate held on the invoice rather than from the line column. On the roadmap, and commissionable now — it is a template and a totalling change rather than a schema one, since the underlying data is already right, which puts it among the cheaper items here. Worth knowing which kind of problem it is: your records are accurate and your document under-reports what they contain.

Is an English-only interface a problem in the Netherlands?

Less than almost anywhere else we publish a page about, and it is not nothing. Dutch business runs comfortably in English and a finance floor in Amsterdam or Rotterdam will not be slowed by an English interface — this is genuinely not the blocker it is in Jakarta or Bangkok. What an English interface does not do is produce a statutory document in Dutch, and we do not produce one. If a Dutch-language interface is a procurement requirement rather than a preference, say so early: on the roadmap, and commissionable now, and it is a larger piece of work than it sounds because it is every screen rather than a document template.

Can our data be held in the EU?

Two halves with different answers, and this one matters more here than in most markets. On the roadmap, and commissionable now: an EU-region deployment is a real thing we would do, priced as a piece of work, because hosting region is a property of a deployment. A boundary rather than a backlog: it is not a per-organization setting and we will not describe it as one. There is no column, no flag and no switch that puts one organization in a different region from its neighbours, and the sub-processor register is a single list that applies to everybody on a deployment. Our compliance matrix claimed otherwise until 5 August 2026; it now says this, with the correction marked.

This page is all about invoices. We run a warehouse. Is there anything for us?

Most of the product, and the page under-sells it. AWRA OpsHub is an operations system — stock across locations with acknowledged transfers, batch traceability upstream and downstream, quality holds that block picking, landed costs pushed into unit cost, procurement with approvals that refuse and three-way matching, and an asset register with named custodians — and the tax profile is one setting inside it rather than the point of it. If your accounting package owns your invoices and your returns, essentially nothing this page spends its length on is your problem. Read the operations section rather than the document table, and bring us the facility you are trying to get a straight stock position on.

Do you have Dutch customers we can speak to?

No. A boundary rather than a backlog, because it is a fact rather than a feature: this product was built in Nairobi for East African operations and its live tax-authority integration is Kenyan. If a reference in your own market matters to your decision — and it reasonably might — that is a good reason to choose something else, and we would rather write that sentence than have you discover it in month three. What we can show you is the same class of work done elsewhere and the specification discipline behind it.

Next step

The Dutch conversation starts by opening one of your own invoices.

If the buyer's VAT number and a reverse-charge sentence have to be on it, and today they are not, that is a specific and small piece of work rather than a tax module. We would rather scope that honestly than tell you the arithmetic is fine — which it is, and which is not the question.