Three lines

Uber

Developers

FAQ

What is Uber Direct?

Uber Direct empowers our merchants to provide on-demand (ASAP) and scheduled delivery services. To accomplish this, we utilize a range of features that facilitate effective delivery management and enable merchants to customize delivery options to align with their unique business requirements. By leveraging Uber Direct, you can now easily automate the process of dispatching an Uber courier for pick-up and deliveries.

Do you have rate limits?

Our rate limits differ across different endpoints. If you exceed the allowed number of requests within a specific timeframe, you will receive a 429 customer_limited response. If you encounter rate limiting due to intentional usage scenarios, we recommend reaching out to your Account Manager for further assistance.

What’s the difference between “Client ID”, “Customer ID”, and “Client Secret”?

The Client ID and Client Secret remain consistent across the account and are applicable to all organizations, customer IDs, and locations. However, it is important to note that the Customer ID utilized with the API will vary depending on the configured organizational structure. This aspect requires thorough discussion and finalization with the Account Manager or Uber Direct Point of Contact prior to the go-live phase.

How long is the generated Quote & quote_id valid for?

15 minutes.

What’s the difference between the Delivery status and Courier Update Webhook
  • Delivery Status Webhook: A static Webhook triggered at specific delivery stages, including courier_imminent changes. Please refer to Delivery Status Webhook for more details.

  • Courier Update Webhook: A dynamic Webhook, fired every 20 seconds providing updated coordinates on the courier’s location. Please refer to Courier Update Webhook for more details.

For both webhooks, please be aware that courier_imminent = true indicates that the courier is within approximately 80 meters of the pickup/dropoff location.

What are the address best practices?
  • Structured vs non-structured address
    Our platform supports two types of address formats: non-structured addresses and structured addresses. While both formats are accepted, we highly recommend utilizing structured address formats to ensure enhanced accuracy and validation in the delivery process.

    Structured Address:

    {
      "dropoff_address": "{\"street_address\":[\"1515 3rd St\",\"Apt. 5\"],\"city\":\"San Francisco\",\"state\":\"CA\",\"zip_code\":\"94158\",\"country\":\"US\"}"
    }
    

    Non-Structured Address:

    {
      "dropoff_address": "1515 3rd St, San Francisco, CA 94158"
    }
    
  • Latitude and Longitude
    It’s recommended that any requests made to Uber contain a valid and accurate latitude and longitude.
    IMPORTANT: By default, if the provided lat/long is more than 1 km away from the address, we will overwrite it with the data returned by our backend Geocoding.

  • Consistent Address Format Recommendation
    To ensure a smooth integration experience, we highly recommend using the same address format (either structured or unstructured) when submitting a drop-off address in both quote and create delivery requests. Using different formats may lead to varied geocoding results, potentially triggering a “delivery location changed” error within the system.

    Example:

    Incorrect

      - Quote Request: "dropoff_address": "190 Mathilda Pl, Sunnyvale, CA 94086"
      - Create Delivery Request: "dropoff_address": "{\"street_address\":[\"190 Mathilda Pl\",\"\"],\"city\":\"Sunnyvale\",\"state\":\"CA\",\"zip_code\":\"94086\"}"
    

    Correct: Structured address

      - Quote Request: "dropoff_address": "{\"street_address\":[\"190 Mathilda Pl\",\"\"],\"city\":\"Sunnyvale\",\"state\":\"CA\",\"zip_code\":\"94086\"}"
      - Create Delivery Request: "dropoff_address": "{\"street_address\":[\"190 Mathilda Pl\",\"\"],\"city\":\"Sunnyvale\",\"state\":\"CA\",\"zip_code\":\"94086\"}"
    

    Correct: Unstructured address

      - Quote Request: "dropoff_address": "190 Mathilda Pl, Sunnyvale, CA 94086"
      - Create Delivery Request: "dropoff_address": "190 Mathilda Pl, Sunnyvale, CA 94086"
    
What fields can be updated using the Update Delivery API?

Please refer to the following table:

Parameter Delivery created Pickup started Pickup imminent Pickup complete Dropoff started Dropoff imminent Dropoff complete
manifest reference edit edit - - - - -
dropoff_latitude edit edit - - - - -
dropoff_longitude edit edit - - - - -
pickup_notes edit edit - - - - -
dropoff_notes edit edit edit edit edit - -
dropoff_seller_notes edit edit edit edit edit - -
tip_by_customer - - - - edit edit edit
pickup_ready_dt edit edit edit - - - -
pickup_deadline_dt edit edit edit - - - -
dropoff_ready_dt edit edit edit - - - -
dropoff_deadline_dt edit edit edit - - - -

Uber

Developers
© 2023 Uber Technologies Inc.