EDGE ENGINE SUB-2MS DETERMINISTIC V8 EXECUTION • ZERO DATA RETENTION • EXPLORE API SPECS →
GS1 General Specifications & AI Syntax <1ms Edge Edge Compute

GS1 AI (01) Global Trade Item Number (GTIN) & Mod-10 Checksum

Instant Modulo-10 checksum validation and structure decomposition for GS1 AI (01) GTIN barcodes. This specification documents the exact field layout, checksum rules, and validation behavior so your integration matches GS1 General Specifications & AI Syntax without reading the source standard.

Latency: <1ms Edge Availability: 99.99% Standard: GS1 General Specifications / ISO 15418 In-Memory Execution
Interactive Edge Workbench

⚡ Live GS1 AI (01) Global Trade Item Number (GTIN) & Mod-10 Checksum Interactive Workbench

Test real-time validation and schema parsing for GS1 AI (01) Global Trade Item Number (GTIN) & Mod-10 Checksum 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: GS1 Global Standards Architecture ↗

Quick Summary: Instant Modulo-10 checksum validation and structure decomposition for GS1 AI (01) GTIN barcodes. Validates strictly against GS1 General Specifications & AI Syntax with sub-5ms in-memory response times.

Latency
<1ms Edge
Standard
GS1 General Specifications / ISO 15418
Version
Max Payload
512 KB
Privacy
In-Memory (0 bytes stored)

Specification & Structural Breakdown

Technical Summary: Validates strictly against GS1 General Specifications & AI Syntax. Payloads are parsed in memory and return clean, typed JSON in milliseconds with zero data logged.

The GTIN is the 14-digit universal identifier for trade items at all packaging levels. The final digit is a Modulo-10 check digit calculated by alternating weights of 3 and 1.

StepCalculationRule
Weight AssignmentMultiply digits from right to left (excluding check digit) by 3 and 1 alternatingWeights: 3, 1, 3, 1...
SummationAdd all weighted productsTotal sum
Modulo-10 Check(10 - (Sum % 10)) % 10Matches check digit

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
{
  "ai": "01",
  "gtin": "00012345678905",
  "checkDigit": 5,
  "valid": true
}

Sample file

Copy or download this validated GS1 sample. It is parsed by the production engine in the test suite, so it works as a fixture as-is.

gs1-element-string.txt
(01)00300012345671(10)BATCH123(17)261231(21)SER987

Download gs1-element-string.txt All sample files →

Copy-Paste Integration Code (6 Languages)

Integrate GS1 AI (01) Global Trade Item Number (GTIN) & Mod-10 Checksum 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/gs1-decoder/api/v1/gs1/decode" \
  --header "Content-Type: application/json" \
  --header "x-api-key: YOUR_API_KEY" \
  --data '{
  "barcode": "010001234567890510LOT123\u001d1726083121SN9988"
}'
const response = await fetch("https://api.stanzaapi.com/gs1-decoder/api/v1/gs1/decode", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.API_KEY || "YOUR_API_KEY"
  },
  body: JSON.stringify({
  "barcode": "010001234567890510LOT123\u001d1726083121SN9988"
})
});

const data = await response.json();
console.log(data);
import requests
import json

url = "https://api.stanzaapi.com/gs1-decoder/api/v1/gs1/decode"
headers = {
    "Content-Type": "application/json",
    "x-api-key": "YOUR_API_KEY"
}
payload = {
    "barcode": "010001234567890510LOT123\u001d1726083121SN9988"
}

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/gs1-decoder/api/v1/gs1/decode"
	payload := []byte(`{"barcode":"010001234567890510LOT123\u001d1726083121SN9988"}`)

	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 = @"{""barcode"":""010001234567890510LOT123\u001d1726083121SN9988""}";
        var payload = new StringContent(json, Encoding.UTF8, "application/json");

        var response = await client.PostAsync("https://api.stanzaapi.com/gs1-decoder/api/v1/gs1/decode", payload);
        var content = await response.Content.ReadAsStringAsync();
        Console.WriteLine(content);
    }
}
Integrate the StanzaAPI gs1-decoder micro-API.

Endpoint: POST https://api.stanzaapi.com/gs1-decoder/api/v1/gs1/decode
Auth header: x-api-key: YOUR_API_KEY
Content-Type: application/json
Request body:
{
  "barcode": "010001234567890510LOT123\u001d1726083121SN9988"
}

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

How is GTIN-12 (UPC-A) represented in GTIN-14?

Two leading zeroes are prepended to standard 12-digit UPCs to form the 14-digit GTIN.

Related GS1 Barcode & Digital Link Decoder (Sunrise 2027) 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 GS1 Barcode & Digital Link Decoder (Sunrise 2027) API Formats & Specifications (11) Directory Index ↓
GS1 AI (01) Global Trade Item Number (GTIN) & Mod-10 Checksum GS1 AI (10) Batch / Lot Number Specification & FNC1 Rules GS1 AI (17) Expiration Date Specification (YYMMDD & YYMM00) GS1 AI (21) Individual Serial Number Specification GS1 AI (00) Serial Shipping Container Code (SSCC-18) Spec GS1 Digital Link URI Standard & QR Web Transition (Sunrise 2027) GS1 AI (02) CONTENT Global Trade Item Number Specification GS1 AI (37) COUNT of Trade Items Specification GS1 AI (30) VAR COUNT Specification for Variable-Measure Items GS1-128 vs GS1 DataMatrix vs GS1 Digital Link QR Comparison GS1 FNC1 / ASCII 29 (GS) Separator Rules for Variable-Length AIs