Verify a serialized unit for returns
Decide whether a scanned GTIN + serial was sold by the authenticated organization, when, under which transaction, and whether it has already been returned. Intended for a return desk scanner or POS plugin: one call, one decision object.
Decisions are computed only from the querying organization’s own EPCIS events — another retailer’s sale of the same GTIN + serial is never visible here, and a unit this organization has no events for is reported as unknown_serial rather than falling back to anyone else’s history. Recall status is the one deliberate exception: it is public product-safety information, so an open recall covering the unit is reported regardless of which organization published it.
The lifecycle states ride GS1 CBV 2.0 dispositions — retail_sold for a sale (bizStep retail_selling) and returned for a return (bizStep returning). Caller must hold an OWNER or MANAGER membership on the organization.
Authorizations
Query Parameters
GTIN-8/12/13/14 of the scanned unit. Normalized to GTIN-14; check digit is validated.
^[0-9]{8}$|^[0-9]{12,14}$GS1 AI(21) serial number of the scanned unit.
1 - 255Response
OK
Decision object for one GTIN + serial.
The verdict. recalled_lot outranks the lifecycle states — when a unit is under an open recall it is reported as such whether or not it was sold, and the sale/return fields below remain populated.
sold, already_returned, never_sold, unknown_serial, recalled_lot Normalized GTIN-14 the decision was computed for.
GS1 AI(21) serial number the decision was computed for.
GS1 AI(10) lot identifier recorded for this unit, when known.
Event time of the sale, when this organization has recorded one.
bizTransaction identifier carried on the sale event, scoped to this organization.
Event time of the recorded return, when the unit has already come back.
Populated only when decision is recalled_lot.