A Complete Guide to ISO 6346 Container Tracking
Every shipping container in the world carries an 11-character identifier defined by ISO 6346. Get it wrong by one character and your booking, your customs entry, and your tracking request all point at somebody else's box. This guide explains how the standard is built, how to validate a number by hand, and how to keep containers tracked without re-keying anything.
What ISO 6346 is and why it exists
ISO 6346 is the international standard for coding, identifying, and marking intermodal freight containers. It was created so a container loaded in Ningbo can be handed between a trucker, a rail operator, a terminal, a customs authority, and a shipping line without anyone renaming it. The owner codes themselves are registered with the Bureau International des Containers (BIC), which guarantees that no two operators issue the same prefix.
Because the identifier is globally unique and self-validating, it is also the key that carrier APIs, terminal operating systems, and tracking platforms use to join events together. That is why a mistyped container number does not return "wrong container" — it usually returns nothing at all.
Anatomy of a container number
An ISO 6346 identifier is always four letters followed by seven digits. Take MSCU1234566:
| Part | Example | Meaning |
|---|---|---|
| Owner code | MSC | Three letters, registered with the BIC, identifying the container's owner or principal operator. |
| Equipment category | U | U for all freight containers, J for detachable freight-container equipment, Z for trailers and chassis. |
| Serial number | 123456 | Six digits assigned by the owner. No meaning beyond uniqueness within that owner code. |
| Check digit | 6 | One digit derived from the other ten, used to catch typos and OCR misreads. |
The equipment category is the fastest sanity check in practice: if the fourth character is not U on an ocean container, the number is almost certainly wrong.
How the check digit is calculated
The check digit is a weighted modulus-11 checksum. The procedure is:
- Convert each of the first ten characters to a number. Digits keep their value; letters use the table below, which deliberately skips every multiple of 11.
- Multiply each value by 2 raised to its zero-based position (1, 2, 4, 8, 16, 32, 64, 128, 256, 512).
- Sum the ten products.
- Take the sum modulo 11. If the result is 10, the check digit is 0; otherwise it is the result itself.
Letter values
Worked example: MSCU1234566
| # | Char | Value | Weight | Product |
|---|---|---|---|---|
| 1 | M | 24 | 1 | 24 |
| 2 | S | 30 | 2 | 60 |
| 3 | C | 13 | 4 | 52 |
| 4 | U | 32 | 8 | 256 |
| 5 | 1 | 1 | 16 | 16 |
| 6 | 2 | 2 | 32 | 64 |
| 7 | 3 | 3 | 64 | 192 |
| 8 | 4 | 4 | 128 | 512 |
| 9 | 5 | 5 | 256 | 1280 |
| 10 | 6 | 6 | 512 | 3072 |
| Sum | 5528 | |||
5528 ÷ 11 = 502 remainder 6. The check digit is 6, so MSCU1234566 is a structurally valid container number — and MSCU1234567, the number people usually type as a placeholder, is not.
Size and type codes
ISO 6346 also defines a separate four-character size/type code stencilled under the container number. The first two characters describe length and height, the last two describe the container type. These are what tell you whether a booking needs a reefer plug or an out-of-gauge permit.
| Code | Meaning |
|---|---|
| 22G1 | 20ft standard (general purpose) dry container, 8'6" high |
| 42G1 | 40ft standard dry container, 8'6" high |
| 45G1 | 40ft high cube dry container, 9'6" high |
| 22R1 | 20ft refrigerated (reefer) container |
| 45R1 | 40ft high cube reefer |
| 22U1 | 20ft open top container |
| 42P1 | 40ft flat rack / platform container |
| 22T1 | 20ft tank container |
Common validation errors and what they mean
Container number must be 11 characters
Spaces, hyphens, or a missing check digit. A valid number is always 4 letters followed by 7 digits — MSCU1234566, never MSCU 123456.
First 3 characters must be letters (owner code)
The BIC owner code was mistyped, or a booking reference was pasted instead of the container number.
4th character must be a letter (equipment category)
Almost always U for freight containers. J and Z exist but are rare; a digit here means the number is wrong.
Invalid check digit. Expected X, got Y
One character was transposed or misread — the classic OCR failure at the gate. Recheck the number against the door plate before re-entering it.
Automating container tracking in 4VISION
Validating the number by hand is the easy part. The work is keeping hundreds of containers, their vessels, their ports, and the purchase orders inside them aligned as schedules move. 4VISION Delivery Manager does that from the container number alone:
- ISO 6346 validation on entry, with the expected check digit shown when a number fails
- Automatic carrier detection from the BIC owner code prefix
- Live ocean tracking — vessel, voyage, port events, and current map position
- Carrier ETA used as the single source of truth, with a distance-based estimate only when the carrier has not published one
- Many-to-many linking between containers and purchase orders, so a delayed vessel flags the affected orders
- The same workflow for air freight, tracked by AWB alongside your ocean shipments
See it with real shipment data
The demo workspace is preloaded with containers, air waybills, purchase orders, and ten years of delivery history — no signup required.