Push a delivery status update

Reports a delivery's progress back to YUMBI. Call it every time the status
changes, and — when you support live tracking — on each driver-position ping.
YUMBI applies the update to the delivery and forwards it to the ordering channel.

Authenticate as a delivery provider, with an OAuth 2.0 client-credentials token
from https://auth.yumbi.com/oauth2/token. Inbound calls are OAuth only; the
HMAC headers YUMBI signs its outbound webhooks with are not accepted here.

Which delivery gets updated. provider_delivery_id in the body takes
precedence, so a specific dispatch attempt can be targeted. If it matches
nothing, YUMBI falls back to the {guid} in the path — this matters for your
first update, which can arrive before YUMBI has finished recording your
delivery id.

Status never goes backwards. An update whose delivery_status ranks lower
than the stored one is accepted and discarded, so out-of-order webhooks are
harmless. The exception is a changed provider_delivery_id, which YUMBI reads
as a re-dispatch and allows to reset the status.

Duplicates are free. An update that changes nothing is dropped without
re-notifying the ordering channel, so retrying on a timeout is safe.

Location pings. Send update_type: "location" with just the coordinates for
a driver-moved ping: it updates the live map without running the status state
machine. Omit update_type (or send "status") for a lifecycle change.

A delivery provider can be configured to ignore location pings until the courier
has collected the order, in which case pings sent before left_store are accepted
and discarded. Status updates are never affected.

A location update naming a different courier to the one on record is treated as
a status update — it is never discarded, and the ordering channel is told about the
new driver as a status change. Send a courier swap on whichever event suits you.

A 404 means the delivery was not found for you — a delivery assigned to
another provider looks the same as one that does not exist. Treat it as
retryable rather than fatal.

A 401 covers a missing or invalid token, and a valid token belonging to a POS
provider or an ordering channel rather than a delivery provider.

Per-brand signing. Where your webhook signing secret is scoped per brand
rather than per integration — one account per brand — send brand_guid naming
the brand whose secret authenticated the push. The update is rejected as
not-found when the delivery belongs to a different brand, so one brand's account
cannot move another brand's delivery. Omit the field when the call cannot be
attributed to a brand; the provider identity is then the whole check.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

The order_guid YUMBI sent you on the dispatch webhook.

Body Params
string | null
enum

status (default) runs the lifecycle state machine. location is a driver-position ping that moves the live pin without changing the status.

Allowed:
string | null
enum

The canonical status. An update that would move the status backwards is discarded unless provider_delivery_id has changed.

string | null

Your delivery id. Targets a specific dispatch attempt; a new value signals a re-dispatch.

integer | null

The numeric order reference, for providers dispatched with it rather than the guid. Resolved before the guid in the path.

string | null

The brand whose signing secret authenticated this push, for providers whose secret is per brand rather than per integration. The update is rejected as not-found when the delivery belongs to a different brand. Omit when the call cannot be attributed to a brand.

string | null
string | null
string | null
string | null
number | null
number | null
date-time | null
string | null

Set when you have corrected the dropoff coordinates.

string | null
boolean | null
Headers
string
required

Bearer

Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json