Skip to content

Delivery log

GET
/v1/merchant/webhooks/deliveries
curl --request GET \
--url 'https://driver-staging-api.delivr.no/v1/merchant/webhooks/deliveries?limit=50' \
--header 'Authorization: Bearer <token>'

Every attempt, newest first, kept 30 days.

orderId
string format: uuid
eventId
string format: uuid
limit
integer
default: 50 >= 1 <= 200
cursor
string

A page.

Media typeapplication/json
object
items
required
Array<object>
object
id
required
string format: uuid
orderId
string format: uuid
eventId
required
string format: uuid
event
required
string
attempt
required
integer
>= 1
url
required
string
statusCode

Absent when no answer.

integer
succeeded
required
boolean
error
string
durationMs
required
integer
attemptedAt
required
string format: date-time
nextCursor
string

Example generated

{
"items": [
{
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"orderId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"eventId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"event": "example",
"attempt": 1,
"url": "example",
"statusCode": 1,
"succeeded": true,
"error": "example",
"durationMs": 1,
"attemptedAt": "2026-04-15T12:00:00Z"
}
],
"nextCursor": "example"
}
X-Request-Id
string

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.

Media typeapplication/json
object
error
required
object
code
required

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.

string
Allowed values: invalid_request malformed_json not_found method_not_allowed unauthenticated merchant_suspended insufficient_scope conflict cancellation_not_allowed idempotency_key_required idempotency_key_reused idempotency_key_in_flight unavailable rate_limited quote_not_found no_delivery_options manual_quote_required invalid_address price_changed option_unavailable fee_changed quote_already_used external_ref_taken window_full order_ended internal
message
required

Human-readable; may change. Branch on code.

string
param

The request field at fault, e.g. delivery.address (an unknown field: its name).

string
requestId
string
details
One of:
object
quotedAmountMinor
required
integer
option
required
object
type
required
string
Allowed values: on_demand window
key
required

Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.

string
eta

On demand. Arrival band.

object
from
required
string format: date-time
to
required
string format: date-time
window

Window option.

object
start
required
string format: date-time
end
required
string format: date-time
cutoffAt

Window option. Book and cancel free before it.

string format: date-time
price
required
object
amountMinor
required

VAT included.

integer
vatMinor
integer
exVatMinor
integer
currency
required
string
supply

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
nearbyDrivers
required
integer
pickupEta
required
object
from
required
string format: date-time
to
required
string format: date-time

Example

{
"error": {
"code": "invalid_request",
"details": {
"option": {
"type": "on_demand",
"key": "on_demand",
"price": {
"currency": "NOK"
}
}
}
}
}

merchant_suspended, insufficient_scope.

Media typeapplication/json
object
error
required
object
code
required

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.

string
Allowed values: invalid_request malformed_json not_found method_not_allowed unauthenticated merchant_suspended insufficient_scope conflict cancellation_not_allowed idempotency_key_required idempotency_key_reused idempotency_key_in_flight unavailable rate_limited quote_not_found no_delivery_options manual_quote_required invalid_address price_changed option_unavailable fee_changed quote_already_used external_ref_taken window_full order_ended internal
message
required

Human-readable; may change. Branch on code.

string
param

The request field at fault, e.g. delivery.address (an unknown field: its name).

string
requestId
string
details
One of:
object
quotedAmountMinor
required
integer
option
required
object
type
required
string
Allowed values: on_demand window
key
required

Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.

string
eta

On demand. Arrival band.

object
from
required
string format: date-time
to
required
string format: date-time
window

Window option.

object
start
required
string format: date-time
end
required
string format: date-time
cutoffAt

Window option. Book and cancel free before it.

string format: date-time
price
required
object
amountMinor
required

VAT included.

integer
vatMinor
integer
exVatMinor
integer
currency
required
string
supply

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
nearbyDrivers
required
integer
pickupEta
required
object
from
required
string format: date-time
to
required
string format: date-time

Example

{
"error": {
"code": "invalid_request",
"details": {
"option": {
"type": "on_demand",
"key": "on_demand",
"price": {
"currency": "NOK"
}
}
}
}
}

invalid_request (with param), idempotency_key_reused, no_delivery_options, manual_quote_required, invalid_address.

Media typeapplication/json
object
error
required
object
code
required

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.

string
Allowed values: invalid_request malformed_json not_found method_not_allowed unauthenticated merchant_suspended insufficient_scope conflict cancellation_not_allowed idempotency_key_required idempotency_key_reused idempotency_key_in_flight unavailable rate_limited quote_not_found no_delivery_options manual_quote_required invalid_address price_changed option_unavailable fee_changed quote_already_used external_ref_taken window_full order_ended internal
message
required

Human-readable; may change. Branch on code.

string
param

The request field at fault, e.g. delivery.address (an unknown field: its name).

string
requestId
string
details
One of:
object
quotedAmountMinor
required
integer
option
required
object
type
required
string
Allowed values: on_demand window
key
required

Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.

string
eta

On demand. Arrival band.

object
from
required
string format: date-time
to
required
string format: date-time
window

Window option.

object
start
required
string format: date-time
end
required
string format: date-time
cutoffAt

Window option. Book and cancel free before it.

string format: date-time
price
required
object
amountMinor
required

VAT included.

integer
vatMinor
integer
exVatMinor
integer
currency
required
string
supply

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
nearbyDrivers
required
integer
pickupEta
required
object
from
required
string format: date-time
to
required
string format: date-time

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.

Media typeapplication/json
object
error
required
object
code
required

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.

string
Allowed values: invalid_request malformed_json not_found method_not_allowed unauthenticated merchant_suspended insufficient_scope conflict cancellation_not_allowed idempotency_key_required idempotency_key_reused idempotency_key_in_flight unavailable rate_limited quote_not_found no_delivery_options manual_quote_required invalid_address price_changed option_unavailable fee_changed quote_already_used external_ref_taken window_full order_ended internal
message
required

Human-readable; may change. Branch on code.

string
param

The request field at fault, e.g. delivery.address (an unknown field: its name).

string
requestId
string
details
One of:
object
quotedAmountMinor
required
integer
option
required
object
type
required
string
Allowed values: on_demand window
key
required

Stable key to book (on_demand or window:<start>/<end> in the market’s zone). The same delivery quoted again lists the same keys.

string
eta

On demand. Arrival band.

object
from
required
string format: date-time
to
required
string format: date-time
window

Window option.

object
start
required
string format: date-time
end
required
string format: date-time
cutoffAt

Window option. Book and cancel free before it.

string format: date-time
price
required
object
amountMinor
required

VAT included.

integer
vatMinor
integer
exVatMinor
integer
currency
required
string
supply

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
nearbyDrivers
required
integer
pickupEta
required
object
from
required
string format: date-time
to
required
string format: date-time

Example

{
"error": {
"code": "invalid_request",
"details": {
"option": {
"type": "on_demand",
"key": "on_demand",
"price": {
"currency": "NOK"
}
}
}
}
}
Retry-After
integer

Seconds to wait.

RateLimit-Limit
integer

Requests per minute for your merchant (600).

RateLimit-Remaining
integer
RateLimit-Reset
integer

Seconds until the window resets.