Last-mile API (1.0)
This is the last-mile API: collection from a pickup point and delivery to a customer. If Quiqup holds your stock and picks it, you want the Fulfilment API instead. See Which API do I need.
The object you work with is the order. You will be creating orders through our Order API, these orders will follow a certain status life cycle, documented in Order lifecycle.
Our APIs are RESTful based and follow the below principles:
- Accessible on staging through: https://api.staging.quiqup.com and on production through: https://api-ae.quiqup.com
- It uses standard HTTP verbs like GET, POST, PUT and DELETE
- Uses standard HTTP error responses to describe errors, for example:
{
"api_error": {
"id": 1002,
"code": "Error Code",
"message": "Error Message",
"human": "Human readable error message",
"description": "Detailed human readable error description",
"http_status_code": 400,
"attribute_errors": [
{ "detail": "additional error code" }
]
}
}- Authentication and authorization are based on the OAuth 2.0 standard
- All communication with our servers must be over SSL (https://), otherwise it will fail
- POST data must be encoded as application/json
- Most responses are encoded as application/json. Two are not:
GET /order_label/{order_id}returns a PDF, andPUT /orders/{order_id}returns the literaltruewith noContent-Typeheader at all. Check the content type before parsing.
A typical order flow:
- Get a Bearer token. Generate one yourself in Quiqdash, or, if you hold a
client_idandclient_secret, exchange them atPOST /oauth/token, see the Auth reference. - Create a pending order using
POST /orders, see details in this reference. - Mark the order as
ready_for_collectionusingPUT /orders/{order_id}/ready_for_collection, see details in this reference.- There is an option to skip this step and directly create the orders in a ready for collection state, however the orders do actually need to be ready for collection.
- Using this step option will thus depend on how the picking and packing process works.
- Request an order label by using:
GET /order_label/{order_id}see details in this reference. This label needs to be saved as a PDF document, printed and used to label the order. The barcode on this label will be used by the couriers and our warehouse staff to scan the orders and keep you updated on the order status. The label can be downloaded before or after step 3. - Order state updates, once the order has been placed it will go through various states (see Order lifecycle). There are two options on how you can receive updates on this:
- These can be received in realtime through webhooks, see Webhooks
- Alternatively you can get the order state from GET /orders/{order_id}, see in this reference for details.
Download OpenAPI description
Overview
E-mailLicense
Languages
Servers
Staging. Build and test here.
https://api.staging.quiqup.com
Production. Real couriers, real charges.
https://api-ae.quiqup.com