Spain VAT Rates

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

Standard rate today

21%

Since 1 Sep 2012 — 14 years

Previous rate

18%

Until 31 Aug 2012

First recorded rate

12%

From 1 Jan 1986

Spain VAT Rates in Force Today

Standard rate
21%
Reduced rates
10%
Super-reduced rate
4%
Parking rate
None
Local name
Impuesto sobre el Valor Añadido (IVA)
Currency
EUR
VAT number format
ES + letter + 7 digits + letter/digit, or ES + 8 digits + letter
^ES([A-Z]\d{7}[A-Z0-9]|\d{8}[A-Z])$
EU membership
EU member state

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

Use this VAT rate in your application

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

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

const rate = getRate('ES')
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 Spain

In force fromUntilStandard rate
1 Sep 2012Current21%
1 Jul 201031 Aug 201218%
1 Jan 199530 Jun 201016%
1 Aug 199231 Dec 199415%
1 Jan 199231 Jul 199213%
1 Jan 198631 Dec 199112%

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 Spanish 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.