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.
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
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
Definitions in the glossary
- Warehouse Management System (WMS)→
The system that runs day-to-day warehouse operations — receiving, slotting, picking, shipping.
Browse the full barcode symbology guide.

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