ISO 6346 Modulo-11 Shipping Container Check Digit Formula & Step-by-Step
Step-by-step Modulo-11 check digit calculation for 11-character intermodal container numbers. This specification documents the exact field layout, checksum rules, and validation behavior so your integration matches ISO 6346 / BIC Container Prefix Coding without reading the source standard.
⚡ Live ISO 6346 Modulo-11 Shipping Container Check Digit Formula & Step-by-Step Interactive Workbench
Test real-time validation and schema parsing for ISO 6346 Modulo-11 Shipping Container Check Digit Formula & Step-by-Step directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Container check digit calculator — free, runs entirely in your browser.
Quick Summary: Step-by-step Modulo-11 check digit calculation for 11-character intermodal container numbers. Validates strictly against ISO 6346 / BIC Container Prefix Coding with sub-5ms in-memory response times.
Specification & Structural Breakdown
Technical Summary: Validates strictly against ISO 6346 / BIC Container Prefix Coding. Payloads are parsed in memory and return clean, typed JSON in milliseconds with zero data logged.
The 11th digit is a check digit calculated using powers of 2 weights (2^0 to 2^9) with letters converted to values where multiples of 11 (11, 22, 33) are excluded.
| Letters | Assigned Values | Rule |
|---|---|---|
| A - J | 10, 12, 13, 14, 15, 16, 17, 18, 19, 20 | 11 is skipped |
| K - U | 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 | 22 is skipped |
| V - Z | 34, 35, 36, 37, 38 | 33 is skipped |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"containerNumber": "CSQU3054383",
"checkDigit": 3,
"checkDigitCalculated": 3,
"valid": true
}
Copy-Paste Integration Code (6 Languages)
Integrate ISO 6346 Modulo-11 Shipping Container Check Digit Formula & Step-by-Step directly into your production application with native, zero-dependency code snippets in cURL, Node.js, Python, Go, C#, and a ready-to-paste Claude prompt. Get a free API key → (no credit card required):
curl --request POST \
--url "https://api.stanzaapi.com/container-validator/api/v1/container/validate" \
--header "Content-Type: application/json" \
--header "x-api-key: YOUR_API_KEY" \
--data '{
"containerNumber": "CSQU3054383",
"sizeTypeCode": "45G1"
}'const response = await fetch("https://api.stanzaapi.com/container-validator/api/v1/container/validate", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.API_KEY || "YOUR_API_KEY"
},
body: JSON.stringify({
"containerNumber": "CSQU3054383",
"sizeTypeCode": "45G1"
})
});
const data = await response.json();
console.log(data);import requests
import json
url = "https://api.stanzaapi.com/container-validator/api/v1/container/validate"
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
payload = {
"containerNumber": "CSQU3054383",
"sizeTypeCode": "45G1"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())package main
import (
"bytes"
"fmt"
"io"
"net/http"
"os"
)
func main() {
url := "https://api.stanzaapi.com/container-validator/api/v1/container/validate"
payload := []byte(`{"containerNumber":"CSQU3054383","sizeTypeCode":"45G1"}`)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(payload))
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-api-key", os.Getenv("API_KEY"))
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", Environment.GetEnvironmentVariable("API_KEY") ?? "YOUR_API_KEY");
var json = @"{""containerNumber"":""CSQU3054383"",""sizeTypeCode"":""45G1""}";
var payload = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.stanzaapi.com/container-validator/api/v1/container/validate", payload);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);
}
}Integrate the StanzaAPI container-validator micro-API.
Endpoint: POST https://api.stanzaapi.com/container-validator/api/v1/container/validate
Auth header: x-api-key: YOUR_API_KEY
Content-Type: application/json
Request body:
{
"containerNumber": "CSQU3054383",
"sizeTypeCode": "45G1"
}
Rules:
- Send the request with a 2-second timeout.
- Parse the standard envelope { success, data, meta: { latency_ms, version } }.
- On failure, read { success: false, error, code } and branch on the code.
- Do not retry 4xx responses; surface the error code to the caller.
- Treat invalid-but-well-formed payloads as HTTP 200 with data.valid === false.Frequently Asked Questions & Technical Notes
According to ISO 6346, if the remainder is 10, the check digit is designated as 0.
Related ISO 6346 Container & Chassis Check-Digit Validator API Formats
Explore sibling specifications and standards in the same developer cluster:
BIC Bureau International des Conteneurs 3-Letter Owner Prefix Spec
Verify 3-letter BIC owner prefixes for shipping lines, container leasing companies, and rail operators.
View Format →ISO 6346 4-Character Container Size and Type Code Directory
Decode ISO 6346 4-character size and type codes into precise metric and imperial dimensions and cargo types.
View Format →ISO 6346 Equipment Category Identifiers (U, J, Z)
Understand the 4th position equipment category identifier letters (U, J, Z) in container numbers.
View Format →Complementary Enterprise APIs
Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:
GS1 2027 Barcode & QR Decoder →
Decode SSCC-18 pallet tags, serial logistics identifiers, and GS1 Digital Link URIs.
IATA Cargo & Air Waybill Validator →
Validate 11-digit AWB prefixes and airline codes for multimodal air-sea freight.
EU CBAM Carbon Importer Reporting →
Calculate emissions embedded in imported goods transported across global maritime lanes.