EDGE ENGINE Sub-2ms Deterministic V8 Execution • Zero Data Retention Explore API Specs →
Latency: <1ms Edge Availability: 99.99% Standard: GS1 AI (17) V8 Pure Compute

GS1 AI (17) Expiration Date Specification (YYMMDD & YYMM00)

Parse GS1 expiration date timestamps into ISO 8601 dates with full support for YYMM00 end-of-month logic.

Official Regulatory Standard & Verification Protocol Authority: GS1 Global Standards Architecture ↗

Quick Technical Summary: Parse GS1 expiration date timestamps into ISO 8601 dates with full support for YYMM00 end-of-month logic. Implementation conforms to GS1 General Specifications & AI Syntax.

Execution SLA
<1ms Edge (Cloudflare V8)
Governing Norm
GS1 AI (17)
Throughput Limit
512 KB / Payload
Data Privacy
100% In-Memory (Zero Store)

Specification & Structural Breakdown

AI (17) defines the expiration date in 6 numeric digits (YYMMDD). If the day is unknown, DD is set to 00, indicating the last day of that month.

Raw StringInterpretationResolved ISO Date
260831August 31, 20262026-08-31
260200Last day of February 20262026-02-28
Interactive Edge Validator

Test GS1 AI (17) Expiration Date Specification (YYMMDD & YYMM00) Live

Paste raw inputs up to 32KB and inspect deterministic parsed JSON in real-time across 330+ Cloudflare edge locations. Pure compute, zero cold-starts.

Launch Workbench →

Parsed JSON Response Model

The edge microservice transforms input payloads into strongly-typed hierarchical JSON with zero cold starts:

HTTP 200 JSON Payload
{
  "ai": "17",
  "raw": "260831",
  "isoDate": "2026-08-31",
  "isEndOfMonthRule": false
}

Copy-Paste Integration Code

Integrate this validator directly into your application using your production API key:

cURL
curl --request POST \
  --url "https://gs1-barcode-digital-link-decoder-sunrise-2027.stanzaapi.com/api/v1/gs1/decode" \
  --header "Content-Type: application/json" \
  --header "x-api-key: YOUR_API_KEY" \
  --data '{
  "barcode": "010001234567890510LOT123\u001d1726083121SN9988"
}'
Node.js (Fetch)
const response = await fetch("https://gs1-barcode-digital-link-decoder-sunrise-2027.stanzaapi.com/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);
Python (Requests)
import requests
import json

url = "https://gs1-barcode-digital-link-decoder-sunrise-2027.stanzaapi.com/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())
Go
package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	url := "https://gs1-barcode-digital-link-decoder-sunrise-2027.stanzaapi.com/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))
}

Frequently Asked Questions & Technical Notes

How is century determined in YYMMDD dates?

Following GS1 standards, years within 50 years forward/backward are resolved to the 21st century.

Related GS1 Barcode & Digital Link Decoder (Sunrise 2027) API Formats

Explore sibling specifications and standards in the same developer cluster: