A Canadian postal code is six characters in the pattern A1A 1A1. Learn what each character means, which letters are never used, how rural and urban codes differ, and how to read any code correctly.
A Canadian postal code is a six-character code that identifies a mail delivery area. It always follows the pattern letter–digit–letter, space, digit–letter–digit — written as A1A 1A1. The first three characters identify a broad geographic area; the last three narrow it down to a specific delivery point, which can be as small as one side of a single city block.
This guide covers what every character means, which six letters of the alphabet never appear in a postal code, why two more letters can appear in some positions but never in the first, how rural codes differ from urban ones, and how to read an unfamiliar code and work out roughly where it points. If you write software that handles Canadian addresses, the validation guide goes deeper on the technical rules.
The postal codes in these examples. Each one pairs a real forward sortation area — the first three characters, which carry the geography — with 0A0 as a placeholder for the last three. That is deliberate, and it is the same point the guide makes elsewhere: only the first three characters support any inference. The last three identify a delivery unit and tell you nothing you can reason from. No example here is a real delivery point, and none is meant to be posted to.
A Canadian postal code is a six-character alphanumeric code used by Canada Post to route mail to a specific delivery area. It is written as three characters, a single space, then three more characters — for example M5V 0A0 or T2P 0A0. The format alternates letters and digits in a fixed pattern that never varies.
Postal codes are not addresses and they are not coordinates. A postal code tells the postal system which delivery route a piece of mail belongs to. It does not, on its own, identify a building, a household or a person.
Every Canadian postal code splits cleanly into two three-character halves, and the two halves do very different jobs.
| Half | Characters | Official name | What it identifies |
|---|---|---|---|
| First three | A1A | Forward Sortation Area (FSA) | A geographic region — part of a city, a whole small town, or a large rural area |
| Last three | 1A1 | Local Delivery Unit (LDU) | A specific delivery point within that region |
In the code M5V 0A0, M5V is the FSA and 3L9 is the LDU.
The FSA is the half that carries geographic meaning you can reason about. The LDU is essentially an internal routing identifier — you cannot infer anything useful about a location from the last three characters alone.
Reading a postal code from left to right, each position carries a different kind of information.
The first letter identifies a postal district, which maps to a province, a territory, or a region within a large province. There are eighteen of them.
| Letter | Province / region |
|---|---|
| A | Newfoundland and Labrador |
| B | Nova Scotia |
| C | Prince Edward Island |
| E | New Brunswick |
| G | Eastern Quebec |
| H | Metropolitan Montreal |
| J | Western Quebec |
| K | Eastern Ontario |
| L | Central Ontario |
| M | Metropolitan Toronto |
| N | Southwestern Ontario |
| P | Northern Ontario |
| R | Manitoba |
| S | Saskatchewan |
| T | Alberta |
| V | British Columbia |
| X | Northwest Territories and Nunavut |
| Y | Yukon |
Two things in that table surprise people. Quebec and Ontario have multiple letters each — Quebec uses G, H and J, and Ontario uses K, L, M, N and P — because both provinces generate far more mail volume than a single district can address. And X covers two territories at once: the Northwest Territories and Nunavut share a postal district.
Each region has its own page on this site — Ontario, Quebec, Alberta and the other ten — breaking its letters down further and generating addresses within them.
The second character is a digit, and it answers one question immediately:
This is the single most useful piece of information you can extract from a postal code at a glance. X0A is a rural Nunavut code. K1A is urban.
One consequence worth knowing: because Nunavut's communities are small and dispersed, the territory's postal codes are rural in this sense. If you are building test data or validation rules that assume every province has urban codes, that assumption will not hold everywhere.
The third character is a letter, and together with the first two it completes the FSA. This narrows the district and rural/urban split down to a specific region — a neighbourhood or group of neighbourhoods in a city, or a defined rural zone.
M5V and M4W are both urban M codes, but they are different parts of it.
The final three characters follow the pattern digit–letter–digit and identify a specific delivery point within the FSA. In a dense urban area this might be one side of one street between two intersections, a single large office tower, or a bank of post office boxes. In a rural area it covers considerably more ground.
There is no public pattern to LDUs that lets you infer location from them. They are assigned for routing efficiency, not geographic logic.
Six letters never appear anywhere in a Canadian postal code: D, F, I, O, Q and U. They are excluded because they are too easily confused with other characters by both human sorters and optical scanning equipment — I with the digit 1, O and Q with the digit 0, and so on.
Two further letters, W and Z, are excluded from the first position only. No postal district uses them. But they are perfectly valid in the third and fifth positions, and real postal codes use them: 64 forward sortation areas carry W in the third position and 49 carry Z.
This distinction catches out a very large number of address validation implementations. A regex that excludes W and Z everywhere will silently reject legitimate Canadian addresses.
| Position | Type | Letters allowed |
|---|---|---|
| 1 | Letter | A B C E G H J K L M N P R S T V X Y (no D F I O Q U, no W Z) |
| 2 | Digit | 0–9 |
| 3 | Letter | A B C E G H J K L M N P R S T V W X Y Z (no D F I O Q U) |
| 4 | Digit | 0–9 |
| 5 | Letter | A B C E G H J K L M N P R S T V W X Y Z (no D F I O Q U) |
| 6 | Digit | 0–9 |
If you are writing a validator, the validation guide shows the common regex that gets this wrong and the one that gets it right.
Work left to right and stop when you have what you need. Take T2P 0A0:
So in three characters you know: Alberta, urban, Calgary. That is as far as reasoning takes you without a lookup, and it is usually far enough.
Compare X0A 0A0:
Two codes, two completely different pictures, read in seconds.
Canada Post's addressing guidelines are specific about this, and the rules are worth following because automated sorting equipment reads the last line of an address first.
That makes a correctly formatted last line look like this:
TORONTO ON M5V 0A0
— municipality, two spaces, province symbol, two spaces, postal code, all on the final line of the address block. The full rules for the rest of the address are in how to write a Canadian address, and the physical placement on an envelope is covered in addressing an envelope in Canada.
The last line uses two-letter symbols, not full province names and not the older abbreviations:
| Symbol | Province or territory |
|---|---|
| AB | Alberta |
| BC | British Columbia |
| MB | Manitoba |
| NB | New Brunswick |
| NL | Newfoundland and Labrador |
| NS | Nova Scotia |
| NT | Northwest Territories |
| NU | Nunavut |
| ON | Ontario |
| PE | Prince Edward Island |
| QC | Quebec |
| SK | Saskatchewan |
| YT | Yukon |
Note that these are not the same as the postal district letters. Alberta's postal district letter is T, but its province symbol is AB. The two systems are unrelated and both appear on the same line.
Where the symbol goes on the line, and the rest of the rules for writing an address for mail, are covered in how to write a Canadian address. For storing one in a database — why the code and not the name — see Canada address format.
No. A ZIP code is the United States system and uses five digits, optionally extended to nine (90210 or 90210-1234). A Canadian postal code uses six alternating letters and digits (M5V 0A0). They are not interchangeable, and a form that validates a Canadian postal code with a five-digit ZIP pattern will reject every valid Canadian address.
A Canadian postal code is also considerably more precise than a ZIP code. A US ZIP code typically covers a town or a section of a city; a Canadian LDU can identify a single building. The full comparison covers the differences that matter when handling both.
People searching in English sometimes call these "Canadian zip codes" and searchers from South Asia often call them "pin codes". Both refer to the same thing: the six-character code described here. Canada Post's own term is postal code.
A Forward Sortation Area is the first three characters of a postal code. It is the level at which Canada Post sorts mail for onward distribution, and it is the level at which Canadian postal geography is publicly available.
This last point matters more than it sounds. Statistics Canada publishes Forward Sortation Area boundary files as part of its census geography programme, under an open licence. That makes FSA-level analysis — mapping, demographics, catchment areas — something anyone can do legitimately.
The full six-character postal code file is different. It is a Canada Post product, licensed commercially, and it cannot be freely redistributed. That distinction shapes what any third-party tool can honestly offer, and it is the subject of what you can and can't do with postal code lookup.
| Rural | Urban | |
|---|---|---|
| Second character | 0 | 1–9 |
| Typical area covered | A town and its surrounding region, or a large sparsely populated area | Part of a neighbourhood, sometimes a single building |
| Delivery | Often rural routes, community mailboxes, general delivery | Usually door-to-door or centralised building delivery |
| Address form | Often includes a rural route or PO box line | Usually a civic number and street |
A rural postal code does not mean "remote". Many rural codes cover towns with thousands of residents that sit just outside an urban delivery boundary.
Assuming the format is `A1A1A1` with no space. Systems that strip the space for storage are fine; systems that display or print it without the space are not following Canada Post's guidance.
Validating with a ZIP code pattern. Five digits will reject every Canadian address. This is the single most common failure on international checkout forms.
Excluding W and Z everywhere. They are invalid only in the first position. M4W and H2Z are real.
Treating the LDU as geographic. The last three characters are routing identifiers. Sorting or grouping by them produces noise.
Assuming one postal code equals one address. A single LDU can cover many addresses, and a single large building can have several postal codes.
Confusing the postal district letter with the province symbol. T and AB both mean Alberta, in two different systems, and both appear in a complete address.
If you are building or testing something that consumes Canadian addresses, three things are worth knowing up front.
The format is strictly positional. Letters and digits alternate in a fixed pattern, so you can validate structure with confidence — but structural validity tells you nothing about whether a code is in service. A code can satisfy every rule on this page and never have been assigned, or have been assigned and since retired. Only Canada Post's database answers that question, and no pattern substitutes for it.
Do not use real customer addresses as test fixtures. Beyond being poor practice, personal information in a test database is a live obligation under Canada's federal privacy law. Synthetic address data and privacy covers why, and what to use instead.
Generate test data deterministically. A seeded generator produces the same address every time from the same input, which makes failures reproducible. Generating test addresses for Canada walks through the approach, and the Canadian address generator produces correctly formatted synthetic addresses with valid postal code structure.
Six characters, written with a space in the middle: three characters, a space, then three more — A1A 1A1. The space is part of the correct written form but is not itself a seventh character.
They are visually similar to other characters and cause errors in both manual sorting and optical character recognition. I resembles the digit 1; O and Q resemble the digit 0; D, F and U were excluded for similar legibility reasons.
No. W and Z are never used as the first character of a Canadian postal code. They are valid in the third and fifth positions, where codes such as M4W and H2Z use them.
It means the code covers a rural delivery area. A digit from 1 to 9 in that position means an urban area.
Not officially. Canada Post uses postal code. "Zip code" is the American term, and "pin code" is used in parts of South Asia. All three are used by people searching for the same six-character Canadian code, but postal code is the correct term in Canada.
Yes. Canada Post revises postal codes as delivery routes are restructured, new developments are built and volumes shift. Any stored postal code data has a shelf life, which is one reason address data is usually validated at the point of entry rather than trusted indefinitely.
No. A postal code identifies a delivery area, not an address. In dense urban areas an LDU can be small enough to cover a single building, but the code alone contains no civic number, no street and no name.
X — shared with the Northwest Territories. The two territories do not have separate postal district letters.
A Canadian postal code is six characters in a fixed alternating pattern. The first three form the Forward Sortation Area and carry real geographic meaning: the district letter tells you the province or region, the digit tells you rural or urban, and the third character narrows it to a specific area. The last three are routing identifiers with no inferable geography.
Six letters — D, F, I, O, Q, U — never appear. Two more, W and Z, never appear first but do appear later. Getting those two rules right is the difference between an address validator that works and one that quietly rejects real customers.
Tools and reference pages on this site
Related guides
Sources
| # | Claim | Source status |
|---|---|---|
| 1 | Postal code is six characters, pattern ANA NAN | Canada Post addressing guidelines — verified |
| 2 | One space between the two halves | Canada Post addressing guidelines — verified |
| 3 | Two spaces between province symbol and postal code | Canada Post addressing guidelines — verified |
| 4 | Address printed in uppercase, lower-case accepted | Canada Post addressing guidelines — verified |
| 5 | No punctuation unless part of a proper name | Canada Post addressing guidelines — verified |
| 6 | Municipality, province and postal code on the last line | Canada Post addressing guidelines — verified |
| 7 | D, F, I, O, Q, U never used in any position | Verified earlier in project |
| 8 | W and Z excluded from position 1 only; valid in 3 and 5 | Verified earlier in project; M4W and H2Z are real |
| 9 | Second character 0 = rural, 1–9 = urban | Verified earlier in project |
| 10 | District letter table, 18 letters | Verified earlier in project |
| 11 | X covers both NT and NU | Verified earlier in project |
| 12 | Nunavut has no urban FSAs | Verified earlier in project |
| 13 | Province/territory two-letter symbols (13) | Canada Post addressing guidelines — verified |
| 14 | StatCan publishes FSA boundaries under an open licence | Verified earlier in project |
| 15 | Full postal code file is a licensed Canada Post product | Verified earlier in project |
| — | Rollout dates of the postal code system | Deliberately omitted — no primary source located; do not add without one |