GS1 Digital Link Contract
This page defines the URL structures tieback generates and resolves for GS1 Digital Link, including optional qualifiers and attributes.
Primary Identifier
GS1-ready brands
The GTIN (Global Trade Item Number) is used as the product-level primary key, encoded as AI(01) in the resolver path:
Non-GS1 brands
For brands that are not yet GS1-ready, tieback supports internal identifier paths:
These IDs are UUIDs. The resolver validates that the entity belongs to the brand identified by the host header.
Path Qualifiers
The following GS1 Application Identifiers are supported as path segments:
Examples
Query Attributes
The following GS1 Application Identifiers are supported as query parameters:
Example
Query Passthrough
Any query parameters not recognised as GS1 AIs are preserved and passed through the redirect. This supports future extensions such as NFC cryptographic payloads:
Activation Modes
tieback supports two activation modes for minted units:
First-scan activation is idempotent and concurrency-safe.
Cache Behaviour
The Edge Resolver sets HTTP cache headers based on the resolution outcome:
Bot requests (detected via User-Agent) receive a static OpenGraph HTML response and do not trigger activation or telemetry.
FAQ
What is a GTIN?
A GTIN (Global Trade Item Number) is a globally unique product identifier issued by GS1. It is the primary key used in GS1 Digital Link URLs. Common formats include EAN-13, UPC-A, and GTIN-14.
What if my brand does not have a GTIN?
tieback provides fallback resolver paths using internal identifiers (/mu/, /mb/, /ml/). These work identically to GS1 paths for resolution and activation, and can be upgraded to GS1 paths when a GTIN becomes available.
Are query parameters preserved through redirects?
Yes. All query parameters — including unrecognised ones — are preserved and passed through the resolver redirect. This ensures downstream systems and future NFC integrations receive the full context.
What happens if a bot crawls a scan URL?
Bots are detected via User-Agent inspection and receive a static HTML response with OpenGraph meta tags for link preview rendering. No activation or telemetry is triggered.