Experimental (v1): This linkType response shape is published as a v1 experimental contract. The auth-tier split, response fields, and
verificationStatus enum may change before the first external integration freezes the shape. Closient will announce a stable v1.0 once an external scanner or 2D-cert tool integrates against the response.gs1:verificationService linkType returns the verification status of a serialized trade item — a GTIN + AI 21 serial pair scanned against the Closient resolver. Two tiers are exposed:
Endpoint
01 = GTIN, 21 = serial).
Authentication
Authenticated calls supply an organization API key in theX-API-Key header. The same key shape used elsewhere in the Closient API is accepted (csb_*).
X-API-Key (or with an unknown key) fall through to the minimal-tier response and are subject to the IP rate limit.
Unauthenticated response (consumer)
Enumeration protection
Serials we have never seen return the same shape as known-authentic serials (verificationStatus: "authentic", recommendation: "proceed"). Consumer-facing scanners cannot use this endpoint to probe whether a particular serial is in the Closient database. Brands needing the truthful “we have not seen this serial” signal must authenticate — the auth-tier response returns scanHistory: null for never-seen serials.
Rate limit
Unauthenticated calls are limited to 60 requests per hour per client IP. The 61st call returns429 Too Many Requests with a Retry-After header indicating the seconds remaining in the bucket.
Authenticated response (brand / retailer)
scanHistory
scanHistory is null when the serial has never been observed by the resolver (auth tier only — the unauth tier omits the field entirely).
anomalies
Empty array when no rule has fired. Phase 1 emits a single rule:
Each anomaly entry carries:
Phase 3 (tracked in C-2292) layers on the remaining rules — excessive scans, geographic impossibility, post-sale re-entry, serialization errors, mass-scan — each with its own
type value.
Status values
The
unverified internal state is never returned to consumers — it collapses to authentic for the public contract until Phase 3 ships positive-authentication rules.
Errors
Stability guarantees
This linkType is experimental v1. Until at least one external scanner / 2D-cert tool pins to the contract, the following may change with notice in the changelog:- Field names (
verificationStatus,recommendation, etc.) - The
verificationStatusenum set - The auth-tier split (which fields are unauth vs auth)
- The
recommendationmapping table - The shape of
anomaliesentries
- The path layout (
/resolver/api/v1/verify/01/<gtin>/21/<serial>) - The
X-API-Keyauth scheme - The 60/hour anonymous rate limit
- The enumeration-protection guarantee (unknown serial = known-authentic shape)
Related linkTypes
- GS1 Digital Link Resolution — generic resolver behaviour
- EPCIS Events — the long-form event log this verification view summarizes