# PostBar

> Source: https://docs.barcoder.ai/docs/standards/postbar
> research date 2026-06-04 · extracted at 2026-10-03
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [PostBar — Wikipedia](https://en.wikipedia.org/wiki/PostBar)
- [PostBar barcode: Canadian Post office — free-barcode.com](https://free-barcode.com/barcode/barcode-types-e/postbar-barcode-canadian-post-office.asp)

## Overview

**PostBar**, also called **CPC 4-State** (Canada Post Corporation 4-State), is the black-ink, four-state barcode system used by Canada Post for automated mail sorting and delivery <sup>[1][1]</sup>. Like its sibling national postal codes, PostBar is **height-modulated**: information is carried by the vertical state of each bar rather than by bar width, allowing high-speed optical sorting equipment to read it <sup>[1][1]</sup>. PostBar is applied to flats (oversized mail such as magazines) and parcels, and is derived from the United Kingdom's [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) system, but layers on a Canada-specific structure and encoding that Canada Post does not publish in full <sup>[1][1], [2][2]</sup>.

## History

PostBar was developed by Canada Post as its national equivalent of the four-state customer barcodes adopted by other postal administrations, and is explicitly **derived from the [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) system used by the British Royal Mail** <sup>[1][1], [2][2]</sup>. Unlike RM4SCC and several other national four-state codes, Canada Post keeps the precise structure and encoding rules of PostBar **proprietary and largely undocumented publicly**, describing it as "an obscured structure and encoding system unique to Canada Post" <sup>[1][1]</sup>. Detailed published historical milestones (exact adoption year) are not available in the sourced material.

## Technical specification

**Four bar states.** Each bar in a PostBar symbol takes one of four states <sup>[1][1]</sup>:

- **Tracker** — short and centred (occupies the middle band only).
- **Ascender** — medium bar elevated above the centre.
- **Descender** — medium bar lowered below the centre.
- **Full bar** — full height (tracker plus ascender plus descender).

**Base-3 encoding.** PostBar encodes values in base-3 using the bar states: a full-height bar encodes 0, a short lower bar encodes 1, and a short upper bar encodes 2 <sup>[1][1]</sup>.

**Character sets.** Four character sets are defined, named **"A", "N", "Z", and "B"** <sup>[1][1], [2][2]</sup>:

- **A** characters — three-bar, used exclusively to encode letters.
- **N** characters — two-bar, used exclusively to encode digits.
- **Z** characters — encode either letters or digits.
- **B** characters — used for machine IDs <sup>[1][1]</sup>.

**Reed–Solomon error correction.** PostBar applies Reed–Solomon error correction so that if a piece of mail is damaged or mishandled, the encoded information can still be recovered <sup>[1][1], [2][2]</sup>. Error-correction fields are written with the notation **[RS-nn]**, where *nn* is the number of bars used for the field <sup>[2][2]</sup>.

**Data Content Identifier (DCI).** A dedicated element specifies which kind of information is encoded (postal codes, customer data, delivery points) <sup>[1][1]</sup>.

**Nine formats.** Canada Post defines nine distinct PostBar formats <sup>[1][1], [2][2]</sup>:

- **Three domestic** codes (mail within Canada): D07, D12, D22, carrying DCIs A–L.
- **Two global** codes (mail routed outside Canada): G12, G22, carrying DCIs 1–9.
- **Three service** codes (customer-applied barcodes): S06, S11, S21, carrying DCIs M–U.
- **One internal** code (testing, maintenance, tracking by Canada Post): C10, carrying DCIs V–Z.

A 52-bar variant is used for **business reply mail** addressing and payment <sup>[1][1]</sup>.

## Use cases

- **Automated letter and flat sorting** within Canada Post's mechanised sortation network <sup>[1][1]</sup>.
- **Parcel routing and tracking** <sup>[1][1]</sup>.
- **Customer-applied barcodes** via the dedicated service formats (S06/S11/S21), letting bulk mailers pre-barcode their mail <sup>[1][1], [2][2]</sup>.
- **Business reply mail** routing and payment using the 52-bar format <sup>[1][1]</sup>.

## Implementations

- **[zint](https://github.com/zint/zint)** (C, 771★, active 2026) — open-source library covering 50+ symbologies including the four-state postal family <sup>[4][4]</sup>.
- **[OkapiBarcode](https://github.com/woo-j/OkapiBarcode)** (Java, 394★, active 2026) — open-source encoder supporting four-state postal symbologies.

Because Canada Post does not publish the full PostBar encoding, third-party software typically targets the open four-state postal codes ([RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc), Australia Post, USPS OneCode) rather than fully reproducing CPC 4-State.

## Comparison

| Feature | PostBar (CPC 4-State) | [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) | [Intelligent Mail Barcode](https://docs.barcoder.ai/docs/standards/intelligent-mail-barcode) (USPS) |
|---|---|---|---|
| Operator | Canada Post | Royal Mail (UK) | USPS |
| Bar states | 4 | 4 | 4 |
| Modulation | Height | Height | Height |
| Error correction | Reed–Solomon | Checksum (no RS) | Reed–Solomon |
| Spec openness | Proprietary/obscured | Published | Published |

PostBar is part of the **four-state postal family** that descends from [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc); it shares the four-state height-modulated principle with [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) and the Australia Post 4-state code, but unlike the openly documented [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) its internal structure is kept proprietary by Canada Post <sup>[1][1], [2][2]</sup>.

## Fun facts

- PostBar's structure is deliberately **obscured** — Canada Post is one of the few postal operators that does not publicly document its four-state code, complicating third-party implementation <sup>[1][1]</sup>.
- Despite being a four-state cousin of [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc), PostBar adds Reed–Solomon error correction, which RM4SCC does not use <sup>[1][1]</sup>.

## Status

PostBar remains the operational four-state barcode system of Canada Post for automated mail sorting and delivery <sup>[1][1]</sup>. No published replacement programme is documented in the sourced material.

## Sources

[1]: https://en.wikipedia.org/wiki/PostBar
[2]: https://free-barcode.com/barcode/barcode-types-e/postbar-barcode-canadian-post-office.asp
[3]: https://free-barcode.com/barcode/barcode-history/history-postbar-barcode-canadian.asp
[4]: https://github.com/zint/zint

[1] [PostBar — Wikipedia](https://en.wikipedia.org/wiki/PostBar) — Wikipedia, 2026
[2] [PostBar barcode: Canadian Post office](https://free-barcode.com/barcode/barcode-types-e/postbar-barcode-canadian-post-office.asp) — free-barcode.com
[3] [The history of PostBar barcode: Canadian Post office](https://free-barcode.com/barcode/barcode-history/history-postbar-barcode-canadian.asp) — free-barcode.com
[4] [zint/zint](https://github.com/zint/zint) — GitHub, 2026

## Deployments

_No country reports mention this standard by name._
