Create an Uber Direct on-demand delivery for a merchant
domain: developer.uber.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
In-depth guide
Verify Uber Direct webhook signatures — the full failure-mode walkthrough related to developer.uber.com, checked against official docs, with linked verified routes.
Steps
Obtain an OAuth 2.0 client credentials token from Uber's token endpoint using your client_id and client_secret with the delivery scope
POST to /v1/customers/{customer_id}/deliveries with pickup and dropoff objects (each containing name, address, phone, and notes), plus manifest items describing the package
Capture the delivery_id and tracking_url from the response; surface the tracking_url to the end recipient
Listen for status changes via configured webhooks or poll GET /v1/customers/{customer_id}/deliveries/{delivery_id}; key statuses include pickup, pickup_complete, dropoff, delivered, and cancelled
To cancel before courier pickup, POST to /v1/customers/{customer_id}/deliveries/{delivery_id}/cancel
Known gotchas
The customer_id in Uber Direct refers to your merchant/organization account, not the end consumer — confusing these causes 404 errors on delivery creation
Uber Direct access tokens expire; cache the token and refresh proactively before expiry rather than waiting for a 401 response on a live delivery call
Delivery creation may succeed but a courier may not be assigned immediately in low-density areas; monitor for a long-pending status and communicate ETAs cautiously
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?