Shippo Tech

Learnings from Integrating the UberRUSH API

Tue 14 Jun 2016
By Shippo Engineering

UberRUSH Shippo dashboard

Last week, Uber announced the public availability of the UberRUSH API. We were granted early access to the API, adding UberRUSH to our list of shipping provider as the first on-demand delivery service available in our network. 

If you’re thinking of adding UberRUSH to your roster of delivery options for your business, here are some things we learned during our integration process that could help you both through the operational and integration process.

Important changes to operations

We found that the majority of the work we had to do on UberRUSH integration was around user experience to make sure that fulfilment centers are ready to put an order together on time, and customers understand that they need to be ready to receive their orders. 

On-demand fulfillment and pick-up

Since UberRUSH is an on-demand delivery service, your fulfilment team needs to be ready to put together an order as soon as the order comes in. Some businesses using UberRUSH have a separate pick-list printer, shelving unit, and fulfillment flow so that as soon an order comes in, they can address it immediately. UberRUSH provides a pickup ETA as a response to the request for a shipment. Successful operation requires your order preparation time to fit within the pickup ETA. The ETA could be as little as a few minutes if there is a courier near by.

Another often challenging piece of the processes is the pick-up. To ensure the smoothest operations, allocate a standard and easily accessible pick up areas with clear instructions on how to get there. This saves you time from having to wait while the courier is looking for where to pick up the package.

Make sure customers select an appropriate drop-off method

Similar to the pickup process, make sure your customer provides the courier with any special instructions for the drop off. There are a few options that they can select from:

Require signature: The courier will always leave the package with a person, so be sure that any customers who request this feature understands that they will need to be available when the delivery arrives. The package will be returned if the customer is not able to receive it.

Special drop-off instructions: Customers can pass any special drop-off instructions for the courier so that they can leave it there. 

Scheduled drop-offs: This requires a bit more coordination between you and your customer, but with UberRUSH, you are able to offer a specific drop-off time for the package. 

It’s also recommended to have your customers to provide a phone number that they can be reached at, so that the courier will be able to get in touch when there are issues with the delivery.

Through Shippo’s dashboard, we’ve set it up so that as soon as you print the UberRUSH label, the courier is notified and you will receive a link to their whereabouts. When the package is picked up, an automatic email with the same tracking link will be sent to your customers so that they can meet the courier curbside. 

Integrating the UberRUSH API alongside other shipping carriers

If you use Shippo, you won’t need to worry about the specifics of integrating with UberRUSH. One connection with the Shippo API will give you access to dozens of shipping providers including UberRUSH, USPS, FedEx, UPS and many more. 

But if you do decide to build your own UberRUSH API integration, here are a few things that you should keep an eye out for during the development process with UberRUSH. 

Data formats

Chances are you’ll be adding the UberRUSH API alongside other shipping providers to display rates side-by-side at checkout. Majority of other shipping carriers use XML or SOAP data formats whereas UberRUSH API uses JSON. So be sure to use a JSON parser to make your life easier when adding UberRUSH to the roster. 


Another difference between UberRUSH and other shipping providers is the authentication process. UberRUSH relies OAuth 2.0 for authentication. If you’re going to build an app that other business use for UberRUSH (like we did) Uber relies on expiring tokens which need to be periodically renewed. This is starkly different from other carriers who use a persistent account id / password which doesn’t change.

Box versus items

When dealing with major carriers, you are typically concerned with boxes: box dimensions and weights. UPS and FedEx do not typically care what’s in the box as long as it’s not a prohibited item. However, with UberRUSH you need to specify what items are being delivered. We needed to expose line item information from the orders for UberRUSH integration to work.

Use the sandbox

Take advantage of the UberRUSH development sandbox endpoints for testing the functionality of an application without making calls to the production Uber platform. You can requests “pickups and delivery” and see how would work in a real life situation. 

It also doesn’t hurt to mimic your entire new workflow from end-to-end, to make sure that your team and your new customer flow is intuitive and friction-free.

We hope these highlights from our experience integrating the UberRUSH API will help if you’re planning do it. You could also do a single integration into Shippo, and get access to over a dozen carriers, including UberRUSH, USPS, FedEx, UPS with just one integration. 

Next post

Jun 15, 2016
Post-Mortem 6/10: Redis to RabbitMQ Migration

Previous posts

Jun 10, 2016
DHL eCommerce Now Supported on Shippo

Jun 07, 2016
Webhooks, Shipping and Event Notifications

Sign up for the Shippo Blog

Receive emails with news and announcements we post on this blog.