GS1 FNC1 / ASCII 29 (GS) Separator Rules for Variable-Length AIs
Parse FNC1 (ASCII 29 / <GS>) separators that terminate variable-length GS1 Application Identifiers. 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.
⚡ Live GS1 FNC1 / ASCII 29 (GS) Separator Rules for Variable-Length AIs Interactive Workbench
Test real-time validation and schema parsing for GS1 FNC1 / ASCII 29 (GS) Separator Rules for Variable-Length AIs directly in your browser. Runs in sub-5ms with zero setup.
{
"status": "Click RUN VALIDATION to execute on the Cloudflare edge..."
}
Quick Summary: Parse FNC1 (ASCII 29 / <GS>) separators that terminate variable-length GS1 Application Identifiers. Validates strictly against GS1 General Specifications & AI Syntax with sub-5ms in-memory response times.
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.
FNC1 is a non-data function character in Code 128 and DataMatrix that marks the end of a variable-length Application Identifier.
When the barcode payload is transmitted as text, FNC1 is represented as ASCII 29 (GS, 0x1D), often displayed as <GS>.
Fixed-length AIs (01, 17, 00, 37) never need a separator; variable-length AIs (10, 21, 30, 240) require one whenever another AI follows.
| AI | Length | Separator Needed | Example |
|---|---|---|---|
| 01 GTIN | 14 digits (fixed) | No | 0100012345678905 |
| 17 Expiration | 6 digits (fixed) | No | 17260831 |
| 10 Batch/Lot | 1-20 alphanumeric | Yes if not last | 10LOT123<GS> |
| 21 Serial | 1-20 alphanumeric | Yes if not last | 21SN9988<GS> |
| 30 VAR COUNT | 1-8 digits | Yes if not last | 3000000250<GS> |
Parsed JSON Response Model
The edge microservice transforms input payloads into strongly-typed hierarchical JSON envelopes with sub-5ms latency:
{
"raw": "010001234567890510LOT123<GS>17260831",
"separator": "ASCII 29 (0x1D)",
"decoded": {
"10": "LOT123",
"17": "260831",
"01": "00012345678905"
}
}
Copy-Paste Integration Code (6 Languages)
Integrate GS1 FNC1 / ASCII 29 (GS) Separator Rules for Variable-Length AIs 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:
Frequently Asked Questions & Technical Notes
FNC1 is a non-data symbol used in GS1-128 and DataMatrix to mark the end of a variable-length Application Identifier. It is transmitted as ASCII 29 (GS, 0x1D). Without it, a parser cannot tell where a variable-length value such as AI (10) batch/lot ends and the next AI begins.
AIs such as (10) batch/lot, (21) serial number, (30) VAR COUNT, and (240) additional product ID are variable length and need FNC1 when followed by another AI. Fixed-length AIs such as (01), (17), (00), and (37) never need it.
Related GS1 Barcode & Digital Link Decoder (Sunrise 2027) API Formats
Explore sibling specifications and standards in the same developer cluster:
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.
View Format →GS1-128 vs GS1 DataMatrix vs GS1 Digital Link QR Comparison
Compare GS1-128, GS1 DataMatrix, and GS1 Digital Link QR symbologies and how each encodes the same Application Identifiers.
View Format →GS1 AI (10) Batch / Lot Number Specification & FNC1 Rules
Parse manufacturing batch and lot numbers from GS1 barcodes with automatic FNC1 delimiter handling.
View Format →GS1 AI (30) VAR COUNT Specification for Variable-Measure Items
Extract GS1 AI (30) VAR COUNT quantities paired with AI (02) CONTENT for variable-measure barcodes.
View Format →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.
View Format →GS1 AI (37) COUNT of Trade Items Specification
Extract GS1 AI (37) COUNT quantities paired with AI (02) CONTENT for variable-measure retail barcodes.
View Format →GS1 AI (21) Individual Serial Number Specification
Extract unit-level serial numbers from 1D and 2D GS1 barcodes for track-and-trace systems.
View Format →GS1 AI (02) CONTENT Global Trade Item Number Specification
Extract GS1 AI (02) CONTENT identifiers for variable-measure trade items and validate the embedded GTIN check digit.
View Format →Complementary Enterprise APIs
Seamlessly orchestrate data pipelines across adjacent financial, regulatory, and supply-chain protocols:
FDA DSCSA Drug Serialization →
Parse GS1 DataMatrix barcodes with NDC conversion for FDA DSCSA pharma compliance.
FDA AccessGUDID & IMDRF UDI Decoder →
Decode unique device identification barcodes for hospital asset tracking and EU MDR.
ISO 6346 Intermodal Container Validator →
Validate BIC container prefixes and check digits on freight packaging and pallets.