Skip to main content

Cancel delivery

Cancels a delivery any time before the package is picked up — while it is still in ALLOCATING, PENDING_PICKUP, or PICKING_UP. Once the package has been picked up (PENDING_DELIVERY onward), provider-side cancellation is no longer allowed.

DEL/express/v1/deliveries/{deliveryID}

The legacy path DELETE /v1/deliveries/{deliveryID} is deprecated (21 May 2026) and will be obsoleted on 21 November 2026. New integrations must use DELETE /express/v1/deliveries/{deliveryID}.

Headers

Authorizationstringrequired
Bearer token.

Parameters

deliveryIDstringrequired
Path parameter. The Dash-issued id.
notesstringoptional
Optional body field — reason for cancellation, surfaced to the Dash ops team.

Eligible statuses

Provider-side cancellation is allowed from any status up to and including PICKING_UP — i.e. any time before the package is in the driver's hands:

  • ALLOCATING — no driver assigned yet
  • PENDING_PICKUP — driver assigned, has not started moving
  • PICKING_UP — driver is on the way to the pickup point but hasn't collected the package yet

The cut-off is pickup, not driver assignment. The moment the driver collects the package the delivery moves to PENDING_DELIVERY (pickupAt is set, PICKUP_PROOF captured) and cancellation is closed — a DELETE from PENDING_DELIVERY or IN_DELIVERY returns a 422, and from any terminal state also a 422. Only the provider can call DELETE; Dash drivers cannot cancel on your behalf.

Error responses

404Pengantaran tidak ditemukan.
403Akses tidak diperbolehkan. — the caller is not the owning provider of this delivery.
422Delivery ID sudah selesai diantarkan. Silakan input ulang sebelum upload, hanya bisa untuk delivery yang aktif saja. — delivery is already in a final state.
400QRIS deliveries can only be canceled up to PENDING_PICKUP — QRIS-paid delivery is past its cancellable status.
422Pengantaran sudah diambil. — package already picked up (PENDING_DELIVERY / IN_DELIVERY).