Delayed Webhooks Feature

Overview

Deliveroo offers an opt-in feature that applies a short delay before sending final delivery status webhooks (
DELIVERED, PARTIALLY_DELIVERED). This ensures that the status you receive accurately reflects the true outcome of
the delivery.

Without this feature, it is possible in rare cases for a delivery to briefly appear as DELIVERED before being
corrected to UNFULFILLED or PARTIALLY_DELIVERED. The delay gives Deliveroo time to confirm the final outcome before
notifying you.

Enabling This Feature

This feature is not enabled by default. To request it, contact your Deliveroo integration partner.

If you already apply your own delays or reconciliation logic when processing delivery status webhooks, you may not need
this feature.

What This Means for You

  • Final status webhooks are accurate: You will not receive a DELIVERED webhook followed by a correction to
    UNFULFILLED or PARTIALLY_DELIVERED. The status you receive reflects the confirmed final outcome.
  • Webhook delivery is slightly delayed: DELIVERED and PARTIALLY_DELIVERED webhooks may arrive up to 1 minute after the delivery is completed. All other status webhooks (REQUESTED, ACTIVE, CANCELLED, UNFULFILLED)
    are sent immediately.
  • Rider status webhooks may also be delayed: Rider events are delayed when the delivery status transitions to
    DELIVERED or PARTIALLY_DELIVERED. Additionally, for multi-rider deliveries, when a rider completes their portion
    while other riders are still active, the COMPLETED_DELIVERY rider event may be delayed to allow for corrections.
  • No changes to your integration are required: The webhook payloads and event types remain the same.

GetDelivery API Behaviour

The delay applies only to webhooks. If you call the Get Delivery endpoint during the delay window,
you may see a delivery status (e.g. DELIVERED) that has not yet been confirmed via webhook. In rare cases, this status
may change to UNFULFILLED or PARTIALLY_DELIVERED without a DELIVERED webhook ever being sent.

We recommend relying on webhooks rather than polling the API to determine the final delivery outcome.

Affected Webhook Events

Webhook EventDelayed When
delivery.update_statusDelivery status transitions to DELIVERED or PARTIALLY_DELIVERED
riders.update_statusDelivery status transitions to DELIVERED or PARTIALLY_DELIVERED or a rider transitions to COMPLETED_DELIVERY while other riders on the same delivery are still active

The delivery.update_status delay covers the case where a delivery appears DELIVERED but is subsequently corrected to
UNFULFILLED or PARTIALLY_DELIVERED. The riders.update_status delay applies in two cases: when the delivery status
transitions to DELIVERED or PARTIALLY_DELIVERED (to ensure rider events reflect the confirmed delivery outcome), and
in multi-rider deliveries where a rider appears as COMPLETED_DELIVERY but is subsequently corrected to FAILED_DELIVERY.

Recommendations

  • Rely on webhooks for final delivery status: Webhooks are the most reliable source for the confirmed outcome of a
    delivery.
  • Treat DELIVERED as final once received via webhook: Once you receive a DELIVERED webhook, the status has been
    confirmed and will not change.