curl -X POST "https://api.scanova.io/qr/gs1-recalls/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"gtin": "01234567890128",
"batch_lot_value": "LOT-2026-04",
"message": "This batch has been recalled due to a labeling error. Contact support."
}'
[
{
"gtin": "01234567890128",
"batch_lot_value": "LOT-2026-04",
"message": "This batch has been recalled due to a labeling error. Contact support.",
"id": 12,
"is_active": true,
"created": "2026-09-09T09:00:00Z",
"modified": "2026-09-09T09:00:00Z"
}
]QR Codes
List and create GS1 batch recalls
GET, POST /qr/gs1-recalls/
GET
/
qr
/
gs1-recalls
/
curl -X POST "https://api.scanova.io/qr/gs1-recalls/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"gtin": "01234567890128",
"batch_lot_value": "LOT-2026-04",
"message": "This batch has been recalled due to a labeling error. Contact support."
}'
[
{
"gtin": "01234567890128",
"batch_lot_value": "LOT-2026-04",
"message": "This batch has been recalled due to a labeling error. Contact support.",
"id": 12,
"is_active": true,
"created": "2026-09-09T09:00:00Z",
"modified": "2026-09-09T09:00:00Z"
}
]Publishes and lists GS1 batch/lot recall notices for the account.
Creating requires the
GET https://api.scanova.io/qr/gs1-recalls/
POST https://api.scanova.io/qr/gs1-recalls/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
GS1_RECALL_CREATE role permission.
string
The recalled product’s GTIN, max 14 characters.
string
The recalled batch or lot value, max 20 characters.
string
The notice shown to anyone scanning an affected code.
boolean
default:"true"
Whether the recall is currently in force.
curl -X POST "https://api.scanova.io/qr/gs1-recalls/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"gtin": "01234567890128",
"batch_lot_value": "LOT-2026-04",
"message": "This batch has been recalled due to a labeling error. Contact support."
}'
Recalls are account-wide, not scoped to one QR Code or GS1 family. An active recall matches any GS1 scan whose batch/lot value matches, regardless of which specific QR Code resolved it. A too-broad
batch_lot_value will surface the recall notice on products you didn’t intend.There is no uniqueness constraint: the same GTIN and lot can carry more than one recall over time. To end a recall, flip
is_active to false with Update a GS1 batch recall — don’t delete the row, so the history is preserved.Related
- Update a GS1 batch recall — resolve a recall by deactivating it.
- List and create child QR Codes — the per-lot variants a recall typically targets.
- Download a GS1 barcode — the linear barcode for a GS1 QR Code.
- QR Manager overview — the quotas, role permissions, and Trash model shared by every endpoint in this module.
- Management API overview — the auth scheme and quota rules that apply to this endpoint.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Response
200 - application/json
Recall notices for this account.
Was this page helpful?