Poland VAT Number Format (PL1234567890)

Podatek od towarów i usług (VAT) number structure, regex & verified examples

Everything you need to know about Podatek od towarów i usług (VAT) numbers in Poland — they follow the pattern PL + 10 digits (e.g. PL1234567890), and can be verified against VIES. For the rates themselves, see Poland VAT rates and their history. Building a check into your app? See the Poland VAT API.

The standard VAT rate has been 23% since 2011, up from 22%.

EU Member StateVAT — Podatek od towarów i usługPLN

VAT Number Format

Structure

PL + 10 digits

Example format

PL1234567890

Regex

^PL\d{10}$

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 Poland

What the registrar, the register and each identifier are called, in every official language and in English. These are names, not numbers.

Company registrar
  • Polish: sąd rejestrowy
  • English: registry court
Company register
  • Polish: Krajowy Rejestr Sądowy
  • English: National Court Register
Register number
  • Polish: numer KRS
  • English: KRS number
Tax ID
  • Polish: NIP
  • English: tax identification number
VAT ID
  • Polish: numer VAT UE
  • English: EU VAT 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.

What we return for Poland

Polish VAT numbers are checked against VIES, with a national VAT register fallback that still answers if VIES is briefly unavailable (that answer shows domestic VAT registration, not a VIES confirmation). A valid result also returns company name and address and national tax number (NIP).

  • 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 →

Check a Poland VAT Number

Enter a VAT number starting with PL to verify it against VIES.

Format: PL + 10 digits

Example:

Validate a Poland PL VAT number via API

Get Poland VAT rates via API — free, no key

No API key required
Request
curl "https://api.vatnode.dev/v1/rates/PL"
Response200 OK
{
  "countryCode": "PL",
  "countryName": "Poland",
  "isEU": true,
  "vatName": "Podatek od towarów i usług",
  "vatAbbr": "VAT",
  "currency": "PLN",
  "standardRate": 23,
  "reducedRates": [
    8,
    5
  ],
  "superReducedRate": 8,
  "parkingRate": null,
  "vatNumberFormat": "PL + 10 digits",
  "vatNumberPattern": "^PL\\d{10}$",
  "identifiers": {
    "registryAuthorityName": {
      "pl": "sąd rejestrowy",
      "en": "registry court"
    },
    "registryName": {
      "pl": "Krajowy Rejestr Sądowy",
      "en": "National Court Register"
    },
    "registryCodeName": {
      "pl": "numer KRS",
      "en": "KRS number"
    },
    "taxIdName": {
      "pl": "NIP",
      "en": "tax identification number"
    },
    "vatIdName": {
      "pl": "numer VAT UE",
      "en": "EU VAT number"
    }
  },
  "updatedAt": "2026-10-17"
}

View full rates API reference →

Get Poland 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('PL')
console.log(rate.standard) // PL standard VAT rate
getRate() result200 OK
{
  "country": "Poland",
  "currency": "PLN",
  "eu_member": true,
  "vat_name": "Podatek od towarów i usług",
  "vat_abbr": "VAT",
  "standard": 23,
  "reduced": [
    5,
    8
  ],
  "super_reduced": 8,
  "parking": null,
  "format": "PL + 10 digits",
  "pattern": "^PL\\d{10}$",
  "identifiers": {
    "registry_authority_name": {
      "pl": "sąd rejestrowy",
      "en": "registry court"
    },
    "registry_name": {
      "pl": "Krajowy Rejestr Sądowy",
      "en": "National Court Register"
    },
    "registry_code_name": {
      "pl": "numer KRS",
      "en": "KRS number"
    },
    "tax_id_name": {
      "pl": "NIP",
      "en": "tax identification number"
    },
    "vat_id_name": {
      "pl": "numer VAT UE",
      "en": "EU VAT number"
    }
  }
}

View package on GitHub →

Validate Poland PL VAT numbers

Requires API key
Request
curl "https://api.vatnode.dev/v1/vat/PL7342867148" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response200 OK
{
  "valid": true,
  "vatId": "PL7342867148",
  "countryCode": "PL",
  "companyName": "CD Projekt SA",
  "companyAddress": null,
  "companyRegistrationDate": null,
  "companyForm": null,
  "industryDescription": null,
  "registryCode": null,
  "registryCodeName": null,
  "taxId": "7342867148",
  "taxIdName": "NIP",
  "commercialName": null,
  "companyStatus": null,
  "secondaryActivities": [],
  "companyAgeYears": null,
  "registryPrivacy": false,
  "verifiedAt": "2026-04-25T12:00:00.000Z",
  "checkId": "019dc41e-d64d-7255-8ed7-cf5443103cd8",
  "countryName": "Poland",
  "countryVat": {
    "vatName": "Podatek od towarów i usług",
    "vatAbbr": "VAT",
    "currency": "PLN",
    "standardRate": 23,
    "reducedRates": [
      8,
      5
    ],
    "superReducedRate": 8,
    "parkingRate": null,
    "vatNumberFormat": "PL + 10 digits",
    "vatNumberPattern": "^PL\\d{10}$",
    "identifiers": {
      "registryAuthorityName": {
        "pl": "sąd rejestrowy",
        "en": "registry court"
      },
      "registryName": {
        "pl": "Krajowy Rejestr Sądowy",
        "en": "National Court Register"
      },
      "registryCodeName": {
        "pl": "numer KRS",
        "en": "KRS number"
      },
      "taxIdName": {
        "pl": "NIP",
        "en": "tax identification number"
      },
      "vatIdName": {
        "pl": "numer VAT UE",
        "en": "EU VAT number"
      }
    },
    "countryVatUpdatedAt": "2026-10-17"
  },
  "consultationNumber": null,
  "specialTerritory": null,
  "source": "VIES"
}

View full API response schema →

Frequently Asked Questions

What is the VAT number format in Poland?▾

VAT numbers in Poland follow the format: PL + 10 digits. Example: PL1234567890. VAT numbers are not case-sensitive – lowercase input is automatically normalised.

What is the VAT number regex pattern in Poland?▾

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

^PL\d{10}$

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 Poland 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 VAT rates. Free plan available — 100 requests/month, no credit card required.

What does VAT stand for in Poland?▾

VAT stands for Podatek od towarów i usług — the Polish name for Value Added Tax (VAT). It appears on Polish invoices and tax documents.

Validate Poland VAT numbers in your app

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