Skip to main content
Code 93 was designed as a denser, more reliable replacement for Code 39. It encodes the same 43 characters in less space, and every barcode carries two check characters.

Decode one

Scan or paste a barcode and see every part of it.

Make one

Generate a valid barcode from fields.

Where you’ll see it

  • Industrial and logistics labels that started on Code 39 and needed more data in the same space.
  • Less often than you’d expect. Code 128 is denser still and became the usual choice, so Code 93 is mostly found in systems that already used it.

Anatomy

Characters

Each character is 9 modules wide: three bars and three spaces, each 1 to 4 modules wide. Characters sit edge to edge with no gaps, which is a large part of why Code 93 is shorter than Code 39. The start and stop characters are the same pattern. A single-module bar after the stop character ends the symbol.

Full ASCII

Besides the 43 characters it shares with Code 39, Code 93 has four shift characters. Each combines with the character after it to make one of the other ASCII characters, such as lowercase letters. Unlike Code 39’s Full ASCII, the shift characters can’t be mistaken for data, so a scanner can always tell when they’re used.

Check characters

Every Code 93 barcode ends with two check characters, called C and K. Both use mod-47:
  1. C weights the data characters 1, 2, 3 and so on from the right, starting again at 1 after 20.
  2. K does the same over the data and C, starting again after 15.
For ZIPZAP, C is X and K is Q. Scanners verify both and then drop them, so they’re never printed or sent.
  • Code 39: the barcode Code 93 was designed to replace. Same characters, wider, and with only an optional check.
  • Code 128: denser still, with lowercase letters and digit compression.

Gotchas

  • Lowercase letters arrive as shift pairs. If your scanner doesn’t handle Full ASCII, you’ll see the shift character and an uppercase letter instead.
  • Code 93 and Code 39 aren’t interchangeable. A scanner set to read only one won’t read the other, even though the printed text looks alike.

Scanning it in your app

Specification

  • AIM USS Code 93: the Code 93 barcode specification.