Documentation
Status
Status is the usual way to see whether a unit is accepted, in progress or rejected after an update or a send to GS1.
fmcgProductsStatus maps to X9004 and is one of:
| Value | Meaning |
|---|---|
SENT |
Sent to GS1, awaiting response |
OK |
Uploaded to GS1 |
PENDING |
Previously uploaded, data has changed, waiting to resend |
FAILED |
Rejected at GS1 |
gs1Status is the latest status from GS1 (or EPD). If the product has never been sent, it is NEVER_SENT. If fmcgProductsStatus is PENDING, gs1Status is still the last GS1 result, not PENDING.
| Value | Meaning |
|---|---|
SENT |
Sent, awaiting response |
OK |
Accepted |
FAILED |
Rejected |
NEVER_SENT |
Never sent to GS1 or EPD |
EXPIRED |
Expired at GS1 |
WITHDRAWN |
Withdrawn from GS1 |
The JSON also includes gs1Response, gs1Warnings, gs1LastSendDate, gs1StatusDate, validationErrors, sendStatusList and dataRecipientStatusList when they apply. Norwegian top products may include epdNumber and epdStatus.
One product
GET /api/status/{productId}
curl -sS -H "X-Api-Key: YOUR_KEY" \
"https://{instance}.fmcgproducts.dk/api/status/01234567890123.208"
Query: activeVersion (same meaning as on details).
All products
GET /api/products/status
GET /api/products/status/{exportProfileId}
Optional query:
| Parameter | Meaning |
|---|---|
fromdate |
GS1 response date, dd-MM-yyyy |
targetMarket |
ISO 3166-1 numeric country code, for example 040 for Austria and 208 for Denmark. See Identifiers and fields. |
limit |
Max number of products in this page |
offset |
1-based start position |
revalidate |
If true, recalculates validation and returns it in validationErrors |
deltaChanges |
If true, and status is PENDING, adds fieldsChangedSinceLastSendToGS1 |
activeVersion |
Active version from X9200 / X9202 |
The envelope includes count (full match count), products, and the filters you sent. An optional export profile adds those profile fields on each product.
targetMarket must be numeric or the API returns HTTP 400. Keep leading zeros in the value: 040 for Austria, and 40 is a different code.
Selected products
POST /api/products/status
POST /api/products/status/{exportProfileId}
Body: a JSON array of product ids.
["01234567890123.208", "01234567890130.208"]
Unknown ids in the list are returned as { "productId": "…", "error": "Product not found" } rather than failing the whole call. Invalid id format returns HTTP 400. limit, offset, deltaChanges and activeVersion work as on GET.
