Delivables API

Build powerful delivery experiences with the Delivables API. Manage orders, optimize routes, and integrate seamlessly with your existing systems.

Simple Authentication

Secure API key authentication with tenant-scoped access control.

Order Management

Create, track, and manage orders with real-time updates.

Route Optimization

Intelligent routing algorithms to optimize delivery efficiency.

Enterprise Ready

Built for scale with robust security and reliability.

Base URL

https://api.delivables.com/v1

Getting Started

To start using the Delivables API, you'll need to generate an API key from your dashboard.

1

Visit the Delivables Dashboard

Go to delivables.com and sign up or log in to your account.

2

Access Developer Settings

Click your profile email at the bottom-left of the sidebar, then select Developer from the dropdown menu.

3

Generate Your API Key

Click Generate API Keyto create a new key. Store it securely—you won't be able to see it again.

Important Notes

  • API keys are branch-scoped and only work for the branch they were created in
  • Keep your API keys secret—never expose them in client-side code
  • API keys are required on every request

Authentication

All API requests require two headers for authentication. Both must be present on every request.

Required Headers

Every API request must include both the Authorization and X-Tenant-Domain headers. Requests missing either header will fail with a 401 Unauthorized error.

Authorization Header

Pass your API key as a Bearer token in the Authorization header.

Authorization: YOUR_API_KEY

X-Tenant-Domain Header

Specify your organization's subdomain to identify the tenant.

X-Tenant-Domain: your-organization-subdomain.delivables.com

Complete Example

curl -X GET "https://api.delivables.com/v1/health" \
  -H "Authorization: Bearer ak_xxxxxxxxxxxxx" \
  -H "X-Tenant-Domain: your-organization-subdomain.delivables.com"

Health Check

Use the health endpoint to validate your API key, tenant domain, and API availability.

Create Order

Create and manage delivery orders through the API.

Create Order Rules

  • Distance and time are always calculated server-side based on locations
  • Delivery fees come from branch rate settings unless explicitly overridden
  • Express fees are added automatically for EXPRESS service type
  • Maximum 4 orders can be created per request

Create Order - Request Body

FieldTypeRequiredDescription
serviceTypestring (enum: "STANDARD" | "EXPRESS")NoService type - affects delivery fee calculation
ordersarrayYesArray of orders to be delivered. Distance and time will be calculated automatically.
orders[].location.addressstringYesBranch location will be used if not provided
orders[].location.latnumberYesBranch location will be used if not provided
orders[].location.lngnumberYesBranch location will be used if not provided
orders[].location.placeIdstringNo
orders[].location.utmCoordinatesstringNo
orders[].destination.addressstringYes
orders[].destination.latnumberYes
orders[].destination.lngnumberYes
orders[].destination.placeIdstringNo
orders[].destination.utmCoordinatesstringNo
orders[].customerNamestringYesRecipient name
orders[].customerNumberstringYesRecipient phone number
orders[].senderNamestringNoSender name
orders[].senderNumberstringNoSender phone number
orders[].packageCostnumberYesPackage/goods cost
orders[].deliveryFeenumberNoCustom delivery fee (optional - will be calculated from branch rates if not provided)
orders[].expressFeenumberNoExpress delivery fee (optional)
orders[].paymentOptionstring (enum: "Delivery Fee Only (T&T)" | "Package Cost Only" | "Delivery Fee & Package Cost" | "No Payment Required")YesWhat does customer pay for
orders[].paymentMethodstring (enum: "Cash On Delivery" | "Mobile Money on Delivery" | "Customer Already Paid" | "Other" | "No Payment Required")YesHow does customer pay for the delivery
orders[].otherMethodstringNoOther payment method description
orders[].positionnumberNoItem position in delivery sequence
orders[].notesstringNoDelivery notes
orders[].referencestringNoYour reference number
riderIdstringNoRider ID to assign order to (optional - order will be UNASSIGNED if not provided)
deliveryTypestring (enum: "SINGLE_DELIVERY" | "MULTIPLE_DELIVERY" | "MULTIPLE_PICKUPS")NoDelivery type (auto-detected if not provided)
routeOptionstring (enum: "MANUAL" | "OPTIMIZED")NoRoute optimization option
useQueuebooleanNoForce queue-based processing for higher success rate (default: false, uses hybrid with automatic fallback)

List Orders - Query Parameters

FieldTypeRequiredDescription
startDatestringNo
endDatestringNo
searchstringNo
pagestringNo
limitstringNo
takestringNo
skipstringNo
customerNumberstringNo
riderIdstringNo
statusstringNo
serviceTypestringNo
excludeCanceledbooleanNo
excludeCompletedbooleanNo

Get Order by ID - Path Parameters

FieldTypeRequiredDescription
idstringYes

Optimize Route - Request Body

FieldTypeRequiredDescription
itemsarrayYes
items[].idstringYes
items[].location.latnumberYes
items[].location.lngnumberYes
items[].location.addressstringYes
items[].location.utmCoordinatesstringNo
items[].destination.latnumberYes
items[].destination.lngnumberYes
items[].destination.addressstringYes
items[].destination.utmCoordinatesstringNo
deliveryTypestring (enum: "MULTIPLE_PICKUPS" | "MULTIPLE_DELIVERY")Yes
branchIdstringNo

Jobs

Track the status of asynchronous operations.

Get Job Status - Path Parameters

FieldTypeRequiredDescription
idstringYes

Error Handling

The API uses conventional HTTP response codes to indicate success or failure of requests.

CodeDescription
200Request succeeded
400Bad request — Invalid parameters or malformed request body
401Unauthorized — Missing or invalid API key
404Not found — The requested resource doesn't exist
429Rate limited — Too many requests
500Internal server error — Something went wrong on our end

Error Response Format

{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The API key provided is invalid or has been revoked.",
    "status": 401
  }
}

Ready to get started?

Generate your API key and start integrating Delivables into your application today.

Go to Delivables