Netherlands VAT Number Format (NL123456789B01)

Belasting over de toegevoegde waarde (btw) number structure, regex & verified examples

Everything you need to know about Belasting over de toegevoegde waarde (btw) numbers in the Netherlands โ€” they follow the pattern NL + 9 digits + B + 2 digits (e.g. NL123456789B01), and can be verified against VIES. For the rates themselves, see Netherlands VAT rates and their history. Building a check into your app? See the Netherlands VAT API.

EU Member Statebtw โ€” Belasting over de toegevoegde waardeEUR

VAT Number Format

Structure

NL + 9 digits + B + 2 digits

Example format

NL123456789B01

Regex

^NL\d{9}B\d{2}$

VAT numbers are not case-sensitive โ€” lowercase input is automatically normalised.

What we return for the Netherlands

  • VIES validation (valid / not valid)
  • Company name & address
  • National registry ID
  • Founded date
  • Legal form
  • Industry
  • Works if VIES is down

See the full coverage table for all 27 EU member states + Northern Ireland โ†’

Check a Netherlands VAT Number

Enter a btw number starting with NL to verify it against the official VIES database.

Format: NL + 9 digits + B + 2 digits

Example:

Validate a Netherlands NL VAT number via API

Get Netherlands VAT rates via API โ€” free, no key

No API key required
Request
curl "https://api.vatnode.dev/v1/rates/NL"
Response200 OK
{
  "countryCode": "NL",
  "countryName": "Netherlands",
  "vatName": "Belasting over de toegevoegde waarde",
  "vatAbbr": "btw",
  "standardRate": 21,
  "reducedRates": [
    9
  ],
  "superReducedRate": null,
  "parkingRate": null,
  "vatNumberFormat": "NL + 9 digits + B + 2 digits",
  "vatNumberPattern": "^NL\\d{9}B\\d{2}$",
  "updatedAt": "2026-08-13"
}

View full rates API reference โ†’

Get Netherlands VAT rates via package โ€” offline, no HTTP

eu-vat-rates-data
Request
# npm install eu-vat-rates-data
import { getRate } from 'eu-vat-rates-data'

const rate = getRate('NL')
console.log(rate.standard) // NL standard VAT rate
getRate() result200 OK
{
  "country": "Netherlands",
  "currency": "EUR",
  "eu_member": true,
  "vat_name": "Belasting over de toegevoegde waarde",
  "vat_abbr": "btw",
  "standard": 21,
  "reduced": [
    9
  ],
  "super_reduced": null,
  "parking": null,
  "format": "NL + 9 digits + B + 2 digits",
  "pattern": "^NL\\d{9}B\\d{2}$"
}

View package on GitHub โ†’

Validate Netherlands NL VAT numbers

Requires API key
Request
curl "https://api.vatnode.dev/v1/vat/NL805734958B01" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 OK
{
  "valid": true,
  "vatId": "NL805734958B01",
  "countryCode": "NL",
  "companyName": "Booking.com BV",
  "companyAddress": null,
  "companyRegistrationDate": null,
  "companyForm": null,
  "industryDescription": null,
  "registryCode": null,
  "registryCodeName": null,
  "verifiedAt": "2026-04-25T12:00:00.000Z",
  "checkId": "019dc41e-d64d-7255-8ed7-cf5443103cd8",
  "countryName": "Netherlands",
  "countryVat": {
    "vatName": "Belasting over de toegevoegde waarde",
    "vatAbbr": "btw",
    "currency": "EUR",
    "standardRate": 21,
    "reducedRates": [
      9
    ],
    "superReducedRate": null,
    "parkingRate": null,
    "vatNumberFormat": "NL + 9 digits + B + 2 digits",
    "vatNumberPattern": "^NL\\d{9}B\\d{2}$",
    "countryVatUpdatedAt": "2026-08-13"
  },
  "consultationNumber": null
}

View full API response schema โ†’

Frequently Asked Questions

What is the VAT number format in the Netherlands?โ–พ

VAT numbers in the Netherlands follow the format: NL + 9 digits + B + 2 digits. Example: NL123456789B01. VAT numbers are not case-sensitive โ€” lowercase input is automatically normalised.

What is the VAT number regex pattern in the Netherlands?โ–พ

Use this regular expression to validate VAT numbers in the Netherlands btw number format locally:

^NL\d{9}B\d{2}$

Test against the uppercase number. Format validation catches typos locally โ€” always follow with a VIES check to confirm the number is active.

How do I validate a VAT number in the Netherlands programmatically?โ–พ

Send a GET request to https://api.vatnode.dev/v1/vat/{vatId} with your Authorization: Bearer header. The API checks the number against the official EU VIES database and returns a JSON response with a valid field, company name, address, and current btw rates. Free plan available โ€” 100 requests/month, no credit card required.

What does btw stand for in the Netherlands?โ–พ

btw stands for Belasting over de toegevoegde waarde โ€” the Dutch name for Value Added Tax (VAT). It appears on Dutch invoices and tax documents.

Validate Netherlands VAT numbers in your app

Use the vatnode API to automate btw validation in your invoicing or checkout flow. Free plan available, no credit card required.