Canadian Postal Codes Explained: Format, Structure and How to Read Them

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.

What is a Canadian postal code?

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.

The two halves of a postal code

Every Canadian postal code splits cleanly into two three-character halves, and the two halves do very different jobs.

HalfCharactersOfficial nameWhat it identifies
First threeA1AForward Sortation Area (FSA)A geographic region — part of a city, a whole small town, or a large rural area
Last three1A1Local 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.

What does each character mean?

Reading a postal code from left to right, each position carries a different kind of information.

First character — the postal district

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.

LetterProvince / region
ANewfoundland and Labrador
BNova Scotia
CPrince Edward Island
ENew Brunswick
GEastern Quebec
HMetropolitan Montreal
JWestern Quebec
KEastern Ontario
LCentral Ontario
MMetropolitan Toronto
NSouthwestern Ontario
PNorthern Ontario
RManitoba
SSaskatchewan
TAlberta
VBritish Columbia
XNorthwest Territories and Nunavut
YYukon

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.

Second character — rural or urban

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.

Third character — the specific area

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.

Last three characters — the local delivery unit

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.

Which letters are never used in Canadian postal codes?

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.

PositionTypeLetters allowed
1LetterA 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)
2Digit0–9
3LetterA 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)
4Digit0–9
5LetterA 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)
6Digit0–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.

How do I read a postal code I have never seen before?

Work left to right and stop when you have what you need. Take T2P 0A0:

  1. `T` — Alberta.
  2. `2` — not zero, so urban.
  3. `P` — a specific area within urban Alberta. Combined with the first two characters, T2P is a Calgary FSA.
  4. `0A0` — the delivery unit inside T2P. Nothing further to infer.

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:

  1. `X` — Northwest Territories or Nunavut. This is the one district letter that does not resolve to a single region.
  2. `0` — rural.
  3. `A` — a specific rural area.

Two codes, two completely different pictures, read in seconds.

How is a postal code written correctly?

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 province and territory symbols

The last line uses two-letter symbols, not full province names and not the older abbreviations:

SymbolProvince or territory
ABAlberta
BCBritish Columbia
MBManitoba
NBNew Brunswick
NLNewfoundland and Labrador
NSNova Scotia
NTNorthwest Territories
NUNunavut
ONOntario
PEPrince Edward Island
QCQuebec
SKSaskatchewan
YTYukon

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.

Is a postal code the same as a ZIP code?

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.

What is a Forward Sortation Area, and why does it matter?

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 and urban postal codes compared

RuralUrban
Second character01–9
Typical area coveredA town and its surrounding region, or a large sparsely populated areaPart of a neighbourhood, sometimes a single building
DeliveryOften rural routes, community mailboxes, general deliveryUsually door-to-door or centralised building delivery
Address formOften includes a rural route or PO box lineUsually 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.

Common mistakes

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.

Postal codes for developers and testers

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.

Frequently asked questions

How many characters is a Canadian postal code?

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.

Why are D, F, I, O, Q and U not used?

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.

Can a postal code start with W or Z?

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.

What does a postal code starting with 0 in the second position mean?

It means the code covers a rural delivery area. A digit from 1 to 9 in that position means an urban area.

Is "Canadian zip code" a real term?

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.

Do postal codes change?

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.

Can I work out someone's address from a postal code?

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.

Which postal district covers Nunavut?

X — shared with the Northwest Territories. The two territories do not have separate postal district letters.

In short

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

Claims register (for CLAIMS.md)

#ClaimSource status
1Postal code is six characters, pattern ANA NANCanada Post addressing guidelines — verified
2One space between the two halvesCanada Post addressing guidelines — verified
3Two spaces between province symbol and postal codeCanada Post addressing guidelines — verified
4Address printed in uppercase, lower-case acceptedCanada Post addressing guidelines — verified
5No punctuation unless part of a proper nameCanada Post addressing guidelines — verified
6Municipality, province and postal code on the last lineCanada Post addressing guidelines — verified
7D, F, I, O, Q, U never used in any positionVerified earlier in project
8W and Z excluded from position 1 only; valid in 3 and 5Verified earlier in project; M4W and H2Z are real
9Second character 0 = rural, 1–9 = urbanVerified earlier in project
10District letter table, 18 lettersVerified earlier in project
11X covers both NT and NUVerified earlier in project
12Nunavut has no urban FSAsVerified earlier in project
13Province/territory two-letter symbols (13)Canada Post addressing guidelines — verified
14StatCan publishes FSA boundaries under an open licenceVerified earlier in project
15Full postal code file is a licensed Canada Post productVerified earlier in project
—Rollout dates of the postal code systemDeliberately omitted — no primary source located; do not add without one

Related