Integrating Our API with Your Delivery Platform
A practical guide for developers and product teams
Our RESTful API gives you end-to-end control of the locker workflow—from locker discovery to driver drop-off and user pickup. Below you’ll find the complete integration flow, broken into Instant Delivery and Grocery (Nominated-Day) Delivery use-cases. Each step references key endpoints, required payloads, and decision logic so you can build quickly and confidently.
🗺️ Shared Core Flow (Applies to Both Use-Cases)
Step | Purpose | Primary Endpoints |
---|---|---|
Locker Discovery | Capture user coordinates or postcode → fetch lockers in radius. | GET /lockers/search?lat={}&lng={} |
Range Validation & Filtering | Capture user coordinates or postcode → fetch lockers in radius. | POST /lockers/filter |
Availability & Queue Check | Check real-time compartment availability + queue length. | GET /lockers/{id}/availability |
Checkout Confirmation / Address Switch | Check real-time compartment availability + queue length. | (client-side) |
Basket Submission & Age/Space Verification | Partner posts basket JSON (items, dims, temp, age flag). API returns pass/fail and size match. | POST /orders/validate |
Locker Reservation & Code Assignment | Reserve compartments, receive pickup + driver codes. | POST /orders/reserve |
Driver Drop-Off | Driver opens locker via QR / PIN; API logs event. | POST /orders/{id}/deposit |
User Pickup / Expiry Logic | User opens locker; expiry timers and reminders trigger. | POST /orders/{id}/pickup |
⚡ Instant Delivery Flow
-
Real-Time Locker Scoring
Use the optional&eta=
parameter in/lockers/search
to rank lockers by driver travel time. -
Auto-Assignment Endpoint
POST /orders/auto-assign
lets your dispatch engine send multiple orders; our AI returns optimal locker IDs + compartment types in <300 ms. -
Driver App Integration
EmbedGET /orders/{id}/driver-token
to pull a one-time QR code for seamless door-to-locker routing. -
Exception Handling
If a locker becomes full en-route, callPOST /orders/{id}/reassign
to receive the next-best locker recommendation.
🛒 Grocery (Nominated-Day) Delivery Flow
-
Time-Slot Reservation
Passdelivery_window_start
anddelivery_window_end
in/orders/validate
. The API blocks compartments for that slot only. -
Bulk Basket Validation
Send an array of up to 200 orders to/orders/bulk-validate
for carton-level temperature and volume checks. -
Split-Basket Logic
If frozen + ambient items can’t fit one compartment, the API returnssplit:true
with compartment IDs per temperature zone. -
Route Export
CallGET /routes/download?date=YYYY-MM-DD
to pull a CSV/JSON of all lockers, compartments, and driver codes for your nightly line-haul.
🛠️ Developer Best Practices
-
Metadata Matters – Always include
item_dimensions
,temp_requirement
, andage_check
flags; they drive AI accuracy. -
Idempotent Calls – Use the
X-Request-ID
header to safely retry network-flaky calls. -
Webhooks – Subscribe to
locker.status
,order.expiring
, andorder.picked_up
events for real-time UI updates. -
Sandbox First – Generate keys at dashboard → Developers → Create Sandbox Token before hitting production.
🚀 Next Steps
-
Time-Slot Reservation
Passdelivery_window_start
anddelivery_window_end
in/orders/validate
. The API blocks compartments for that slot only. -
Bulk Basket Validation
Send an array of up to 200 orders to/orders/bulk-validate
for carton-level temperature and volume checks. -
Split-Basket Logic
If frozen + ambient items can’t fit one compartment, the API returnssplit:true
with compartment IDs per temperature zone. -
Route Export
CallGET /routes/download?date=YYYY-MM-DD
to pull a CSV/JSON of all lockers, compartments, and driver codes for your nightly line-haul.