Portugal VAT Number Format (PT123456789)
Imposto sobre o Valor Acrescentado (IVA) number structure, regex & verified examples
Everything you need to know about Imposto sobre o Valor Acrescentado (IVA) numbers in Portugal — they follow the pattern PT + 9 digits (e.g. PT123456789), and can be verified against VIES. For the rates themselves, see Portugal VAT rates and their history. Building a check into your app? See the Portugal VAT API.
The standard IVA rate has been 23% since 2011.
VAT Number Format
Structure
PT + 9 digitsExample format
PT123456789Regex
^PT\d{9}$VAT numbers are not case-sensitive – lowercase input is automatically normalised. See how this format compares across all 27 EU countries.
Company and Tax Identifiers in Portugal
What the registrar, the register and each identifier are called, in every official language and in English. These are names, not numbers.
- Company registrar
- Portuguese: Registo Nacional de Pessoas Coletivas
- English: National Registry of Legal Persons
- Company register
- Portuguese: ficheiro central de pessoas coletivas
- English: Central File of Legal Persons
- Register number
- Portuguese: número de identificação de pessoa coletiva
- English: legal person identification number
- Tax ID
- Portuguese: número de identificação fiscal
- English: tax identification number
- VAT ID
- Portuguese: número de identificação fiscal
- English: tax identification number
Each name is checked against the registrar’s or tax authority’s own pages or legal text. The same names ship in eu-vat-rates-data.json and in GET /v1/rates.
More on Portugal
- Portugal VAT rates and historyCurrent standard and reduced rates, and every past change.
- Portugal VAT validation APIEndpoint, response fields and code samples for this country.
- Portugal Reverse charge rulesWhen to zero-rate a cross-border B2B invoice, and what to write on it.
- Portugal VIES uptimeAvailability of this country in the Commission database, sampled continuously.
What we return for Portugal
Portuguese VAT numbers are checked against VIES. A valid result also returns company name and address and national tax number (número de identificação fiscal).
- VIES validation (valid / not valid)
- Company name & address
- National registry ID
- National tax number
- Founded date
- Legal form
- Industry
- National register answers if VIES is down
See the full coverage table for all 27 EU member states + Northern Ireland →
Famous Portugal VAT Numbers
Jerónimo Martins SGPS SA
PT500100144
Portuguese food retail group (Biedronka, Pingo Doce)
Verify →
EDP – Energias de Portugal SA
PT500697256
Portuguese electric utility
Verify →
Galp Energia SGPS SA
PT504499777
Portuguese integrated energy company
Verify →
Sonae SGPS SA
PT500273170
Portuguese retail and telecoms conglomerate
Verify →
Caixa Geral de Depósitos SA
PT500960046
Portuguese state-owned bank
Verify →
TAP Air Portugal SA
PT500278725
Portugal's national airline
Verify →
Check a Portugal VAT Number
Enter a IVA number starting with PT to verify it against VIES.
Format: PT + 9 digits
Validate a Portugal PT VAT number via API
Get Portugal VAT rates via API — free, no key
No API key requiredcurl "https://api.vatnode.dev/v1/rates/PT"
{
"countryCode": "PT",
"countryName": "Portugal",
"isEU": true,
"vatName": "Imposto sobre o Valor Acrescentado",
"vatAbbr": "IVA",
"currency": "EUR",
"standardRate": 23,
"reducedRates": [
22,
16,
13,
6
],
"superReducedRate": 6,
"parkingRate": 13,
"vatNumberFormat": "PT + 9 digits",
"vatNumberPattern": "^PT\\d{9}$",
"identifiers": {
"registryAuthorityName": {
"pt": "Registo Nacional de Pessoas Coletivas",
"en": "National Registry of Legal Persons"
},
"registryName": {
"pt": "ficheiro central de pessoas coletivas",
"en": "Central File of Legal Persons"
},
"registryCodeName": {
"pt": "número de identificação de pessoa coletiva",
"en": "legal person identification number"
},
"taxIdName": {
"pt": "número de identificação fiscal",
"en": "tax identification number"
},
"vatIdName": {
"pt": "número de identificação fiscal",
"en": "tax identification number"
}
},
"updatedAt": "2026-10-16"
}Get Portugal VAT rates via package — offline, no HTTP
eu-vat-rates-data# npm install eu-vat-rates-data
import { getRate } from 'eu-vat-rates-data'
const rate = getRate('PT')
console.log(rate.standard) // PT standard VAT rate{
"country": "Portugal",
"currency": "EUR",
"eu_member": true,
"vat_name": "Imposto sobre o Valor Acrescentado",
"vat_abbr": "IVA",
"standard": 23,
"reduced": [
6,
13,
16,
22
],
"super_reduced": 6,
"parking": 13,
"format": "PT + 9 digits",
"pattern": "^PT\\d{9}$",
"identifiers": {
"registry_authority_name": {
"pt": "Registo Nacional de Pessoas Coletivas",
"en": "National Registry of Legal Persons"
},
"registry_name": {
"pt": "ficheiro central de pessoas coletivas",
"en": "Central File of Legal Persons"
},
"registry_code_name": {
"pt": "número de identificação de pessoa coletiva",
"en": "legal person identification number"
},
"tax_id_name": {
"pt": "número de identificação fiscal",
"en": "tax identification number"
},
"vat_id_name": {
"pt": "número de identificação fiscal",
"en": "tax identification number"
}
}
}Validate Portugal PT VAT numbers
Requires API keycurl "https://api.vatnode.dev/v1/vat/PT500100144" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"valid": true,
"vatId": "PT500100144",
"countryCode": "PT",
"companyName": "Jerónimo Martins SGPS SA",
"companyAddress": null,
"companyRegistrationDate": null,
"companyForm": null,
"industryDescription": null,
"registryCode": null,
"registryCodeName": null,
"taxId": "500100144",
"taxIdName": "número de identificação fiscal",
"commercialName": null,
"companyStatus": null,
"secondaryActivities": [],
"companyAgeYears": null,
"registryPrivacy": false,
"verifiedAt": "2026-04-25T12:00:00.000Z",
"checkId": "019dc41e-d64d-7255-8ed7-cf5443103cd8",
"countryName": "Portugal",
"countryVat": {
"vatName": "Imposto sobre o Valor Acrescentado",
"vatAbbr": "IVA",
"currency": "EUR",
"standardRate": 23,
"reducedRates": [
22,
16,
13,
6
],
"superReducedRate": 6,
"parkingRate": 13,
"vatNumberFormat": "PT + 9 digits",
"vatNumberPattern": "^PT\\d{9}$",
"identifiers": {
"registryAuthorityName": {
"pt": "Registo Nacional de Pessoas Coletivas",
"en": "National Registry of Legal Persons"
},
"registryName": {
"pt": "ficheiro central de pessoas coletivas",
"en": "Central File of Legal Persons"
},
"registryCodeName": {
"pt": "número de identificação de pessoa coletiva",
"en": "legal person identification number"
},
"taxIdName": {
"pt": "número de identificação fiscal",
"en": "tax identification number"
},
"vatIdName": {
"pt": "número de identificação fiscal",
"en": "tax identification number"
}
},
"countryVatUpdatedAt": "2026-10-16"
},
"consultationNumber": null,
"specialTerritory": null,
"source": "VIES"
}Frequently Asked Questions
What is the VAT number format in Portugal?▾
VAT numbers in Portugal follow the format: PT + 9 digits. Example: PT123456789. VAT numbers are not case-sensitive – lowercase input is automatically normalised.
What is the VAT number regex pattern in Portugal?▾
Use this regular expression to validate VAT numbers in Portugal IVA number format locally:
^PT\d{9}$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 Portugal programmatically?▾
Send a GET request to https://api.vatnode.dev/v1/vat/{vatId} with your Authorization: Bearer header. The API checks the number against VIES 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 Portugal?▾
IVA stands for Imposto sobre o Valor Acrescentado — the Portuguese name for Value Added Tax (VAT). It appears on Portuguese invoices and tax documents.
VAT Number Formats for Other EU Countries
Validate Portugal 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.