Inventory & assets

Code 93 barcode

A compact successor to Code 39 with two mandatory check characters.

Also known as: USS-93

What is Code 93?

Code 93 was designed as a denser, more secure replacement for Code 39, encoding the same character set in about three quarters of the width and adding two mandatory check characters. It is used by Canada Post and in some logistics and asset systems, but never displaced Code 39 or Code 128 broadly, so scanner support should be confirmed before you standardize on it.

Encodes: The 43 Code 39 characters plus four shift characters that reach full ASCII.

Code 93 bin label. Same characters as Code 39, noticeably narrower, with two check characters the scanner strips.

Open Code 93 in the generator

How Code 93 is structured

Code 93 keeps the Code 39 character repertoire and adds the two things Code 39 lacked: compact fixed-width characters and mandatory checksums.

Part Length What it means
Start 1 character A unique start pattern, added by the encoder.
Data Variable Letters, digits, and symbols; shift characters extend to full ASCII.
Check characters C and K 2 characters Two weighted mod 47 sums, the second computed over the data plus the first. Both are stripped by the scanner.
Stop and termination bar 1 character plus 1 module Marks the end of the symbol.

Specifications

Character set
47 characters plus four shift characters for full ASCII
Length
Variable
Check characters
Two, mandatory (C and K), mod 47; not shown in the human-readable text
Density
Each character is 9 modules; roughly 25% narrower than Code 39
Quiet zones
10X on the left and right
Self-checking
Yes

Dimensions are GS1 General Specifications targets. Confirm against the retailer’s current routing guide before a print run.

Where it is used

  • Canada Post mail and parcel processing
  • Asset and inventory systems that outgrew Code 39 but predate Code 128
  • Some electronics and component labeling
Generated by the system

A niche choice, so confirm the scanners first

Code 93 is generated by the same systems that would print Code 128, and for most operations Code 128 is the better default: equally dense, more widely enabled, and understood by every trading partner. Choose Code 93 when a specific downstream system, such as a postal process, requires it.

Mistakes that cost money

Scanners with Code 93 disabled

Many handhelds ship with Code 93 turned off. A label that looks fine scans as nothing until the symbology is enabled in the scanner configuration.

Confusing it with Code 39

Same characters, different patterns. A Code 39 font or decoder will not produce or read Code 93.

Expecting the check characters in the data

C and K are computed and stripped. Storing them corrupts the identifier.

How Endless handles Code 93

Endless treats Code 93 like any other internal label format: the scanned value maps to a location, unit, or asset record, and the operation is free to standardize on Code 128 or 2D labels over time.

Frequently asked questions

Why choose Code 93 over Code 128?

Usually you would not. Code 128 is as dense, more widely enabled on scanners, and the basis of GS1-128 for trading partners. Code 93 makes sense only when a downstream process specifically requires it.

Is Code 93 compatible with Code 39 scanners?

No. The character patterns are different. Most modern scanners support both, but Code 93 often has to be enabled explicitly.

Related symbologies

  • Code 39

    The oldest alphanumeric barcode still in daily use, self-checking and printable from any font.

  • Code 128

    The dense, full-ASCII linear barcode behind most warehouse, tote, and carrier labels.

Definitions in the glossary

Browse the full barcode symbology guide.

Book an Endless Commerce demo

See it on your channels.

Spend your time on the business, not the busywork. Book a demo and watch Endless run your operations across every channel you sell on.

Get a Demo