Skip to main content

Delivery

Coordinate delivery quotes, job creation, live updates, and cancellation with your courier or logistics partner.

Overview

Otter requests quotes and delivery jobs via webhooks. Your app responds through callback endpoints and streams status updates until the delivery completes or cancels.

Integration overview

  1. QuoteRequest delivery quotes (delivery.request_quote) in; POST /v1/delivery/{deliveryReferenceId}/quotes out with AVAILABLE plus estimates or UNAVAILABLE plus an optional reason.
  2. CreateAccept delivery (delivery.accept); acknowledge successful creation through POST /v1/delivery/{deliveryReferenceId}/accept.
  3. UpdatesPUT /v1/delivery/{deliveryReferenceId}/status for status, address, courier, vehicle, notes.
  4. Update requestUpdate delivery request (delivery.update_request) in; POST /v1/delivery/{deliveryReferenceId}/update out — see Handle delivery update requests.
  5. CancelCancel delivery (delivery.cancel) in; POST /v1/delivery/{deliveryReferenceId}/cancel out — see Cancel a delivery.
  6. ErrorsPOST /v1/delivery/callback/error — see Handle delivery errors.

A typical lifecycle is ALLOCATEDPICKED_UPCOMPLETED, or CANCELED. Otter accepts some updates with intermediate statuses omitted, so do not depend on synchronous validation of the complete sequence.

Quote, accept, and cancel callbacks return 204 after the correlated result is stored. A duplicate callback with the same event ID returns 409. Accept and cancel callbacks represent success only; report failures through the delivery error callback.

Next

Implement Create a delivery before live traffic.