MeridianMERIDIAN

EU VAT Number

European Union Value Added Tax identification number. Format: 2-letter country code prefix followed by 2-12 alphanumeric characters. Each EU member state has its own format rules.

EU VAT Number

identity.government.eu_vat

European Union Value Added Tax identification number. Format: 2-letter country code prefix followed by 2-12 alphanumeric characters. Each EU member state has its own format rules.

Domain
identity
Category
government
Casts to
VARCHAR
Scope
Locale-specific
Locales
DE, FR, ES, IT, NL, PL, AT, BE, IE, SE, DK, FI, CZ, HU, RO, GR, PT

Try it

CLI
$ finetype infer -i "DE123456789"
→ identity.government.eu_vat

DuckDB

Detect
SELECT finetype('DE123456789');
-- → 'identity.government.eu_vat'
Cast expression
CAST({col} AS VARCHAR)
Safe cast pipeline
-- Normalise and cast in one step
SELECT TRY_CAST(finetype_cast(my_column) AS VARCHAR) AS clean_value
FROM my_table
WHERE finetype(my_column) = 'identity.government.eu_vat';

Struct Expansion

Expression
country_code: REGEXP_EXTRACT({col}, '^([A-Z]{2})')
local_number: REGEXP_EXTRACT({col}, '^[A-Z]{2}(.+)$')

JSON Schema

finetype schema identity.government.eu_vat
{
  "$id": "https://meridian.online/schemas/identity.government.eu_vat",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "European Union Value Added Tax identification number. Format: 2-letter country code prefix followed by 2-12 alphanumeric characters. Each EU member state has its own format rules.",
  "examples": [
    "DE123456789",
    "FR12345678901",
    "ATU12345678",
    "NL123456789B01",
    "GB123456789"
  ],
  "pattern": "^[A-Z]{2}[0-9A-Za-z+*.]{2,12}$",
  "title": "EU VAT Number",
  "type": "string",
  "x-finetype-broad-type": "VARCHAR",
  "x-finetype-transform": "CAST({col} AS VARCHAR)"
}

Examples

DE123456789FR12345678901ATU12345678NL123456789B01GB123456789

Aliases

vat_numbervat_id

Type Registry