EDGE ENGINE SUB-2MS DETERMINISTIC V8 EXECUTION • ZERO DATA RETENTION • EXPLORE API SPECS →
ISO 6346 / BIC Container Prefix Coding <1ms Edge Edge Compute

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.

Latency: <1ms Edge Availability: 99.99% Standard: ISO 6346 Clause 3 In-Memory Execution
Interactive Edge Workbench

⚡ 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.

32KB Demo Cap 60 req/min Burst <2ms V8 Compute Zero Data Retention
input.txt 0 B
output.json demo-ready
Status: Ready
{
  "status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Sandbox Quota: Free Tier (50 reqs/mo) • Production keys from $29/mo Get Free Sandbox Key →
Need 512KB+ Payloads, High-Throughput & 99.9% Production SLA?
Direct API keys include pooled monthly quotas, zero cold-starts, and HIPAA BAA eligibility on the Mega tier.
Get Production API Key →
LLM / MCP
Prompt-Ready Specification for AI Agents llms.txt
Structured format rules and schemas optimized for LLM coding agents and Model Context Protocol tooling.
Raw .md
Official Standard & Validation Protocol Authority: Bureau International des Conteneurs (BIC) & ISO ↗

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.

Latency
<1ms Edge
Standard
ISO 6346 Clause 3
Version
Max Payload
512 KB
Privacy
In-Memory (0 bytes stored)

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.

LettersAssigned ValuesRule
A - J10, 12, 13, 14, 15, 16, 17, 18, 19, 2011 is skipped
K - U21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 3222 is skipped
V - Z34, 35, 36, 37, 3833 is skipped

Parsed JSON Response Model

The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:

HTTP 200 JSON Response Envelope
{
  "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

What happens if the modulo 11 remainder is 10?

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:

Complementary Enterprise APIs

Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:

All ISO 6346 Container & Chassis Check-Digit Validator API Formats & Specifications (4) Directory Index ↓
BIC Bureau International des Conteneurs 3-Letter Owner Prefix Spec ISO 6346 Modulo-11 Shipping Container Check Digit Formula & Step-by-Step ISO 6346 4-Character Container Size and Type Code Directory ISO 6346 Equipment Category Identifiers (U, J, Z)