For: Developers
The goal of the Delivery API is to help to streamline delivery operations for delivery partners in the Dispatch Network and to ensure that all delivery details and status updates are communicated between our Delivery Management Systems in real time.
The Delivery API is intended to reduce the occurrence of manual communication and operational tasks and allow more partner control over delivery acceptance, rejection, cancellation, modifications, and delivery pickup times.
Below you will find our API documentation that will walk you through implementation and provide you with context into the business cases for each step. The API interface is GraphQL. We recommend reading the GraphQL documentation if you are unfamiliar.
Below are the high-level concepts and data types that are used throughout the API.
Deliveries
Deliveries represent a single delivery job encapsulating exactly one pickup and drop off address.
They are "requested" via DeliveryEvents sent to your application's webhook endpoint.
You can retrieve the latest details of a Delivery by requesting data from the GraphQL API described below.
You can also retrieve a list of your deliveries from the API.
Any updates to the details of a delivery will also be sent to your application's webhook endpoint.
Drivers
Drivers represent a single driver in your fleet.
In order for you to assign a Driver to a Delivery, the Driver must first be created in the system.
Drivers are uniquely identified by their phone number.
DeliveryEvents
DeliveryEvents represent either business events or tracking events for a given delivery.
Delivery lifecycle events like creation, modification, or cancellation will be sent to your applications' webhook endpoint.
"Tracking" events for the driver's location are submitted from your service to the API via the graphQL
createDriverTrackingEventmutation.
