Standards/kix
KIX
Overview
KIX (Dutch Klant index, "customer index") is a four-state postal barcode used by PostNL (formerly TPG Post / Royal TPG Post), the national postal service of the Netherlands 1, 2. It is a slightly modified variant of Royal Mail's RM4SCC: KIX keeps the same four-state bar alphabet but omits the start bar, stop bar and checksum that RM4SCC uses 1. KIX encodes a Dutch delivery address — postal code plus house number and optional addition — and is printed below the address block 1, 2.
History
KIX was introduced by the Dutch postal operator (then TPG Post / Royal TPG Post, now PostNL) as a national adaptation of Royal Mail's RM4SCC customer barcode for automated sorting of bulk mail 1, 2. (A precise public introduction date was not established from the sources consulted.)
Technical specification
Four-state bar structure. KIX uses the same four bar states as RM4SCC 2:
- Tracker (short, middle band).
- Ascender (tracker + upward extension).
- Descender (tracker + downward extension).
- Full (ascender + descender).
Character set. Digits 0–9 and uppercase letters A–Z 2, 5.
Encoded data. A KIX symbol typically encodes a Dutch postal code (four digits + two letters), a house number and an optional house-number addition 2. The house number and any suffix are separated by the letter X 1.
Differences from RM4SCC. KIX deliberately strips three RM4SCC features 1, 5:
- No start/stop bars — KIX has no special framing bars.
- No checksum — KIX omits the modulo-6 check character.
Because KIX has neither framing nor a check digit, it relies on the surrounding application context (fixed field layout, the address block above it) for reliable reading. KIX requires a quiet zone of at least 2 mm on all sides and is printed at roughly 20–24 bars per 25.4 mm [5-scandit].
Use cases
- Automated sorting and routing of Dutch bulk mail by PostNL 2, 5.
- Encoding postal code + house number + addition beneath the printed address to enable machine sorting to the delivery point 1, 2.
Implementations
- OkapiBarcode — Java, ~394 stars, active 2025; supports the Dutch Post KIX Code (noted as RM4SCC without the check digit) [3-okapi].
- jkctech/ManualKIX — Python, small project; a manual KIX decoder for Dutch post / PostNL barcodes [3-manualkix].
- antonscheffer/as_barcode — PL/SQL, ~27 stars; generates KIX alongside RM4SCC and Australia Post 4-State [3-asbar].
- productdevbook/etiket — TypeScript, ~409 stars, active 2026; zero-dependency four-state engine covering KIX, RM4SCC, Australia Post and Japan Post [3-etiket].
Comparison
KIX is the clearest example of the four-state lineage simplifying RM4SCC. It uses the identical four bar states and the same 0–9 / A–Z alphabet, but throws away RM4SCC's start bar, stop bar and checksum, and adopts the X-separator convention for house number and suffix 1. This makes KIX the leanest member of the family: where the Australia Post 4-State and Mailmark 4-state codes add a Format Control Code / data fields and Reed–Solomon error correction, and the Japan Post 4-State code adds control characters and a check digit, KIX removes structure. By contrast, Singapore Post uses RM4SCC entirely unaltered 1.
Fun facts
- KIX has no checksum at all — a rare choice among postal barcodes — so a misread bar cannot be self-detected by the symbol; reliability comes from the fixed address-form context in which it is printed 1.
- The house number and any suffix are joined with a literal
X(e.g. encoding123+Aas123XA), a quirk specific to KIX among the four-state codes 1.
Status
In use. KIX remains PostNL's four-state customer barcode for Dutch mail automation and is supported by mainstream barcode SDKs and open-source libraries 2, 5.
Sources
1 RM4SCC (KIX variant section) — Wikipedia — Wikipedia 2 KIX Code — Dynamsoft Barcode Reader SDK — Dynamsoft 3 OkapiBarcode — GitHub (woo-j) 4 ManualKIX — Manual KIX decoder for Dutch post / PostNL — GitHub (jkctech) 5 KIX 4-State Customer Code — Barcode Guide — Seagull Scientific 6 KIX Barcode Symbology — Scandit
Deployments
No country reports mention this standard by name.