Skip to main content

Code 93

General & Common CodesAlso known as: Code 93

Published by the QRinsec Editorial Team — practical documentation about QR codes, barcode standards, and QRinsec’s client-side tools. Content is reviewed against product testing and published technical documentation from sources such as GS1, Denso Wave, and ISO standards where applicable.

Have questions or corrections? Contact us.

Code 93 is a more compact, higher-density successor to Code 39 that can encode the full ASCII set through shift characters while taking up less space.

Important Notice

Code 93 has no ISO standard — confirm scanner support with your hardware vendor before deployment.

Important Notice

Two mandatory check characters (C and K) must be correctly calculated; incorrect checks cause all reads to fail.

Key Facts

Characters
47 (A–Z, 0–9, 7 symbols + 4 shift)
Length
Variable
Check Characters
2 mandatory (Modulo 47)
Standard
No ISO standard (Intermec proprietary)
Common Use
Canada Post / inventory

What is a Code 93 barcode?

Code 93 is a linear barcode symbology introduced by Intermec in 1982 as a higher-density, more secure successor to Code 39. Like Code 39, it encodes 47 characters: uppercase A–Z, digits 0–9, and special characters (- . $ / + % SPACE), plus four special shift characters for Full ASCII mode. Unlike Code 39, Code 93 uses two mandatory check characters (modulo 47), making it more reliable for critical data capture applications. It is widely used in Canada Post shipping labels and some logistics and inventory systems.

Symbol structure explained

Each Code 93 character is represented by 3 bars and 3 spaces (6 elements total), each 1–4 modules wide — totalling 9 modules per character. The symbol begins with a unique start character (*) and ends with a full-width termination bar after the stop character. Two check characters (C and K) are appended before the stop character and are calculated from weighted modulo-47 sums of all preceding characters.

Dual check character algorithm (Modulo 47)

Code 93 appends two check characters:

  1. Check C: Weighted sum of all data character values, with weights cycling 1,2,3…20,1,2,3… from right to left; result mod 47.
  2. Check K: Weighted sum of all data characters PLUS Check C, with weights cycling 1,2,3…15 from right to left; result mod 47.

Both checks are verified by every Code 93 scanner, providing double error detection superior to Code 39's optional single check.

Code 93 vs. Code 39 vs. Code 128

Code 93 encodes the same 47-character set as Code 39 but in approximately 25% less space, due to its 6-element (vs. 9-element) character structure and lack of inter-character gaps. Code 128 is denser still and supports the full 128 ASCII set, making it the preferred choice for new designs. Code 93 occupies a niche where Code 39 compatibility is needed but space is limited.

When to use Code 93

Code 93 is the right choice when:

  • Canada Post shipping label specifications require it.
  • A legacy system mandates Code 93 for inventory or asset tracking.
  • You need better density than Code 39 without switching to Code 128's more complex implementation.

For new designs, prefer Code 128 unless a specific standard requires Code 93.

Printing requirements

Minimum X-dimension: 0.191 mm (7.5 mil). Quiet zones: 10× X-dimension each side. No mandatory minimum height, but a height ≥ 15% of symbol width is recommended. Always include human-readable text below for manual fallback. The two check characters should appear in the human-readable line for verification purposes.

Common scanning failures

Insufficient quiet zone is the primary Code 93 failure mode. Because characters are narrower than Code 39, ink spread proportionally affects Code 93 more — a ±20% bar-width tolerance must be maintained. Always verify print quality with a calibrated barcode verifier before production runs.

Comparison

FeatureCode 93Code 39Code 128
Character Set47 characters43 characters128 ASCII
Check Characters2 mandatory1 optional1 mandatory
Density vs. Code 39~25% more compactBaseline~30% more compact
ISO StandardNoneISO/IEC 16388ISO/IEC 15417

Frequently Asked Questions

What is the difference between Code 93 and Code 39?

Code 93 encodes the same 47-character set as Code 39 but is approximately 25% more space-efficient. Code 93 also has two mandatory check characters versus Code 39's optional single check, providing better error detection.

Does Code 93 have an ISO standard?

No. Unlike Code 39 (ISO/IEC 16388) and Code 128 (ISO/IEC 15417), Code 93 is an Intermec proprietary symbology with no ISO standard. Most modern scanners support it, but confirm compatibility before deployment.

Can Code 93 encode lowercase letters?

Not natively. Code 93 Full ASCII mode extends the character set to all 128 ASCII characters using four special shift characters, but this increases symbol length.

Where is Code 93 most commonly used?

Canada Post uses Code 93 on shipping labels. Some inventory and asset management systems also use it as a more compact alternative to Code 39.

Is Code 93 supported by standard barcode scanners?

Most modern laser and CCD scanners support Code 93, but it is not as universally enabled by default as Code 128 or Code 39. Always verify scanner configuration and enable the Code 93 symbology in scanner settings.

Need to create a Code 93 barcode?

Generate high-quality, scannable Code 93 barcodes for free with our advanced barcode generator. Download in vector SVG or PNG format.

Create Code 93 Barcode Now