Launching a SaaS?·Collect waitlist signups before you build — before.run
SandboxPatternsDetectDocsChangelog
Finance
pl
#vat
#poland
#polish
#tax

Polish VAT Number (VAT-UE)

Validates Polish VAT identification numbers (VAT-UE / NIP do celów VAT). Matches standard 10-digit NIP numbers with optional or required 'PL' country prefix and official Polish hyphenation formats.

✓ Polish invoice validation✓ EU VIES B2B checkout✓ Polish accounting and ERP systems
/
/
Safe
Test String
7 matches
(?:…)?Non-capturing group— Non-capturing group — groups without capturing (no index assigned) — repeated zero or one time (optional) · ? — zero or one time (optional)
PP— 'P' — literal character
LL— 'L' — literal character
[…]?Character class […]— Matches any single character listed in this set — repeated zero or one time (optional) · ? — zero or one time (optional)
— ' ' — literal character
--— '-' — literal character
(?:…)Non-capturing group— Non-capturing group — groups without capturing (no index assigned)
\d{10}digit— \d — digit (0–9) — repeated exactly 10 times · {10} — exactly 10 times
||— | — alternation: matches expression on left OR right
\d{3}digit— \d — digit (0–9) — repeated exactly 3 times · {3} — exactly 3 times
--— '-' — literal character
\d{3}digit— \d — digit (0–9) — repeated exactly 3 times · {3} — exactly 3 times
--— '-' — literal character
\d{2}digit— \d — digit (0–9) — repeated exactly 2 times · {2} — exactly 2 times
--— '-' — literal character
\d{2}digit— \d — digit (0–9) — repeated exactly 2 times · {2} — exactly 2 times
||— | — alternation: matches expression on left OR right
\d{3}digit— \d — digit (0–9) — repeated exactly 3 times · {3} — exactly 3 times
--— '-' — literal character
\d{2}digit— \d — digit (0–9) — repeated exactly 2 times · {2} — exactly 2 times
--— '-' — literal character
\d{2}digit— \d — digit (0–9) — repeated exactly 2 times · {2} — exactly 2 times
--— '-' — literal character
\d{3}digit— \d — digit (0–9) — repeated exactly 3 times · {3} — exactly 3 times
Pattern: 70 charsInput: 98 chars
100% client-side · private

✓ Valid Examples

  • PL5260250274
  • PL1234563218
  • 5260250274
  • 123-456-32-18
  • PL 123-456-32-18
  • PL 123-45-63-218
  • PL-5260250274

✗ Invalid Examples

  • PL123456789
  • PL12345678901
  • DE123456789
  • 12345678
  • PLabcdefghij

Usage & Integration

Validate Polish VAT Number (VAT-UE) natively in your backend or frontend without copying regex strings.

Node / Edge

import { validate } from '@regexto/validators';

validate('pl-vat', '...');

Python

from regexto_validators import validate

validate("pl-vat", "...")

Go

import "github.com/regex-to/validators-go"

valid, err := validators.Validate("pl-vat", "...")

PHP

use RegexTo\Validators\Validator;

Validator::validate('pl-vat', '...');

Rust

use regexto_validators::validate;

let is_valid = validate("pl-vat", "...").unwrap();