Move a test order
POST /v1/test/orders/{reference}/advance — change the status of a test order.
/v1/test/orders/{reference}/advanceTest key onlyThere is no live version of this endpoint. A live order changes status because a courier did something.
Request
Send no body to move one step:
curl -X POST https://api.univooz.com/v1/test/orders/ORD-260729-LD4Q/advance \
-H "Authorization: Bearer uv_test_YOUR_KEY"Or name a status:
{ "status": "picked_up" }Response
200 with the order object, at its new status.
Errors
| Status | Code |
|---|---|
| 400 | invalid_request — status is not an order status |
| 401 | invalid_api_key |
| 403 | test_mode_required — you used a live key |
| 404 | order_not_found — no test order has that reference |
| 422 | invalid_status_transition |
The default sequence
With no body, the order moves along:
created → accepted → arrived_for_pickup → picked_up → arrived_for_delivery → deliveredYou must name cancelled. So a loop to delivered cannot cancel your order.
The same rules as production
Univooz uses the dashboard's rules. A step that is too large gives an error, and the cancellation rules also apply.
Why. A test mode that permits more than production teaches you the wrong behaviour.
Events
Each step sends the real event to your test endpoint. The order in the event has the same form as a live event, so your receiver needs no change.
Univooz does not calculate the times again. schedule.mode and basis keep their values
from creation.