AWRA OpsHub Search

An Invoice Is a Legal Document, Not a Receipt for a Calculation

Software gets shortlisted on whether the tax comes out right. On a Dutch cross-border invoice there is no tax to come out right, and what makes the document lawful instead is a name, a number and a sentence printed on its face.

Accounting Insights Washingtone Aura 11 min read

There is a habit of mind that comes from evaluating accounting software, and it is hard to see from the inside: you judge an invoice by its total. Does the tax calculate correctly, does the subtotal add up, does the document reconcile. All reasonable questions, and all of them are questions about arithmetic. They are the wrong questions in the Netherlands, and the reason is not that Dutch arithmetic is unusual. It is that on the invoice a Dutch business most often issues, there is no arithmetic to get wrong.

A supply of goods or services to a VAT-registered business in another member state carries no VAT. The seller charges nothing; the buyer accounts for the tax in their own country. The line is nil, the tax box is nil, and the total equals the subtotal. Any system on earth can produce that document. What almost no system is asked about during a demo is the thing that makes it a lawful document rather than merely a correct one.

Why this lands harder here than almost anywhere

Every country in the European Union has these rules and most of them get a version of this problem. The reason the Netherlands is where it bites is commercial rather than legal: this is a small, open, re-exporting economy, and a mid-sized Dutch company's customer list is disproportionately in other member states. The cross-border invoice is not the awkward edge case here. It is most of the ledger.

That changes what kind of defect this is. A gap that affects two invoices a year is a nuisance you work around. A gap that affects the majority of your outgoing documents is a property of your system, and it is worth finding out about before you buy rather than in month three of an implementation.

What the document has to say, in plain terms

Strip away the legal drafting and a cross-border invoice is being asked to answer three questions that a total cannot answer.

  • Who exactly is the buyer? Not a trading name — a VAT identification number, which is the only identifier that ties the document to a registered business in a specific member state. Their address as well, which is an ordinary invoice particular that the cross-border case makes load-bearing.
  • Why is there no tax on this? Stated in words on the document. "btw verlegd", or "VAT reverse-charged" — a sentence saying the obligation has moved to the recipient, so that a reader can tell this apart from a sale that was simply exempt.
  • Who are you? Your own VAT identification number, so the same tie exists on the other side of the transaction.

None of the three is a calculation. All three are particulars printed on a page, and every one of them is a thing a system either puts there or does not. There is no partial credit and no clever workaround — either the buyer's number is on the invoice or it is not.

This is also why the zero is conditional

The nil on an intra-Community supply is not unconditional. Among the conditions is that the buyer holds a valid VAT identification number, which is why the number is on the document in the first place — it is evidence, not decoration. A seller who cannot show the condition was met is a seller who may find the tax was theirs after all, and the exposure sits with the seller rather than the buyer. Whether a particular supply qualifies is your adviser's determination and we would not offer a view. What software can be asked is whether it captured the evidence.

What our own product does, stated exactly

We will use ourselves as the worked example, because it is the only schema we can actually open up for you and because a post on this subject that only criticised other vendors would be worth nothing. The table below is a fact about our invoice template on 5 August 2026, and every row of it is checkable in ten minutes: raise an invoice, download the PDF, look for the field.

The particular Held in our database? On our printed invoice?
Your own VAT identification number Yes — in your tax settings No
The buyer's VAT identification number Yes — on the customer record No
The buyer's address Yes — on the customer record No
A reverse-charge statement Not as a state; only as free text Only if somebody types it
The VAT split where two rates apply Yes — per line, at two decimals No — one blended figure
Invoice number, dates, lines, totals Yes Yes, and they are fine

Read the middle column before the right one, because it is the surprising half. This is not a case of missing data. Somebody filled in the customer form. The VAT number is in the database, the address is in the database, and both of them are displayed on the customer's own page inside the product. What does not happen is the journey from the record to the document. In our repository, the customer's tax settings are read by exactly two screens — the form that writes them and the page that shows them back — and the invoice template is not one of them.

A settings screen with a VAT number field on it proves the field exists. It does not prove the number reaches the document, and those are entirely different claims that look identical in a demo.

The one row you can act on today

The fourth row is the exception and it deserves its own paragraph, because it is genuinely good news and it would be dishonest to bury it among the absences. Our invoice has a free-text notes box, and it renders on the generated PDF. So "btw verlegd" can go on our document today. A person types it, on each invoice, and it prints.

That is a real capability and it is not a feature, and both halves of that sentence matter. It works. It is also manual, repeated, and unchecked: nothing derives it from the line, nothing notices when it was forgotten, and nothing stops it appearing on an invoice where it does not belong. Describing it as reverse-charge support would be a lie. Describing it as nothing would also be a lie, and it is the more common kind of lie in this direction — the vendor who has decided the honest answer is the bleak one.

Why nobody notices during an evaluation

This class of defect has a particular signature, and understanding it is worth more than the specific facts above, because it generalises to every vendor you will look at.

A calculation defect

  • Shows up as a number that is wrong.
  • Fails an arithmetic check, a reconciliation, or a reviewer's instinct.
  • Gets found eventually, by somebody who knew what the answer should have been.
  • Is the kind of thing an evaluation is designed to catch.

A document defect

  • Shows up as a field that is not there.
  • Passes every arithmetic check, because the arithmetic is correct.
  • Is invisible unless somebody reads the document as a stranger would.
  • Is the kind of thing an evaluation never looks at, because a demo shows screens rather than a PDF.

That last line is the whole mechanism. A software evaluation is conducted in screens — the invoice entry form, the customer record, the tax settings. Every field you are worried about is visible in one of them, so the system appears to hold everything you need. The document is generated at the end, usually once, usually as an afterthought, and usually nobody reads it line by line against a legal requirement. Ask for the PDF, not the settings page. It is the cheapest test on this list and the only one that would have found any of this.

The knock-on nobody mentions: the second return

Alongside the periodic VAT return sits a separate listing of intra-Community supplies — in Dutch, the opgaaf ICP — which reports what you supplied to which VAT-registered customer in which period, keyed to their identification numbers. It is a different filing with a different rhythm from the VAT return itself.

Notice what it is assembled from. It is a per-customer, per-period total tied to VAT identification numbers on transactions. A system that never put those numbers on the transactions cannot produce it, no matter how good its reporting is, because the key the listing is grouped by was never stored against anything. This is why the two "cosmetic" rows at the top of our table are not cosmetic and why they come first in our own ordering: they look like formatting and they are actually the foundation the reporting sits on.

Four questions worth asking any vendor

Ask these with a generated document in front of you

Show me a generated invoice PDF for a customer in another member state.

What a good answer sounds like

A document produced on the spot, with both VAT numbers and a reverse-charge line on it.

What a bad answer is telling you

If you are shown a settings screen instead, the question has been answered about the database rather than about the document. Ours would fail this today.

Where does the reverse-charge wording come from — a field on the line, or a person typing?

What a good answer sounds like

Derived from the line's own tax state, so it cannot be forgotten or misapplied.

What a bad answer is telling you

A free-text note is a workaround. It is a real one, and it is not the same as the system knowing.

What does the system do with a VAT number that does not exist?

What a good answer sounds like

Rejects it, ideally by checking against the EU's own register at the point of entry.

What a bad answer is telling you

If the answer is "we store what you type", the evidence behind your zero rate is whatever somebody typed. Ours stores what you type.

Can you produce the intra-Community supplies listing from these records?

What a good answer sounds like

Yes, grouped by customer VAT number, from transaction data rather than a spreadsheet.

What a bad answer is telling you

If the numbers are not on the transactions, this is not a reporting gap that can be closed later — it is a data gap that closes only going forward.

What we would build, and where we stop on purpose

The build has an order and the first step is much smaller than the rest. Put both VAT identification numbers and the buyer's address on the printed document — the data is already stored, so this is a template and a query rather than a schema change. Then a reverse-charge treatment that survives being saved, with the legend printed from it instead of typed. Then validation of a counterparty number against the EU register at the point of entry. Then, and only then, a return and a listing assembled from the result. What we will not do is tell you whether a particular supply is reverse-charged. That is a determination about your business that your adviser makes and signs, and a software vendor with a view on it is inviting reliance it cannot carry.

The Dutch invoice in our schema, in three parts

What AWRA OpsHub does today

  • A free-text note that prints on the generated invoice, which is where a reverse-charge legend can go today by hand.
  • A per-line rate column at two decimal places on invoices, quotations and point-of-sale lines. The storage is right; the printed document does not read from it.
  • Customer-level VAT exemption that is actually applied — a customer marked exempt is not charged. Worth naming because the setting was stored and inert until 5 August 2026, and we wrote about fixing it rather than shipping it quietly.
  • Euro as an ordinary two-decimal base currency, with exchange rates recorded on the document itself.

What it does not do

  • Neither VAT identification number on the invoice. Yours and your customer's are both stored and neither prints.
  • The buyer's address on the invoice. Collected, displayed on the customer page, absent from the document.
  • Any reverse-charge treatment. There is no value to store, so a reverse-charged line and a zero-rated one are the same record afterwards — and an unrecognised treatment charges the standard rate rather than failing.
  • Any VAT-number validation, including against the EU register. The field is free text with a length limit and nothing checks it.
  • A per-rate split on the printed document. A mixed invoice shows one blended label and one tax total.
  • Any Belastingdienst integration or return output — no btw-aangifte, no opgaaf ICP, no Digipoort, no Intrastat, and no Peppol access point for business-to-government invoicing.

Not ours, by choice

  • We will not tell you whether a supply is reverse-charged. Whether a transaction falls under the intra-Community rules, or under a domestic sector where the charge shifts, is your adviser's call and signing it is their job rather than a vendor's.
  • We will not be your filing agent, even once an integration exists. The obligation is yours and software should make it answerable rather than absorb it.

The order above is the order we would quote it in, and the first item is deliberately first because it is the one with the widest gap between effort and consequence — the data is in the database and the change is to a template and a query. Everything in that list improves every EU market in the product rather than only this one, which is the argument for doing it properly rather than for one country. The precedent that we finish market-specific work of this kind is Kenya: a live tax-authority integration and a maintained statutory payroll engine, both ours. A written specification, a timeline and a price agreed before anything starts, and no dates on a public page.

One thing worth stating rather than leaving to be 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 business selling domestically at one rate to Dutch customers will find our invoice ordinary and adequate. The failure is specific to the cross-border document. It gets a whole post because in this country that document is the normal case.

This is scope, not a ceiling

What is not built for the Netherlands today can still be built for you

Anything described above as not built is a statement about what ships in the standard product today — not a limit on what AWRA OpsHub can do in the Netherlands. Kenya's eTIMS integration and its maintained payroll engine exist because Kenyan clients needed them and commissioned them; neither appeared by itself. The same door is open here. If the buyer's number on the document, and something that checks it is real, a bank or mobile money feed, a statutory return format, a rule your own operation needs that the standard one does not have, or a link to a system you already run is what stands between you and a decision, tell us and we will scope it as a build — written spec, timeline and price — before you commit to anything.

Four builds, and the first one is far smaller than the three behind it

Put the particulars on the printed invoice. Your VAT identification number, your customer's, and their address are all stored today and none of the three reaches the document — so the first build is a template and a query rather than a schema change, and it removes most of the reason a Dutch cross-border invoice would fail on inspection. Then a reverse-charge treatment that survives being saved, with the legend printed from the line's own state instead of typed into a notes box by hand, and a validation failure for treatments the resolver does not recognise rather than the silent fall-through to the standard rate it does today. Then validation of a counterparty VAT number at the point it is entered, against VIES, because the zero rate on an intra-Community supply is conditional on that number being valid and we currently accept any string. Only then a btw-aangifte and an opgaaf ICP assembled from the result — quoted last because an ICP listing is a per-customer total keyed to VAT numbers, and it cannot be built until those numbers are on the transactions in a form a query can read. A Peppol access point for business-to-government invoicing is a separate build and a present one, since that mandate has been live since January 2019.

Banks and payments

SEPA credit transfers and direct debits, iDEAL collection, and bank statement feeds wired into the Payments Register, so money in and out reconciles against the documents that authorised it rather than being re-keyed from a bank screen.

The operational work, which is what most commissions actually are

An extra approval stage in a chain that does not match the standard one, a custom field set on employees or assets that only your sector needs, an expiry that has to block an order rather than send an email, a report your board asks for in a shape nothing produces, or a scanner or weighbridge feeding the goods-in door. These are the commissions we are asked for most often and the smallest ones we quote — and unlike a revenue-authority pipeline, none of them waits on a regulator.

Payroll and statutory returns

A Dutch payroll engine with loonheffing computed on live employee records, pension administration and submission on each pay run. None of it exists today; labour cost attribution to projects and cost centres does.

Systems you already run

The accounting package, CRM, online store or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed.

How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. No roadmap slide, and no pretending in a demo that something exists when it does not.

Tell us what you need integrated

The one-line version

Download one of your own cross-border invoices and read it as a stranger would — not the totals, the particulars. Is the buyer's VAT number on it? Their address? A sentence saying why there is no tax? It takes four minutes, most people have never done it, and it is a better test of an operations system than any tax feature list you will be shown.

Bring us one of your invoices

We published our own document's failures above, which is the only thing that makes it fair to ask another vendor for theirs. Send us a cross-border invoice and we will tell you exactly what our template would and would not have printed on it.

Read the Netherlands page

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center