# Mailmark

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

Specifications:
- [Royal Mail Mailmark barcode definition document (Sept 2015)](https://www.royalmail.com/sites/default/files/Royal-Mail-Mailmark-barcode-definition-document-September-2015.pdf)
- [Mailmark 4-state barcode L encoding and decoding instructions (Sept 2015)](https://www.royalmail.com/sites/default/files/Mailmark-4-state-barcode-L-encoding-and-decoding-instructions-Sept-2015.pdf)
- [Royal Mail Mailmark Barcode FAQ — BarcodeFAQ.com](https://www.barcodefaq.com/usps-postal/royal-mail-mailmark/)

## Overview

**Mailmark** is Royal Mail's barcode and machine-readable-mail programme, introduced to replace the older Customer Barcode ([RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) / CBC) and to add end-to-end tracking, delivery reporting and analytics to UK bulk mail <sup>[3][3]</sup>. Mailmark is published in **two distinct barcode forms** <sup>[1-jss], [3][3]</sup>:

1. a **4-state barcode** (an evolution of [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) adding Reed–Solomon error correction), and
2. a **2D Data Matrix** form called **CMDM** (Complex Mail Data Mark), built on Data Matrix ECC 200 <sup>[2][2]</sup>.

Both forms carry far more than a destination postcode: they encode supply-chain and item identifiers that let Royal Mail report when mail enters the network and predict delivery <sup>[3][3]</sup>.

## History

Royal Mail published the Mailmark barcode definition documents in **September 2015** <sup>[6][6], [7][7]</sup>. From **January 2018** Mailmark began **replacing the Customer Barcode (CBC / [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc))** as the preferred barcode for Royal Mail's Retail and Network/Wholesale Access mail products <sup>[3][3]</sup>.

## Technical specification

### 4-state form

The Mailmark 4-state barcode retains the [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) four-state bar alphabet — **tracker, ascender, descender and full-height bars** — representing the 37 symbols **0–9, A–Z and space** <sup>[5][5]</sup>. Two variants exist <sup>[3][3], [5][5]</sup>:

- **Barcode L (Long)** — ~**78 bars** (~89 mm), encoding up to **26 characters**; intended for machine-readable Low-Sort and Unsorted Retail and Access 70 services <sup>[3][3], [5][5]</sup>.
- **Barcode C (Consolidator)** — **66 bars** (~76.2 mm), encoding up to **22 characters**; intended for consolidated mail <sup>[3][3], [5][5]</sup>.

**Reed–Solomon error correction** is applied over a Galois field of **32 values**: Type L computes **seven** Reed–Solomon check numbers from **19** data numbers, while Type C computes **six** check numbers from **16** data numbers <sup>[5][5]</sup>.

### 2D form (CMDM)

The Complex Mail Data Mark (CMDM) is a **Data Matrix ECC 200** symbol (ISO/IEC 16022) using the **C40 character set** (0–9, A–Z, space) <sup>[2][2]</sup>. Three module sizes are used <sup>[2][2], [3][3]</sup>:

- **Type 7** — 24×24 modules (letters; ~51 characters, ~6 for customer use).
- **Type 9** — 32×32 modules (large letters; ~90 characters).
- **Type 29** — 16×48 modules (large letters; ~70 characters).

Module size must be **0.5–0.7 mm** <sup>[2][2]</sup>. As an ECC 200 symbol, CMDM uses the Reed–Solomon algorithm for error correction inherent to Data Matrix <sup>[2][2]</sup>.

### Encoded data

Both forms encode fields including a **UPU/format & class identifier, supply-chain ID, item ID, destination postcode with Delivery Point Suffix, and return-to-sender postcode**, plus optional customer content in the larger 2D types <sup>[3][3]</sup>.

## Use cases

- Machine-readable, trackable UK bulk mail under Royal Mail's Retail and Network/Wholesale Access portfolios <sup>[2][2], [3][3]</sup>.
- Reporting and analytics: tracking mail/delivery status and predicting delivery dates for marketing and operational use <sup>[3][3]</sup>.
- Access to Mailmark pricing/discounts, which require registration with Royal Mail <sup>[3][3]</sup>.

## Implementations

- **OkapiBarcode** — Java, ~394 stars, active 2025; general open-source generator. (RM4SCC is supported; Mailmark is not listed among its symbologies, so the 4-state alphabet can be produced but Mailmark's Reed–Solomon framing is not a documented feature) [[1-okapi]].
- **Aspose.BarCode** (commercial, Java / Python-via-Java) — documents generation and reading of Mailmark 4-state barcodes with Reed–Solomon error correction [[1-aspose]].

## Comparison

Mailmark's 4-state form is a **direct descendant of [RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc)**: same four bar states and character alphabet, but with Reed–Solomon error correction and a richer data payload (supply-chain and item IDs, return-to-sender postcode) that RM4SCC lacks <sup>[3][3], [5][5]</sup>. Where the Dutch [KIX](https://docs.barcoder.ai/docs/standards/kix) *removes* RM4SCC's start/stop/checksum, Mailmark instead *adds* structure on top of RM4SCC. The CMDM 2D form abandons the four-state bar approach entirely for **Data Matrix ECC 200**, paralleling how other posts (e.g. USPS) offer both linear and 2D options <sup>[2][2]</sup>. Within the broader four-state lineage, Mailmark sits alongside the [Australia Post 4-State](https://docs.barcoder.ai/docs/standards/australia-post-4-state) and [Japan Post 4-State](https://docs.barcoder.ai/docs/standards/japan-post-4-state) codes as a Reed–Solomon-protected national variant of the RM4SCC concept.

## Fun facts

- Mailmark ships in two completely different machine-readable shapes — a striped four-state bar code and a square 2D Data Matrix — under one brand, letting mailers choose between the legacy four-state sorter ecosystem and a denser 2D code <sup>[1-jss], [2][2]</sup>.

## Status

**Active and preferred.** Mailmark is Royal Mail's current barcode standard and, since January 2018, the designated replacement for the older Customer Barcode ([RM4SCC](https://docs.barcoder.ai/docs/standards/rm4scc) / CBC) on Retail and Access mail <sup>[3][3]</sup>.

## Sources

[1] [Mailmark 4-State Barcodes — Documentation](https://docs.aspose.com/barcode/net/mailmark-4state-barcode/) — Aspose
[2] [Royal Mail CMDM Mailmark — Barcode Guide](https://barcodeguide.seagullscientific.com/Content/Symbologies/CMDM.htm) — Seagull Scientific
[3] [Royal Mail Mailmark Barcode FAQ](https://www.barcodefaq.com/usps-postal/royal-mail-mailmark/) — IDAutomation/BarcodeFAQ
[4] [Royal Mail Mailmark — Just Solve the File Format Problem](http://justsolve.archiveteam.org/wiki/Royal_Mail_Mailmark) — ArchiveTeam
[5] [Mailmark 4-state barcode L encoding and decoding instructions (Sept 2015)](https://www.royalmail.com/sites/default/files/Mailmark-4-state-barcode-L-encoding-and-decoding-instructions-Sept-2015.pdf) — Royal Mail
[6] [Royal Mail Mailmark barcode definition document (Sept 2015)](https://www.royalmail.com/sites/default/files/Royal-Mail-Mailmark-barcode-definition-document-September-2015.pdf) — Royal Mail
[7] [Mailmark 4-state barcode C encoding and decoding instructions](https://www.royalmailwholesale.com/mint-project/uploads/229658720.pdf) — Royal Mail Wholesale

[1-jss]: http://justsolve.archiveteam.org/wiki/Royal_Mail_Mailmark
[1-okapi]: https://github.com/woo-j/OkapiBarcode
[1-aspose]: https://docs.aspose.com/barcode/net/mailmark-4state-barcode/

[1]: https://docs.aspose.com/barcode/net/mailmark-4state-barcode/
[2]: https://barcodeguide.seagullscientific.com/Content/Symbologies/CMDM.htm
[3]: https://www.barcodefaq.com/usps-postal/royal-mail-mailmark/
[4]: http://justsolve.archiveteam.org/wiki/Royal_Mail_Mailmark
[5]: https://www.royalmail.com/sites/default/files/Mailmark-4-state-barcode-L-encoding-and-decoding-instructions-Sept-2015.pdf
[6]: https://www.royalmail.com/sites/default/files/Royal-Mail-Mailmark-barcode-definition-document-September-2015.pdf
[7]: https://www.royalmailwholesale.com/mint-project/uploads/229658720.pdf

## Deployments

_No country reports mention this standard by name._
