Update Employee Trip
PUThttps://api.uber.com/v2/employees/trips
¶ Use case
Use this endpoint to update an employee trip.
The update to Scheduled Rides means that the existing trip will be canceled, and a new one will be initiated using the updated information. However, please note that we do not support updates to reserve trips before they are accepted by a driver.
In order to request a ride for a third party client (3PC), please add x-uber-organizationuuid header and the Organization UUID as the value.
¶ To update an active ride (a trip dispatched to a driver)
Only the destination and intermediate stops can be updated for active rides. You will need to ensure any fields other than the destination and the requested stops are the same as what they were set to when the trip was created. You can call GET /v2/employees/trips/{request_id} to retrieve those fields.
After updating them, subsequent calls to GET /v2/employees/trips/{request_id} will show the latest destination and requested stops updated in the destination
and stop
fields of the response.
¶ Authorization
OAuth 2.0 Bearer token with the business.trips
scope.
¶ Ride Types
Ride | Description |
---|---|
Ride on Demand | Request a driver for immediate pickup. |
Scheduled Ride | Automatically send a driver at a specific time in advance. Riders cannot change the pickup time for a scheduled ride without contacting the driver. Only available in certain areas. |
|
¶ Request
¶ Example request
Try It
curl -X PUT \
-H "authorization: Bearer <access_token>" \
-H 'content-type: application/json' \
-d '{
"customer": {
"customer_type": "EMPLOYEE"
"email": "jane@example.com"
},
"request_id": "42541eb5-8ced-4ed9-af4b-f92359816a23",
"product_id": "a1111c8c-c720-46c3-8534-2fcdd730040d",
"pickup": {
"latitude": 40.750568,
"longitude": -73.993519
},
"dropoff": {
"latitude": 40.752558,
"longitude": -74.006469
},
"requested_stops": [
{
"latitude": 40.7284,
"longitude": -73.9357
},
{
"latitude": 40.7322,
"longitude": -73.9682
}
],
"expense_code": "sample code",
"expense_memo": "sample memo"
}' \
'https://api.uber.com/v2/employees/trips/<trip_uuid>'
When using the sandbox environment, the request requires the x-uber-sandbox-runuuid
header with the run_id
as the value (e.g, -H "x-uber-sandbox-runuuid:<run_id>"
).
In order to specify an org for which the ride needs to be billed to, the request requires the x-uber-organizationuuid
header with the Org UUID
as the value (e.g, -H "x-uber-organizationuuid:<org_UUID>"
).
¶ Request Query parameters
URL parameter | Type | Description |
---|---|---|
trip_uuid |
string |
(Required) The unique ID of the ride request. |
¶ Request parameters
Name | Type | Description |
---|---|---|
request_id |
string |
(Required) The unique ID of the ride request. |
pickup |
object |
(Required) Object containing pickup location details. |
pickup.latitude |
float |
(Required) The pickup location latitude |
pickup.longitude |
float |
(Required) The pickup location longitude |
pickup.address |
string |
(Optional) The pickup address used in text messages to rider. Set the “title” and “subtitle” to control what the driver sees as the address. If not set, will be reverse geocoded by Uber using the latitude/longitude. |
pickup.place.place_id |
string |
(Optional) The place ID in provider’s namespace. For pickups at specialized pickups, should be set to the ID of an access point; see the /v1/guests/zones API for more detail. |
pickup.place.provider |
string |
(Optional) The name of a provider of location data, e.g. google_places. Should be set to uber_geofences for specialized pickups; see the /v1/guests/zones API for more detail. |
pickup.place.zone_id |
string |
(Optional) For trips at specialized pickups, should be set to the ID of the most immediate parent pickup zone; see the /v1/guests/zones API for more detail. |
start_location |
object |
deprecated (Required only if pickup is not provided) Object containing pickup location details. |
start_location.latitude |
float |
(Required) The pickup location latitude |
start_location.longitude |
float |
(Required) The pickup location longitude |
start_location.address |
string |
(Optional) The pickup address used in text messages to rider. Set the “title” and “subtitle” to control what the driver sees as the address. If not set, will be reverse geocoded by Uber using the latitude/longitude. |
start_location.place.place_id |
string |
(Optional) The place ID in provider’s namespace. For pickups at specialized pickups, should be set to the ID of an access point; see the /v1/guests/zones API for more detail. |
start_location.place.provider |
string |
(Optional) The name of a provider of location data, e.g. google_places. Should be set to uber_geofences for specialized pickups; see the /v1/guests/zones API for more detail. |
start_location.place.zone_id |
string |
(Optional) For trips at specialized pickups, should be set to the ID of the most immediate parent pickup zone; see the /v1/guests/zones API for more detail. |
dropoff |
object |
(Required) Object containing destination details. |
dropoff.latitude |
float |
(Required) The destination latitude |
dropoff.longitude |
float |
(Required) The destination longitude |
dropoff.address |
string |
(Optional) The dropoff address used in text messages to the rider. Set the “title” and “subtitle” to control what the driver sees as the address. If not set, will be reverse geocoded by Uber using the latitude/longitude. |
dropoff.place.place_id |
string |
(Optional) The place ID in provider’s namespace. |
dropoff.place.provider |
string |
(Optional) The name of a provider of location data, e.g. google_places |
end_location |
object |
deprecated (Required only if dropoff is not provided) Object containing destination details. |
end_location.latitude |
float |
(Required) The destination latitude |
end_location.longitude |
float |
(Required) The destination longitude |
end_location.address |
string |
(Optional) The dropoff address used in text messages to the rider. Set the “title” and “subtitle” to control what the driver sees as the address. If not set, will be reverse geocoded by Uber using the latitude/longitude. |
end_location.place.place_id |
string |
(Optional) The place ID in provider’s namespace. |
end_location.place.provider |
string |
(Optional) The name of a provider of location data, e.g. google_places |
requested_stops |
array |
(Optional) An array of objects containing the location of the trip’s intermediate stops. |
requested_stops[].latitude |
float |
(Required if setting requested_stops ) The intermediate stop latitude |
requested_stops[].longitude |
float |
(Required if setting requested_stops ) The intermediate stop longitude |
requested_stops[].place |
struct |
(Optional) This controls the address shown to the driver. If not set, the address shown will be reverse geocoded by Uber using the latitude/longitude. |
requested_stops[].place.place_id |
string |
(Required if setting place ) The place ID in provider’s namespace. |
requested_stops[].place.provider |
string |
(Required if setting place ) The name of a provider of location data, e.g. google_places |
product_id |
string |
(Required) The unique ID of the product being requested. Product IDs for a specific area can be retrieved using the /v1/guests/trips/estimates API. Can only be updated for a flexible ride before the trip has been redeemed by the rider. |
expense_memo |
string |
(Optional) A free text field to describe the purpose of the trip for expense reporting. This value will appear in the trip receipt and any configured expense-reporting integrations like Uber For Business or Business Profiles. Can be updated at any time. |
note_for_driver |
string |
(Optional) A free text field for a coordinator to enter a message that will be sent to the driver once the driver gets assigned to a trip. If not set, will delete any existing note set for the ride. Can only be updated before a trip has been dispatched to a driver. |
customer |
object |
(Required) Specifies the employees informations. Emails is required. |
Name | Type | Description |
---|---|---|
first_name |
string |
(Optional) The first name of the customer. |
last_ame |
string |
(Optional) The last name of the customer. |
email |
string |
(Required) The email address of the customer. |
phone_number |
string |
(Optional) The phone number of the customer. |
customer_type |
string |
(Required) Specifies the customer type. E.g., EMPLOYEE . |
¶ Response
¶ Example response
{
"requestID": "b56cd183-5512-4f1a-8f02-ce944b76a117"
}
A successful request will receive a 200 with an empty response with the requestID
.
¶ Expected Errors
{
"code": "validation_failed",
"data": {
"invalid_field_changed": "pickup"
},
"message": "Only destination can be updated for active rides"
}
{
"code": "bad_request",
"message": "The ride that has reached a final state and cannot be updated."
}
{
"message": "You can only adjust your pickup point within the area shown.",
"data": {
"statusCode": "400"
},
"errCode": "pickup_cannot_be_updated",
}
{
"message": "Sorry, you are not eligible for a pickup location change!",
"data": {
"statusCode": "400"
},
"errCode": "pickup_cannot_be_updated",
}
¶ Internal Server Errors
{
"message": "Something went wrong - please try again.",
"data": {
"statusCode": "500"
},
"errCode": "internal_server_error",
}