Read an order
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://driver-staging-api.delivr.no/v1/merchant/orders/DD-123456"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://driver-staging-api.delivr.no/v1/merchant/orders/DD-123456';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://driver-staging-api.delivr.no/v1/merchant/orders/DD-123456 \ --header 'Authorization: Bearer <token>'The source of truth. Reconcile webhooks by version.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Delivr’s order id (UUID) or its DD- reference.
Responses
Section titled “Responses”The order.
object
Equals quoteId for an order placed on a quote.
Your order id. “” on a held order until its sale completes.
On demand: placed → awaiting_goods → searching → driver_assigned →
picked_up → delivered. Window: placed → scheduled → picked_up →
delivered. cancelled and failed end either, with reason.
Why a cancelled or failed order ended.
On demand. Goods due.
On demand. Ready time stated (or assumed).
object
Recipient’s tracking link. Absent before it exists, once ended (unless a fallback is open) and while a held sale is pending.
Driver accepted (on demand) or transport booked (window).
Increases with every change. Keep the highest you saw; ignore older data.
object
Placement reply only. On-demand arrival promised now.
object
Placement reply only. Window booked on another window than quoted.
The failed order this successor follows.
On a failed order, the newest successor.
Held orders only (assisted checkout). “Driver found” = status
pending and driver assigned. The order status alone is not
enough (it stays driver_assigned while a driver gives the job
back).
object
The checkout budget passes then and the order is cancelled at its current fee stage. Present while it runs.
Example
{ "reference": "DD-123456", "type": "on_demand", "status": "placed", "reason": "no_driver", "sale": { "status": "pending", "driver": "searching" }}Headers
Section titled “Headers”The request’s id (yours if you sent a valid one, up to 64 of A-Za-z0-9._-). Quote it to support.
unauthenticated: missing, unknown or revoked key.
object
object
Status per code: 400 malformed_json, idempotency_key_required; 401 unauthenticated; 403 merchant_suspended, insufficient_scope; 404 not_found, quote_not_found; 405 method_not_allowed; 409 conflict, cancellation_not_allowed, idempotency_key_in_flight, price_changed, option_unavailable, fee_changed, quote_already_used, external_ref_taken, window_full, order_ended; 422 invalid_request, idempotency_key_reused, no_delivery_options, manual_quote_required, invalid_address; 429 rate_limited; 500 internal; 503 unavailable.
Human-readable; may change. Branch on code.
The request field at fault, e.g. delivery.address (an unknown field: its name).
object
object
Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.
On demand. Arrival band.
object
Window option.
object
Window option. Book and cancel free before it.
object
VAT included.
On demand only. HINT for the seller, never a promise: drivers near the store when quoted and when the first-ranked could reach it. Do not show a driver count to shoppers.
object
object
object
Options offered instead (may be empty). Book one by key.
object
Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.
On demand. Arrival band.
object
Window option.
object
Window option. Book and cancel free before it.
object
VAT included.
On demand only. HINT for the seller, never a promise: drivers near the store when quoted and when the first-ranked could reach it. Do not show a driver count to shoppers.
object
object
object
object
VAT split only when charged.
object
VAT included.
Example
{ "error": { "code": "invalid_request", "details": { "option": { "type": "on_demand", "key": "on_demand", "price": { "currency": "NOK" } } } }}merchant_suspended, insufficient_scope.
object
object
Status per code: 400 malformed_json, idempotency_key_required; 401 unauthenticated; 403 merchant_suspended, insufficient_scope; 404 not_found, quote_not_found; 405 method_not_allowed; 409 conflict, cancellation_not_allowed, idempotency_key_in_flight, price_changed, option_unavailable, fee_changed, quote_already_used, external_ref_taken, window_full, order_ended; 422 invalid_request, idempotency_key_reused, no_delivery_options, manual_quote_required, invalid_address; 429 rate_limited; 500 internal; 503 unavailable.
Human-readable; may change. Branch on code.
The request field at fault, e.g. delivery.address (an unknown field: its name).
object
object
Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.
On demand. Arrival band.
object
Window option.
object
Window option. Book and cancel free before it.
object
VAT included.
On demand only. HINT for the seller, never a promise: drivers near the store when quoted and when the first-ranked could reach it. Do not show a driver count to shoppers.
object
object
object
Options offered instead (may be empty). Book one by key.
object
Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.
On demand. Arrival band.
object
Window option.
object
Window option. Book and cancel free before it.
object
VAT included.
On demand only. HINT for the seller, never a promise: drivers near the store when quoted and when the first-ranked could reach it. Do not show a driver count to shoppers.
object
object
object
object
VAT split only when charged.
object
VAT included.
Example
{ "error": { "code": "invalid_request", "details": { "option": { "type": "on_demand", "key": "on_demand", "price": { "currency": "NOK" } } } }}not_found (also another merchant’s order), quote_not_found.
object
object
Status per code: 400 malformed_json, idempotency_key_required; 401 unauthenticated; 403 merchant_suspended, insufficient_scope; 404 not_found, quote_not_found; 405 method_not_allowed; 409 conflict, cancellation_not_allowed, idempotency_key_in_flight, price_changed, option_unavailable, fee_changed, quote_already_used, external_ref_taken, window_full, order_ended; 422 invalid_request, idempotency_key_reused, no_delivery_options, manual_quote_required, invalid_address; 429 rate_limited; 500 internal; 503 unavailable.
Human-readable; may change. Branch on code.
The request field at fault, e.g. delivery.address (an unknown field: its name).
object
object
Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.
On demand. Arrival band.
object
Window option.
object
Window option. Book and cancel free before it.
object
VAT included.
On demand only. HINT for the seller, never a promise: drivers near the store when quoted and when the first-ranked could reach it. Do not show a driver count to shoppers.
object
object
object
Options offered instead (may be empty). Book one by key.
object
Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.
On demand. Arrival band.
object
Window option.
object
Window option. Book and cancel free before it.
object
VAT included.
On demand only. HINT for the seller, never a promise: drivers near the store when quoted and when the first-ranked could reach it. Do not show a driver count to shoppers.
object
object
object
object
VAT split only when charged.
object
VAT included.
Example
{ "error": { "code": "invalid_request", "details": { "option": { "type": "on_demand", "key": "on_demand", "price": { "currency": "NOK" } } } }}rate_limited. Also after repeated failed sign-ins from one address.
object
object
Status per code: 400 malformed_json, idempotency_key_required; 401 unauthenticated; 403 merchant_suspended, insufficient_scope; 404 not_found, quote_not_found; 405 method_not_allowed; 409 conflict, cancellation_not_allowed, idempotency_key_in_flight, price_changed, option_unavailable, fee_changed, quote_already_used, external_ref_taken, window_full, order_ended; 422 invalid_request, idempotency_key_reused, no_delivery_options, manual_quote_required, invalid_address; 429 rate_limited; 500 internal; 503 unavailable.
Human-readable; may change. Branch on code.
The request field at fault, e.g. delivery.address (an unknown field: its name).
object
object
Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.
On demand. Arrival band.
object
Window option.
object
Window option. Book and cancel free before it.
object
VAT included.
On demand only. HINT for the seller, never a promise: drivers near the store when quoted and when the first-ranked could reach it. Do not show a driver count to shoppers.
object
object
object
Options offered instead (may be empty). Book one by key.
object
Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.
On demand. Arrival band.
object
Window option.
object
Window option. Book and cancel free before it.
object
VAT included.
On demand only. HINT for the seller, never a promise: drivers near the store when quoted and when the first-ranked could reach it. Do not show a driver count to shoppers.
object
object
object
object
VAT split only when charged.
object
VAT included.
Example
{ "error": { "code": "invalid_request", "details": { "option": { "type": "on_demand", "key": "on_demand", "price": { "currency": "NOK" } } } }}Headers
Section titled “Headers”Seconds to wait.
Requests per minute for your merchant (600).
Seconds until the window resets.