What the sandbox does not do
It does not:- dispatch a real rider;
- send SMS, email, or push notifications to a recipient;
- charge or collect money;
- create invoices or accounting entries;
- reserve stock;
- change a live order;
- provide a live tracking link.
Deterministic quotes
Sandbox prices are fixed test values based on straight-line distance. They are designed to make tests predictable, not to forecast the exact price of a future live delivery.
A trip over 15 km returns:
Simulate status changes
When you create a sandbox delivery, it starts atbooked. In real life, riders and operations move the status forward. In the sandbox, call the transition helper yourself.
booked and assigned may also move to cancelled. in_transit may move to failed.
Each call moves exactly one step. For example, these are invalid:
bookeddirectly todelivered;deliveredback toin_transit;- any transition after a terminal state.
409 SANDBOX_TRANSITION_INVALID.
Each accepted transition creates the same versioned event and signed webhook shape used in live mode. That makes the sandbox suitable for testing deduplication, ordering, signature verification, and terminal-state handling.
Moving to live mode
When your sandbox flow works:- Create a separate live key beginning with
hsg_live_key_. - Change the base URL to
https://developer.haulstow.co/v1. - Keep your request JSON and response parsing the same.
- Remove any calls to
/test-helpers/...; that route exists only on the sandbox host. - Start with a controlled real delivery and monitor its webhook or polling flow.
