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.

EU Member StateIVAImposto sobre o Valor AcrescentadoEUR

VAT Number Format

Structure

PT + 9 digits

Example format

PT123456789

Regex

^PT\d{9}$

VAT numbers are not case-sensitive — lowercase input is automatically normalised. See how this format compares across all 27 EU countries.

What we return for Portugal

Portuguese VAT numbers are checked against the EU VIES database. A valid result also returns company name and address and national registry ID.

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

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

Format: PT + 9 digits

Example:

Validate a Portugal PT VAT number via API

Get Portugal VAT rates via API — free, no key

No API key required
Request
curl "https://api.vatnode.dev/v1/rates/PT"
Response200 OK
{
  "countryCode": "PT",
  "countryName": "Portugal",
  "isEU": true,
  "vatName": "Imposto sobre o Valor Acrescentado",
  "vatAbbr": "IVA",
  "standardRate": 23,
  "reducedRates": [
    22,
    16,
    13,
    6
  ],
  "superReducedRate": 6,
  "parkingRate": 13,
  "vatNumberFormat": "PT + 9 digits",
  "vatNumberPattern": "^PT\\d{9}$",
  "updatedAt": "2026-09-08"
}

View full rates API reference

Get Portugal 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('PT')
console.log(rate.standard) // PT standard VAT rate
getRate() result200 OK
{
  "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}$"
}

View package on GitHub

Validate Portugal PT VAT numbers

Requires API key
Request
curl "https://api.vatnode.dev/v1/vat/PT500100144" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 OK
{
  "valid": true,
  "vatId": "PT500100144",
  "countryCode": "PT",
  "companyName": "Jerónimo Martins SGPS SA",
  "companyAddress": null,
  "companyRegistrationDate": null,
  "companyForm": null,
  "industryDescription": null,
  "registryCode": null,
  "registryCodeName": null,
  "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}$",
    "countryVatUpdatedAt": "2026-09-08"
  },
  "consultationNumber": null,
  "specialTerritory": null,
  "source": "VIES"
}

View full API response schema

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

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.