👋 Welcome to Roadaroo!
We've built our service so that you can send a package in as quick as 1 step. Here you'll find endpoints for price quoting, placing an order, and requesting tracking information. Whether you're a seasoned pro or just getting started, you'll find comprehensive information to help you with seamless integration.
If you have any questions, encounter any issues, or simply want to share your feedback, please don't hesitate to reach out. We value your input and are committed to making your experience with our products as seamless as possible.
Setup & Requirements
To send your first package through our API, you will need to set up a Roadaroo Business Account.
We use API keys to authenticate calls to our service, you can find yours on the account details page in the dashboard. This key should be kept SECRET and not published on any public facing code.
Order Quotes
Obtain a quote on your order based on current rates without sending your package. The required data is the same as when placing an order, with the only change being the endpoint. This operation should be done as close to the time of placing your order for better costing accuracy.
POST: https://api.roadaroo.com/api/v1/intent/quote/
{
"intent": {
"sender": {
"businessName": "Example Business",
"telephone": "+12345678910",
"email": "test@example.com"
},
"collectionPoint": {
"address": "123 Example St",
"city": "Example City",
"province": "ON",
"postal": "123 456"
},
"returnPoint": {
"address": "123 Example St",
"city": "Example City",
"province": "ON",
"postal": "123 456"
},
"orders":[
{
"orderID": "004646831",
"existingShippingID": "8317385935",
"receiver": {
"firstName": "John",
"lastName": "Doe",
"telephone": "+12345678910",
"email": "customer1@example.com"
},
"deliveryPoint": {
"address": "456 Example St",
"city": "Example City",
"province": "ON",
"postal": "456 789"
},
"dropoffSignature": false,
"ageVerification": 0,
"weight": 0.2,
"length": 10.0,
"width": 10.0,
"height": 10.0,
"notes": "",
"items": [
{
"sku": "TESTSKU",
"title": "SKU1",
"description": "SKU1",
"quantity": 1
}
]
},
{
"orderID": "578620384",
"existingShippingID": "568758390",
"receiver": {
"firstName": "Jane",
"lastName": "Doe",
"telephone": "+12345678910",
"email": "customer2@example.com"
},
"deliveryPoint": {
"address": "789 Example St",
"city": "Example City",
"province": "ON",
"postal": "456 789"
},
"dropoffSignature": false,
"ageVerification": 0,
"weight": 0.2,
"length": 10.0,
"width": 10.0,
"height": 10.0,
"notes": "",
"items": [
{
"sku": "TESTSKU",
"title": "SKU1",
"description": "SKU1",
"quantity": 1
}
]
},
]
}
}
Field | Format | Information | Required |
---|---|---|---|
intent | Object | Wrapper for the data intended to be sent | Yes |
sender | Object | The information of the business that is posting the package | Yes |
businessName | String | Name of business | Yes |
telephone | String (E.164 Format) | Phone number of business, to assist if driver needs to contact | Yes |
String | Email address of business, for Roadaroo to contact for support | Yes | |
collectionPoint | Object | The location of the business facility to pick up the packages from | Yes |
address | String | The street address of the facility | Yes |
city | String | The city the facility is located in | Yes |
province | String | The province the facility is located in | Yes |
postal | String | The postal the facility is located in | Yes |
returnPoint | Object | The location of the business facility to return packages to if rejected | Yes |
(returnPoint subfields match collectionPoint) | |||
orders | Array | Each order is an individual package that is to be sent on the service | Yes |
orderID | String | The orderID that your system assigns to the package, to be matched with a trackingID that Roadaroo creates | Yes |
existingShippingID | String | For packages that have already been issued a tracking identifier. This allows Roadaroo to use an existing label. | No |
receiver | Object | The customer information for driver to contact if required | Yes |
firstName | String | First name of customer | No |
lastName | String | Last name of customer | No |
telephone | String (E.164 Format) | Customer phone number | No |
String | Customer email | No | |
deliveryPoint | Object | The customer's address to deliver the order to | Yes |
(deliveryPoint subfields match collectionPoint) | |||
dropoffSignature | Boolean | If the business requires the customer to sign for the package | Yes |
ageVerification | Integer | If the business requires a minimum age to receive the package | Yes |
weight | Float | Weight of package | Yes |
length | Float | Length of package | Yes |
width | Float | Width of package | Yes |
height | Float | Height of package | Yes |
notes | String | Any additional information that a driver may need to deliver | No |
items | Array | The products that are being packed within the order (leave empty if not available) | Yes |
sku | String | SKU / Product code of items being shipped | No |
title | String | Name of product with corresponding SKU | No |
description | String | Description of product with corresponding SKU | No |
quantity | Integer | Number of products by the SKU | No |
Order Placement
Placing an order has never been so simple! This step allows you to immediately list your package on Roadaroo for pickup via our network of drivers. This uses the same format as requesting a quote, all you need to change is the endpoint.
The same fields are used between order placement and order quoting. The same request data should be used.
POST: https://api.roadaroo.com/api/v1/intent/place/
Label Creation
Request a ZPL label to be printed for your orders using the trackingID you receive in response from our service.
POST: https://api.roadaroo.com/api/v1/intent/label/
{
"trackingID": "119037082885308555201"
}
Field | Format | Information | Required |
---|---|---|---|
trackingID | String | Your trackingID corresponds with an individual order that you have previously placed. You will receive the trackingID from the response to an order placement intent. | Yes |
Order Status
Request the status events of an order using the trackingID you receive in response from our service.
The same fields are used between order labeling and order status. The same request data should be used.
POST: https://api.roadaroo.com/api/v1/intent/status/
{
"trackingID": "119037082885308555201"
}
Order Cancellation
Cancel an individual order using the trackingID you receive in response from our service.
The same fields are used between order cancellation and order status. The same request data should be used.
POST: https://api.roadaroo.com/api/v1/intent/cancel/
{
"trackingID": "119037082885308555201"
}