Germany Postal Validator
Validate the format of a German postal code (PLZ, 5 digits). Useful for forms, e-commerce and international shipping to customers in Germany.
German postal code (Postleitzahl, PLZ): five digits since reunification
The German Postleitzahl (PLZ) is a 5-digit number. The current system launched on 1 July 1993, when Deutsche Post merged the separate 4-digit West German (W-) and East German (O-) systems after reunification into a single 5-digit national scheme — a famous migration that retired around 40,000 old codes. The validator on this page checks the structural format — exactly five digits — accepting 10115 (Berlin-Mitte) or 80331 (Munich).
There is no check digit: a PLZ is valid if it exists in Deutsche Post's official directory. The country is divided into 10 Leitzonen by the first digit, then progressively narrowed — the five digits together resolve to a town, a city district, or even a single large recipient (a Großempfänger such as a bank, ministry or PO box block gets its own PLZ).
Reading the first digits
- Digit 1 (Leitzone 0–9): e.g.
0Saxony/Leipzig,1Berlin/Brandenburg,2Hamburg/north,5Cologne/Bonn,8Munich/Bavaria-south. - Digits 1–2 (Leitregion): the routing region.
- Digits 1–3 (Leitbereich): the delivery area.
- Digits 4–5: the specific town or district / large recipient.
Where it shows up
- Address forms: PLZ + Ort (city) is the standard German address line; many forms auto-fill the city from the PLZ.
- Logistics: DHL, Hermes, DPD and Deutsche Post route on the PLZ; it also drives parcel-shop and Packstation lookup.
- Tax & registration: Finanzamt assignment and Bürgeramt registration (Anmeldung) use it.
- Mock data / testing: generating valid-format codes for fixtures and address QA.
Gotchas
- Leading zero: eastern codes start with
0(e.g.01067Dresden) — store and validate as a string, never as an integer that drops the zero. - One city, many PLZ: Berlin alone has hundreds of codes; a PLZ maps to a district, not a whole city.
- Großempfänger codes: some PLZ belong to a single institution, so the last digits aren't a geographic block.
- Format-valid ≠ real:
00000passes the regex but isn't a real PLZ; the lowest real codes start around01067.
FAQ
Why did Germany switch to 5 digits in 1993? Reunification left two overlapping 4-digit systems; a unified 5-digit scheme was needed to route mail across the whole country without ambiguity.
Does a PLZ always map to one city? No — the relationship is many-to-many at the edges: big cities have many PLZ, and some rural PLZ cover several villages.
Is there a check digit? No. Validity is by lookup against Deutsche Post's directory, not arithmetic.
Related Tools
France Postal Validator
Validate the format of a French postal code (5 digits). Useful for forms, e-commerce and international shipping to customers in France.
UK Postcode Validator
Validate the format of a UK postcode, such as SW1A 1AA. Useful for forms, e-commerce and sign-ups that serve customers in the United Kingdom.
Japan Postal Validator
Validate the format of a Japanese postal code (〒NNN-NNNN). Useful for forms, e-commerce and international shipping to customers in Japan.
Canada Postal Validator
Validate the format of a Canadian postal code (A1A 1A1 pattern, alternating letter and digit). Useful for forms, e-commerce and shipping to Canadian customers.
Portugal Postal Code Validator
Validate Portuguese postal codes (####-###) and identify region by first two digits (Lisboa, Porto, Coimbra, etc.).
FEBRABAN Bank Code Validator
Validate a Brazilian bank code in the FEBRABAN standard (3 digits, e.g. 001 Banco do Brasil, 341 Itaú). Useful for bank slips, transfers and account records.