Skip to main content
MSI Plessey, often just called MSI, is a numeric barcode used mostly on store shelf labels. It’s simple, but it has several incompatible check digit methods, and the scanner has to know which one a label uses.

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

  • Retail shelf labels and price tags, especially in grocery stores, for stock counts and reordering.
  • Warehouse bin labels.

Anatomy

Each bit is a bar and a space: a wide bar and a narrow space for 1, a narrow bar and a wide space for 0.

Check digits

MSI Plessey has four common check digit methods: None of them is marked in the barcode. A scanner set to the wrong method rejects every label, or worse, accepts them and passes the check digits through as data.
  • Plessey: the original barcode MSI was based on. It’s rarely seen now.
  • Interleaved 2 of 5: another numeric barcode, denser and more widely used outside shelf labels.

Gotchas

  • Extra digits at the end. The check digits were sent with the data, or the scanner is using a different method from the label.
  • Partial reads. MSI can’t detect a read of only part of the barcode. Fix the length.

Scanning it in your app

See Validation.

Specification

There’s no formal standard. Scanner and printer manufacturers each document the variants they support.