Canada uses a six-character alphanumeric postal code system administered by Canada Post. Every address in the country — from downtown Toronto to a remote Yukon settlement — has a unique postal code in the format A1A 1A1 (Letter–Digit–Letter space Digit–Letter–Digit). This validator checks any postal code you enter against Canada Post’s published structural rules and instantly tells you whether it is correctly formed and which province or territory it belongs to.
How it works
A Canadian postal code is split into two halves. The first three characters form the Forward Sortation Area (FSA), which identifies a broad geographic region such as a city, a suburb, or a rural zone. The final three characters form the Local Delivery Unit (LDU), which pinpoints a specific block, building, or rural route within that FSA.
The validator applies five checks in order:
- Character check — only letters A–Z and digits 0–9 are permitted; anything else (hyphens, accented characters, spaces) is rejected before further analysis.
- Length check — after stripping any spaces the code must be exactly 6 characters.
- Pattern check — positions 0, 2, 4 must be letters; positions 1, 3, 5 must be digits, giving the L#L#L# pattern.
- Forbidden-letter check — the letters D, F, I, O, Q and U must not appear anywhere. Canada Post removed them permanently to prevent OCR and handwriting ambiguity with the digits 0 and 1.
- Province prefix check — the first letter must be one of the 18 assigned province/territory prefixes (A B C E G H J K L M N P R S T V X Y). Additionally W and Z are forbidden everywhere, including the inner letter positions 2 and 4.
If all five checks pass, the tool displays the formatted canonical form (K1A 0A9), the FSA, the LDU, and the province or territory the code belongs to. A copy button lets you paste the normalised form directly into a form or database.
Worked example
The postal code K1A 0A9 is Parliament Hill in Ottawa, Ontario.
- Strip the space:
K1A0A9 - Length: 6 — correct.
- Pattern: K(letter) 1(digit) A(letter) 0(digit) A(letter) 9(digit) — matches L#L#L#.
- Forbidden letters: none of D, F, I, O, Q, U appear.
- First letter K maps to Ontario (eastern, excluding Ottawa core) — valid FSA prefix.
- Inner letters at positions 2 and 4 are both A — not W or Z.
- Result: Valid. Formatted output:
K1A 0A9.
Now try an invalid code: WX1 2AB.
- W is forbidden as the first character (not an assigned province prefix) — immediate fail.
Or M5V 0I1 (a Toronto-area code with the letter I):
- I is in the forbidden set (visually identical to digit 1) — immediate fail.
| Postal Code | Result | Reason |
|---|---|---|
| K1A 0A9 | Valid | Ottawa — Parliament Hill |
| M5V 0T1 | Valid | Toronto — CN Tower area |
| H3Z 2Y7 | Valid | Montreal — Westmount |
| T2P 1J9 | Valid | Calgary — downtown |
| V6B 4N7 | Valid | Vancouver — downtown |
| WX1 2AB | Invalid | W is not a valid first letter |
| M5V 0I1 | Invalid | I is a forbidden letter |
| A1B | Invalid | Only 3 characters |
Every check runs locally in your browser. No postal code data is ever sent to a server.