For developers
Book deliveries from your own system.
Planned, not live. This describes the API we intend to offer. Nothing below can be called today. Request early access and we will tell you when a sandbox exists.
What it will cover
| Capability | Planned endpoint |
|---|---|
| Can we deliver to this location? | POST /v1/serviceability |
| Book a delivery | POST /v1/orders |
| Cancel an order | POST /v1/orders/{id}/cancel |
| Order status and rider location | GET /v1/orders/{id} |
| Status changes pushed to you | Webhook: order.assigned, order.picked_up, order.delivered, order.cancelled |
| Report a delivery problem | POST /v1/issues |
How we plan to secure it
- Each business gets its own API key and a separate signing secret.
- Every request is signed: an HMAC-SHA256 over the timestamp and the exact request body. Requests older than five minutes are rejected, so a captured request cannot be replayed later.
- Booking requests carry an idempotency key, so a retry never books two riders.
- Webhooks are signed the same way, retried with back-off, and carry an event id so you can ignore duplicates.
- You only ever see your own orders. Customer phone numbers are shared with riders only for the active order.
Illustrative booking request
Illustration only. Field names can change before release.
POST /v1/orders
Idempotency-Key: 7b1c0b9e-...
X-Timestamp: 1760000000
X-Signature: hex(hmac_sha256(secret, timestamp + body))
{
"reference": "YOUR-ORDER-1042",
"pickup": { "name": "Sai Kirana", "lat": 17.4401, "lng": 78.3489 },
"drop": { "name": "Customer", "phone": "98XXXXXXXX", "address": "...", "lat": 17.4512, "lng": 78.3601 },
"verification": "otp"
}
Early access
Tell us what you would integrate and how many orders a day you expect.