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.
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
Parameters
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 yetPENDING_PICKUP— driver assigned, has not started movingPICKING_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
DELIVERY_NOT_FOUND — deliveryID doesn't exist. Pengantaran tidak ditemukan.FORBIDDEN — the caller is not the owning provider of this delivery. Akses tidak diperbolehkan.DELIVERY_ALREADY_COMPLETED — delivery is already in a final state, including already cancelled. Delivery ID sudah selesai diantarkan. Silakan input ulang sebelum upload, hanya bisa untuk delivery yang aktif saja.DELIVERY_QRIS_CANT_CANCEL — QRIS-paid delivery is past its cancellable status. QRIS deliveries can only be canceled up to PENDING_PICKUPDELIVERY_PICKING_UP — package already picked up (PENDING_DELIVERY / IN_DELIVERY). Pengantaran sudah diambil.