Warehouse Technology
Container Numbers Explained: ISO 6346, Check Digits & Private Fleets

Every container tells you who it is. Most of them, anyway.
Someone is standing in a terminal with a phone in their hand. In front of them is a steel box, and painted on its door are eleven characters. Those characters are the container's name, its passport and its database key all at once. Every party that will ever touch this box refers to it by that one string: the bill of lading, the customs declaration, the terminal's gate system, the stowage plan on the vessel, the release order at the far end, and the inspection being recorded right now. The number is what lets a customs officer three countries away accept that the steel in front of them is the steel the paperwork describes.
Get one character wrong and the box stops matching its own documents. Somewhere downstream, a planner, an officer or a driver is looking for a container that, on paper, doesn't exist.
So it is worth understanding exactly what those eleven characters are, and how you can check them without asking a database. It is also worth knowing what happens with the containers that quietly ignore the standard. They are out there, and if you run one of those fleets, they are your whole yard.
The anatomy of a container number
The format is defined by ISO 6346:
Part | Length | Example | Meaning |
|---|---|---|---|
Owner code | 3 letters |
| The company that owns or operates the container |
Equipment category identifier | 1 letter |
|
|
Serial number | 6 digits |
| The owner's own numbering, with no meaning outside their fleet |
Check digit | 1 digit |
| Calculated from the ten characters before it |
ABCU1234560 therefore reads: owner ABC, a freight container, serial number 123456, check digit 0.
One thing that trips people up: the four-character code marked nearby (22G1, 45R1) has nothing to do with identity. That is the size and type code, and it tells you the box is a 20ft general-purpose or a 40ft high-cube reefer.
The owner code and the BIC register
The first three letters are the interesting ones. They are registered with the BIC, the Bureau International des Containers in Paris, which maintains the global register of owner codes. That registration is what makes the whole system work: because no two operators share a prefix, no two containers on earth share an eleven-character identifier. A box handed from a trucker to a terminal to a vessel to a terminal to another trucker keeps one unambiguous name the entire way.
In practice, the four characters ending in U (MSCU, CMAU, HLXU) are what your eye learns to recognise as a container number.
The check digit: verifying a number without a database
This is the most useful thing in the standard, and the least known outside the industry. The last digit is a checksum over the first ten characters, so you can verify a reading offline, instantly, with no lookup.
Here's the calculation.
Step 1: turn each of the first ten characters into a number. Digits are themselves. Letters start at A = 10 and count upwards, skipping every multiple of 11 (so there is no 11, 22 or 33 in the table):
A | B | C | D | E | F | G | H | I | J | K | L | M |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 |
Step 2: weight each value by its position, doubling as you go: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512.
Step 3: add up the ten products and take the remainder after dividing by 11. That remainder is the check digit. If it comes out as 10, the check digit is 0.
Worked example, CSQU3054383:
Character | C | S | Q | U | 3 | 0 | 5 | 4 | 3 | 8 |
|---|---|---|---|---|---|---|---|---|---|---|
Value | 13 | 30 | 28 | 32 | 3 | 0 | 5 | 4 | 3 | 8 |
Weight | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 |
Product | 13 | 60 | 112 | 256 | 48 | 0 | 320 | 512 | 768 | 4096 |
The products sum to 6185. Divide by 11 and the remainder is 3. The check digit on the box is 3, so the number is valid.
Why we care about this: the check digit catches essentially every single-character error and most transpositions. A 1 read as a 7, a 3 read as an 8, a B read as an R: each produces a perfectly plausible container number that only the checksum will reject. When our scanner is unsure of a reading, it can test the alternatives and keep the one that checks out. An operator who trusts the app works a great deal faster than one who verifies every scan by hand.
Where the standard stops holding: private fleet pools
Now the part that rarely makes it into the explainers.
Not every container is a deep-sea box belonging to a carrier or a leasing company. Other equipment runs in private fleets: regional pools, domestic distribution networks, closed-loop shuttles between two fixed sites, industrial equipment that never boards a vessel. These containers move within a country or a region and never enter the global interchange system.
That changes the calculation. The eleven-character shape is worth having whatever you do, because every yard system, ERP field and shipment label already expects it. The register is another matter, since it exists to keep you unique among strangers and a closed loop has no strangers in it. So the format stays and the registration goes. Stand in front of one of these containers and you notice it in two places:
The owner code is missing from the BIC register. Check the scan against the register and it comes back unknown, even though the container is real, in service, and sitting right there.
The fourth character is not always a
U,JorZ. Fleets may use that position for their own purposes, often encoding equipment type or sub-fleet where a carrier would simply repeatU. That gives you codes likeFMSBorATBE, where a BIC-registered code such asABCUhas theUdoing its standard job.
The check digit is not the problem here. A fleet that adopts the format almost always adopts the arithmetic with it, so the checksum still does its job and a misread is still caught. What breaks is the lookup and the pattern match: the prefix isn't in the register, and the fourth character fails a strict ISO test. Software that insists on both will reject these containers outright.
For the operator that is a daily nuisance. The equipment is real, the numbering is deliberate and internally consistent, and the software still refuses it.
Cargosnap scans both
We handle the standard properly. The scanner reads ISO 6346 codes, checks the owner code against a current BIC register, and verifies the check digit on every scan.
And we support private fleet codes. Customers running their own pool can configure their fleet's coding, and the scanner reads those codes like any other. A FMSB… or ATBE… container scans first time. No workaround, no typing it in by hand, no "the system doesn't accept that".
Cargosnap is built for logistics. Registered with BIC or numbered by you, your containers are the ones we had in mind. Try us on your boxes.
Frequently asked
How do I calculate a container check digit? Convert the first ten characters to values (digits as themselves, letters from A = 10 upward, skipping multiples of 11), multiply each by 1, 2, 4, 8 up to 512 by position, sum them, and take the remainder modulo 11. A remainder of 10 means the check digit is 0.
What do the letters at the end of a container prefix mean? The fourth letter is the equipment category: U is a freight container, J is detachable freight-container-related equipment, Z is a trailer or chassis. Private fleets often use the position differently.
Are all container numbers registered with BIC? No. Owner codes for containers in international traffic are, while private fleets operating regionally frequently are not.
What is the difference between a container number and its size/type code? The number (eleven characters) is the container's identity. The size/type code (four characters, e.g. 22G1) describes its dimensions and type.


