Developer docs contents

Batches and delivery

Follow a write from accepted to on the shelf.

Writes are asynchronous. A PUT or DELETE answers 202 Accepted with a batchId once the request is validated and queued, usually in a few milliseconds.

{
  "batchId": "bat_kGaeQlGocbLIl-TAu7OVgA",
  "accepted": 2,
  "dryRun": false,
  "status": "/v1/batches/bat_kGaeQlGocbLIl-TAu7OVgA"
}

Writes to the same store within a fraction of a second are merged, so only the latest price for each product is applied, then sent to the labels. Follow a batch with GET /v1/batches/{batchId}:

StateMeaning
acceptedQueued.
writtenApplied to the store’s product list. results counts what was created, updated, unchanged, stale, superseded or rejected.
completeEvery changed product is on the label platform and every label showing one has redrawn.
failedThe batch could not be applied at all. Rare; contact support with its id.

A price usually reaches the shelf within a few seconds. Batches are kept for 24 hours. Test-key batches stop at written, because nothing is sent to the labels.

Polling or webhooks

Polling a batch every few seconds is fine for a handful of writes. For a busy POS, register a webhook instead and receive products.delivered as prices reach the shelf, without spending your rate limit.

Checking one product

GET /v1/stores/{store}/products?barcode=4011 returns the product as stored, its sync status and every label showing it, with labelsConfirmedAt once they have all redrawn.