ISO 6346 Container & Chassis Check-Digit Validator API
Verify intermodal container numbers, calculate ISO 6346 MOD-11 check digits, and decode size/type codes in sub-1ms pure compute.
⚡ Live Pure-Compute Playground
Test deterministic edge parsing with sub-2ms execution across 330+ Cloudflare V8 edge locations. Zero persistent storage, zero cold-starts, pure function $f(x)=y$.
Key Capabilities & Performance Architecture
- ✓ Complete ISO 6346 Modulo-11 check digit verification and calculation
- ✓ Automated extraction of 3-letter BIC Owner Code, Equipment Identifier (U, J, Z), and Serial Number
- ✓ 4-character Size & Type code decoder (e.g. 22G1 = 20ft Standard, 45G1 = 40ft High Cube, 45R1 = 40ft Reefer)
- ✓ Zero external subrequests, sub-1ms edge latency on Cloudflare Workers
- ✓ Supports ocean containers, intermodal chassis (Z), and detachable equipment (J)
ISO 6346 Standard Specifications (4 Specifications)
Explore full structural breakdowns, checksum logic, and field schemas for every supported format.
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 Specification →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.
View Specification →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 Specification →ISO 6346 Equipment Category Identifiers (U, J, Z)
Understand the 4th position equipment category identifier letters (U, J, Z) in container numbers.
View Specification →API Endpoints & Request Signatures
| Method | Path | Description |
|---|---|---|
POST |
/api/v1/container/validate |
Validate container number check digit and decode size/type code |
POST |
/api/v1/container/check-digit |
Calculate check digit for first 10 characters of container ID |
Sample Response JSON Payload
All endpoints deliver strongly-typed envelopes with deterministic parsing and performance metrics.
{
"success": true,
"data": {
"valid": true,
"containerNumber": "CSQU3054383",
"ownerCode": "CSQ",
"categoryIdentifier": "U (Freight Container)",
"serialNumber": "305438",
"checkDigit": 3,
"checksumValid": true,
"sizeType": {
"code": "45G1",
"length": "40 ft (12.192 m)",
"height": "9 ft 6 in (2.896 m High Cube)",
"type": "General Purpose Container with ventilation"
}
},
"meta": {
"latency_ms": 0.65,
"version": "1.0.0"
}
}
Multi-Language Integration Code
Copy and paste ready-to-run snippets with your direct API credentials:
curl --request POST \
--url "https://iso-6346-container-chassis-check-digit-validator.stanzaapi.com/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://iso-6346-container-chassis-check-digit-validator.stanzaapi.com/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://iso-6346-container-chassis-check-digit-validator.stanzaapi.com/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://iso-6346-container-chassis-check-digit-validator.stanzaapi.com/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))
}
Frequently Asked Questions
Letters are converted to numbers omitting multiples of 11 (A=10, B=12... Z=38). Each of the 10 characters is multiplied by 2^position (powers of 2: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512). The sum modulo 11 equals the check digit (if remainder is 10, check digit is 0).
U designates all freight containers; J designates detachable freight container-related equipment; Z designates trailers and chassis.