EU VAT rates by commodity code

Which VAT rate applies to this product in that country, keyed to the same CN and CPA commodity codes your customs paperwork already uses. 2,667 codes, all 27 member states, rebuilt daily from the European Commission's own database.

Why this exists

Published VAT tables give you a country's standard rate and its reduced rates. They do not tell you which goods each reduced rate covers, and that is the part that costs money. Two countries can both have a 10% reduced rate that applies to entirely different things. Undercharge VAT and you cannot recover it from the customer: the shortfall comes out of your margin, with interest on top.

The Commission publishes this mapping. It is not published anywhere as open, machine-readable data. Now it is.

Use it

# every rate for one commodity code, across the EU
curl https://humora2504.github.io/eu-vat-by-commodity-code/data/by-code/4901.json

# everything one country charges
curl https://humora2504.github.io/eu-vat-by-commodity-code/data/by-country/DE.json

# the whole dataset
curl https://humora2504.github.io/eu-vat-by-commodity-code/data/all.json

2,667 commodity codes

CN codes for goods, CPA codes for services, exactly as the member states report them.

1,120 rate rows

Across 27 member states, with the category each rate belongs to.

958 official comments

The member states' own legal notes, in their own words, not a summary.

Rebuilt daily

A scheduled job refetches and commits only when something actually changed, so the git history is the changelog.

Browse a few

What this is not

It is not tax advice, and it is not a substitute for your own verification. It is the Commission's data, reshaped so a machine can read it. Rates change; the situation date is on every page and in every file. If a filing depends on it, check with your tax authority.

Free, and when it is not

The dataset is free under CC BY 4.0 and always will be: it is public data and it is not ours to withhold. What is sold is a commercial licence for embedding it in a product, which buys you a stable schema, a change feed and someone to answer when the Commission moves the endpoint. If you are looking something up by hand, you need none of that.