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.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
