Poland VAT API – Validate Poland VAT Numbers in Real Time

REST JSON endpoint for verifying Podatek od towarów i usług (VAT) numbers against the official EU VIES register, with national registry fallback where available and a VIES consultation number once you set your own VAT as requester in dashboard Account details.

Why a Poland-Aware VAT API

In Poland, VAT is known as Podatek od towarów i usług (VAT) and the current standard rate is 23%. Every Poland VAT number starts with the prefix PL and follows a fixed structure issued by the Polish tax authority. A generic VAT validator that ignores country-specific quirks will accept malformed input and miss the country’s format rules.

The vatnode API normalises VAT input, runs the official VIES check, falls back to the Polish national company registry when VIES is unavailable, and returns a single JSON shape with the consultation number, company data where published, and the current Poland VAT rates inline.

Poland VAT Number Format

Structure
PL + 10 digits
Regex pattern
^PL\d{10}$

Real Poland VAT numbers you can validate right now:

More of them live in the EU VAT number directory, grouped by member state.

Validating Poland VAT Numbers – Code Examples

All three examples validate the same Poland VAT number PL7342867148. To receive a consultation number back, set your own VAT as requester once in dashboard Account details – then every call, including these, returns a consultation number automatically, with no extra parameters.

curl
curl 'https://api.vatnode.dev/v1/vat/PL7342867148' \
  -H "Authorization: Bearer YOUR_API_KEY"
Node.js (fetch)
const res = await fetch(
  'https://api.vatnode.dev/v1/vat/PL7342867148',
  { headers: { Authorization: `Bearer ${process.env.VATNODE_API_KEY}` } }
)
const data = await res.json()
console.log(data.valid, data.companyName, data.consultationNumber)
Python (httpx)
import os, httpx

r = httpx.get(
    "https://api.vatnode.dev/v1/vat/PL7342867148",
    headers={"Authorization": f"Bearer {os.environ['VATNODE_API_KEY']}"},
)
data = r.json()
print(data["valid"], data["companyName"], data["consultationNumber"])

What You Get Back

A successful response for a valid PolandVAT number, once you've set your VAT as requester in dashboard Account details, looks like this:

{
  "valid": true,
  "vatId": "PL7342867148",
  "countryCode": "PL",
  "countryName": "Poland",
  "companyName": "CD Projekt SA",
  "consultationNumber": "WAPIAAAAXk7ZpY3o",
  "source": "VIES",
  "countryVat": {
    "currency": "PLN",
    "standardRate": 23,
    "reducedRates": [5,8],
    "superReducedRate": 8,
    "parkingRate": null
  },
  "verifiedAt": "2026-05-19T08:14:22Z"
}

When the number is not registered, valid is false and company fields are null. The consultationNumber is the EU VIES requestIdentifier – the documented audit reference for reverse-charge ‘reasonable care’ evidence. It is returned once you set your own VAT as requester in dashboard Settings; otherwise it is null.

Poland VAT Rates

vatnode returns the current Polish VAT rates inline with every successful response. Today’s rates (standard 23%, reduced 5%, 8%, super-reduced 8%) are sourced from the European Commission TEDB feed, checked daily and updated on any change.

Rate typeValue
Standard23%
Reduced (1)5%
Reduced (2)8%
Super-reduced8%

VIES vs National Fallback for Poland

VIES is the primary data source for validation in Poland — it is the authoritative EU register and the only source that produces a consultation number. When VIES returns a transient error (timeout, MS_UNAVAILABLE, SERVICE_UNAVAILABLE), vatnode automatically queries the Polish national company registry as a fallback so your checkout or invoicing pipeline keeps working.

The response includes a source field that tells you which system answered — VIES for the EU register, or the Polish national-registry source code when the fallback ran.

Poland is one of the EU countries where vatnode keeps validating during EU VIES outages via a direct national registry adapter. See coverage matrix for the full list.

Poland VAT API – FAQ

Is the Poland VAT number the same as the company registration number?

The Polish VAT number identifies the business for VAT. vatnode does not return a company register number for Poland, so registryCode is null. The part after the PL prefix is the tax identification number (NIP), returned in taxId.

How fast is Poland VAT validation through vatnode?

Cached responses return in single-digit milliseconds. Live VIES lookups for Poland typically complete in under one second; a 15-minute Redis cache is applied to identical VAT IDs.

Does the API work for Polish sole traders and small businesses?

Yes. If a Polish sole trader or small business is registered for VAT and listed in VIES, vatnode validates the number and returns the same response shape as for corporate entities. The valid field is true regardless of legal form.

What happens if EU VIES is down for Poland?

vatnode falls back to the Polish national registry adapter when VIES returns a transient error (timeout, MS_UNAVAILABLE). Validation keeps working from the national source; the response includes a source field so you can tell which system answered.

What is the consultation number returned for checks in Poland?

The consultationNumber is the VIES requestIdentifier — a reference returned by VIES that proves the check was performed against the official EU register on a specific date. It shows that you checked, not that the counterparty stayed valid afterwards, and it is returned once you set your own VAT as requester in dashboard Account details — including for Poland.

VAT APIs for Other EU Countries

See Also

Building an AI workflow? vatnode is also available to AI agents through the official MCP server — Claude, Cursor and ChatGPT can validate Poland VAT numbers and look up rates directly in chat.

Start Validating Poland VAT Numbers

100 validations per month on the free plan, no credit card required. REST JSON over HTTPS, VIES consultation number on qualified checks, Polish national registry fallback, EU-hosted by default.