Skip to content

Goods ready signals

An on-demand driver should arrive when your goods are packed: not before, wasting the driver’s time, and not after, wasting the shopper’s. Each store’s readySignal decides how Delivr knows.

The goods count as ready at the order’s readyBy or, without one, prepMinutes after the order. Delivr plans the driver search when the order is placed, so a driver arrives about then. You never have to call anything, which suits stores that always pack within a known time.

You can still send the signals below to correct the plan, for example when packing is quicker or slower than usual.

On-demand orders wait in awaiting_goods until you signal. Choose this when packing time varies a lot, or when your warehouse system knows exactly when a parcel is packed.

Terminal window
# Packing has started; the goods will be ready at readyAt (within 24 hours).
curl -X POST https://driver-staging-api.delivr.no/v1/merchant/orders/$ORDER/processing \
-H "Authorization: Bearer $DELIVR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{ "readyAt": "2026-11-03T13:25:00Z" }'
# Ready now.
curl -X POST https://driver-staging-api.delivr.no/v1/merchant/orders/$ORDER/ready \
-H "Authorization: Bearer $DELIVR_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
Signal Effect
processing {readyAt} The driver search is timed so a driver arrives at about readyAt. Repeat it as often as you like until the search starts. A readyAt in the past means ready now. The recipient’s tracking page shows the time. Sends order.ready_at_changed.
ready The search starts at once, if it has not already.

On a window order, both signals are only recorded, for tracking.

The goods are due at readyBy: yours, or the store’s readyDeadlineMinutes after the order.

  1. At readyBy, if the goods are not ready, you get order.ready_overdue. This mostly matters for required stores.
  2. After the market’s grace period the order fails with goods_not_ready, and your fallback policy applies.

A processing with a readyAt past the deadline moves the deadline with it.