Skip to main content
Use Uber Direct to send a courier from your store to a customer: quote a delivery, request it, follow the courier, fetch proof of delivery, and start automations as the delivery moves. Uber Direct is the only Uber API available without a partner agreement. Rides, Uber Eats Marketplace, and Uber for Business APIs require Uber’s approval for each customer, so this integration does not include them.

Connect Uber Direct

  1. Sign up at direct.uber.com. New accounts start in test mode with sandbox credentials. Uber requires billing details and approval before it issues production credentials.
  2. In the Uber Direct dashboard, open Developer and copy the client ID, client secret, and customer ID.
  3. To use triggers, open Developer > Webhooks, create a webhook with the URL https://automate.ax/api/v1/events/uber/ followed by your customer ID, and select the delivery status, courier update, and refund events your automations use. Copy the signing key for that webhook.
  4. Connect Uber in Automate.ax with Uber Direct. Enter the client ID, client secret, customer ID, and, for triggers, the webhook signing key.
Test and production credentials are separate connections. Each webhook has its own signing key, so connect the key that belongs to the webhook you created for that mode. Automate.ax exchanges your credentials for Uber’s 30-day access token and refreshes it before it expires. Organization and business-location actions also need Uber’s direct.organizations scope. Automate.ax requests it when you connect and grants those actions only if Uber allows it for your account.

Send a courier

automations/send-a-courier.automation.ts
Pass roboCourier: { mode: "auto" } with test credentials to have Uber’s simulated courier move the delivery through every status in about three minutes and send real webhooks.

Delivery lifecycle

Uber reports a delivery as pending, then pickup while a courier heads to the store, pickup_complete, dropoff while the courier heads to the customer, and finally delivered, canceled, or returned. courierImminent becomes true when the courier is about one minute away from the current stop. Each status triggers any delivery event plus one milestone trigger: Courier Pick & Pack deliveries can also report shopping_completed, which starts only any delivery event. When Uber cannot complete a delivery whose undeliverableAction is return, the original delivery becomes returned and Uber creates a separate return delivery whose ID starts with ret_. relatedDeliveries links the two. Monetary amounts such as fee, tip, and manifestTotalValue are integers in the currency’s smallest unit, so $10.99 is 1099.

Exports

  • uber contains the packaged Uber Direct actions and triggers.
  • uberAccount("name") selects a named Uber Direct connection.
  • getUberApi creates the authenticated REST helper for a custom account-backed action.
Uber limits sandbox credentials to 200 requests per 10 minutes. Automate.ax retries rate-limited requests and temporary courier shortages. It retries Create delivery after an uncertain failure only when you pass an idempotencyKey.

Triggers

Actions

See the Uber Direct API documentation for coverage areas, pricing, and provider behavior.