What you're using right now
- 100+ barcode & QR symbologies
- Live preview & customization
- PNG & SVG export, no login
- Copy to clipboard
Loading Barcode Mintβ¦
Free Online Barcode & QR Code Generator
Create a plain MSI barcode for shelf labels and inventory tags, with no check digit, directly in your browser.
Open the generator βTurn a CSV β or a numbered sequence β into hundreds of barcodes at once, exported as a ZIP of images or a print-ready PDF sheet. Launching with Pro.
The browser generator stays free forever. Paid plans are for teams who need bulk output and developers who need the REST API at scale β commercial license included. Tell us what you'd use; early-list members get first access and launch pricing.
What you're using right now
For designers & teams
Priced by requests. Commercial license and self-serve keys included; usage dashboard at launch.
MSI, short for Modified Plessey, is a numeric-only linear barcode originally developed by the Plessey Company in the United Kingdom in the 1970s and later modified by MSI Data Corporation, whose name it now carries. It encodes digits 0–9 using a binary pattern of bar widths, and it has long been a common choice for retail shelf-edge labels, inventory tags, and warehouse racking labels — environments where the barcode is generated and scanned within a single organization's own system, rather than shared across companies the way retail point-of-sale barcodes are. Because it's not a GS1-governed standard, MSI is best understood as a practical, closed-loop symbology rather than a public retail one.
Each digit in MSI is represented by four bits, encoded as a sequence of wide and narrow bar/space pairs — a binary 0 is a narrow bar followed by a wide space, and a binary 1 is a wide bar followed by a narrow space. Because every digit maps to a fixed 4-bit binary pattern, the symbol is essentially a string of binary-coded decimal values framed by a distinct start pattern and stop pattern, which is what lets a scanner recognize where the code begins and ends and read it in either direction.
This plain MSI variant, without any check digit, encodes exactly the digits you enter and nothing more — there's no built-in error detection. That's fine for closed-loop systems where the same organization controls both label printing and scanning and can rely on its own inventory database to catch mismatches, but it offers no protection if a label gets damaged or misread in a system with no independent validation. That's the exact gap that the MSI Mod 10 and MSI Mod 11 variants exist to close.
MSI encodes the digits 0–9 only, with no letters, punctuation, or extended characters. There is no length limit imposed by the symbology itself, though practical labels are typically 4 to 14 digits. Each digit uses 4 binary-coded bits represented as bar/space width pairs, framed by a fixed start pattern (bar-space-bar-space) and stop pattern (bar-space-bar). Plain MSI carries no check digit at all — that's the defining difference from its MSI Mod 10 and MSI Mod 11 siblings. MSI isn't part of any GS1 or ISO retail standard; it's a de facto standard maintained by convention and by barcode equipment vendors rather than a formal standards body, which is why implementations can vary slightly between vendors on quiet zone and ratio recommendations.
MSI shows up mainly in internal, closed-loop applications: retail shelf-edge price and stock labels, warehouse rack and bin location tags, library and video rental tracking in some older systems, and inventory control tags in manufacturing. It's less common in point-of-sale scanning of individual products (where UPC/EAN dominate) and less common in general logistics (where Code 128 dominates), because MSI isn't part of any GS1 standard and isn't recognized by most retail point-of-sale barcode readers out of the box — it's a symbology you choose when you control both ends of the label lifecycle.
Select MSI from the symbology list on the left, then enter your numeric string — digits 0–9 only, no check digit is added. From there you can:
/barcode?type=MSI&data=123456 — to generate codes programmatically from your inventory or warehouse systemIf you want built-in error detection instead, use the MSI Mod 10 or MSI Mod 11 variants, which append a calculated check digit to the same underlying encoding.
Since plain MSI has no check digit, print quality and scanner reliability matter more than with self-validating symbologies — a smudged or poorly printed label can be misread with no algorithmic way to catch the error. Keep bar width consistent and print at a resolution sharp enough to distinguish wide from narrow elements clearly, maintain a clean quiet zone on both sides of the symbol, and consider cross-checking scanned values against your inventory database as a practical substitute for a check digit. If your application can tolerate the extra digit, switching to MSI Mod 10 or MSI Mod 11 removes this risk at the source.
All three variants share the same binary bar-width encoding for digits 0–9; the only difference is whether, and how, a check digit is appended. Plain MSI adds nothing and trusts the surrounding system to catch errors. MSI Mod 10 appends one digit computed with a Luhn-style doubling algorithm — simple to calculate, and adequate for catching single-digit errors. MSI Mod 11 appends one digit computed with a weighted-sum algorithm that's statistically better at catching transposition errors (two digits swapped), at the cost of a slightly more complex calculation. Choose plain MSI only when your own system already validates scanned data some other way; otherwise Mod 10 or Mod 11 is almost always the safer default.