Netherlands VAT Rates

The standard rate in the Netherlands is 21%, in force since 1 Oct 2012. Before that, the Netherlands changed it 9 times since 1969 — every change below carries the date it took effect and the Commission record it came from.

Standard rate today

21%

Since 1 Oct 2012 — 13 years

Previous rate

19%

Until 30 Sep 2012

First recorded rate

12%

From 1 Jan 1969

Netherlands VAT Rates in Force Today

Standard rate
21%
Reduced rates
9%
Super-reduced rate
None
Parking rate
None
Local name
Belasting over de toegevoegde waarde (btw)
Currency
EUR
VAT number format
NL + 9 digits + B + 2 digits
^NL\d{9}B\d{2}$
EU membership
EU member state

Checking a Dutch VAT number rather than a rate? The number format, its regex and verified example numbers are on the Netherlands VAT number page.

Use this VAT rate in your application

Copy a package, CDN, or keyless HTTP example for NL.

import { getRate } from 'eu-vat-rates-data'

const rate = getRate('NL')
console.log(rate.standard, rate.reduced)

The CDN URL is cached for distribution. Use a version tag instead of @main when you need reproducible builds.

Standard Rate Changes in Netherlands

In force fromUntilStandard rate
1 Oct 2012Current21%
1 Jan 200130 Sep 201219%
1 Oct 199231 Dec 200017.5%
1 Jan 198930 Sep 199218.5%
1 Oct 198631 Dec 198820%
1 Jan 198430 Sep 198619%
1 Jan 197631 Dec 198318%
1 Jan 197331 Dec 197516%
1 Jan 197131 Dec 197214%
1 Jan 196931 Dec 197012%

Where This Data Comes From

Two European Commission sources, joined at 1 Jan 2017, where they agree on every member state. Nothing here is estimated, and periods are never rewritten once published – a rate change is a new record, not an edit to an old one.

The whole series for all 27 member states is one JSON file, MIT licensed, no API key: eu-vat-rates-history.json. Last rebuilt 27 Sep 2026.

Current EU rates last fetched from EC TEDB: 27 Sep 2026. This is the source-fetch date, not the date the rate last changed.

Historical rates are published for reference. Which rate applies to a given supply also depends on the place-of-supply and time-of-supply rules in force at the time, which this dataset does not model. For Dutch filings, confirm with the tax authority or an adviser. The Commission’s own record has gaps – where one is known, the missing period is filled from national legislation and labelled as such above. Spot another, and the issue tracker is open.

The update scripts, source data, and audit trail are public in the canonical GitHub repository. If this dataset is useful in your project, a star helps other developers find it.