Spain VAT Numbers

Format, rates & examples

Everything you need to know about Impuesto sobre el Valor Añadido (IVA) numbers in Spain — format rules, current rates, and real company examples you can verify against VIES.

EU Member StateIVAImpuesto sobre el Valor AñadidoEUR

VAT Number Format

Structure

ES + letter/digit + 7 digits + letter/digit

Example format

ESA1234567A

Regex

^ES[A-Z0-9]\d{7}[A-Z0-9]$

VAT numbers are not case-sensitive — lowercase input is automatically normalised.

Current VAT Rates

Standard

21%

Reduced

10%

Super reduced

4%

Rates from EU Commission TEDB · Updated 2026-05-12

What we return for Spain

  • 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 Spain VAT Number

Enter a IVA number starting with ES to verify it against the official VIES database.

Format: ES + letter/digit + 7 digits + letter/digit

Example:

Spain ES VAT — rates & validation via API

Get Spain VAT rates via API — free, no key

No API key required
Request
curl "https://api.vatnode.dev/v1/rates/ES"
Response200 OK
{
  "countryCode": "ES",
  "countryName": "Spain",
  "vatName": "Impuesto sobre el Valor Añadido",
  "vatAbbr": "IVA",
  "standardRate": 21,
  "reducedRates": [
    10
  ],
  "superReducedRate": 4,
  "parkingRate": null,
  "vatNumberFormat": "ES + letter/digit + 7 digits + letter/digit",
  "vatNumberPattern": "^ES[A-Z0-9]\\d{7}[A-Z0-9]$",
  "updatedAt": "2026-05-12"
}

View full rates API reference

Get Spain 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('ES')
console.log(rate.standard) // ES standard VAT rate
getRate() result200 OK
{
  "country": "Spain",
  "currency": "EUR",
  "eu_member": true,
  "vat_name": "Impuesto sobre el Valor Añadido",
  "vat_abbr": "IVA",
  "standard": 21,
  "reduced": [
    10
  ],
  "super_reduced": 4,
  "parking": null,
  "format": "ES + letter/digit + 7 digits + letter/digit",
  "pattern": "^ES[A-Z0-9]\\d{7}[A-Z0-9]$"
}

View package on GitHub

Validate Spain ES VAT numbers

Requires API key
Request
curl "https://api.vatnode.dev/v1/vat/ESA15075062" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 OK
{
  "valid": true,
  "vatId": "ESA15075062",
  "countryCode": "ES",
  "companyName": "Inditex SA",
  "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": "Spain",
  "countryVat": {
    "vatName": "Impuesto sobre el Valor Añadido",
    "vatAbbr": "IVA",
    "currency": "EUR",
    "standardRate": 21,
    "reducedRates": [
      10
    ],
    "superReducedRate": 4,
    "parkingRate": null,
    "vatNumberFormat": "ES + letter/digit + 7 digits + letter/digit",
    "vatNumberPattern": "^ES[A-Z0-9]\\d{7}[A-Z0-9]$",
    "countryVatUpdatedAt": "2026-05-12"
  },
  "consultationNumber": null
}

View full API response schema

Frequently Asked Questions

What is the VAT number format in Spain?

VAT numbers in Spain follow the format: ES + letter/digit + 7 digits + letter/digit. Example: ESA1234567A. VAT numbers are not case-sensitive — lowercase input is automatically normalised.

What is the VAT number regex pattern in Spain?

Use this regular expression to validate VAT numbers in Spain IVA number format locally:

^ES[A-Z0-9]\d{7}[A-Z0-9]$

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

What is the standard IVA rate in Spain?

The standard IVA rate in Spain is 21%. Reduced rates: 10%. Super-reduced rate: 4%. Rates are sourced from the EU Commission TEDB and updated daily.

How do I validate a VAT number in Spain 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 IVA rates. Free plan available — 100 requests/month, no credit card required.

What does IVA stand for in Spain?

IVA stands for Impuesto sobre el Valor Añadido — the Spain name for Value Added Tax (VAT). It appears on Spain invoices and tax documents.

Validate Spain VAT numbers in your app

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