Test mode
A complete sandbox that never reaches a courier.
Univooz creates, checks, routes and geocodes a test order for real. The response shows the fleet and the zone. Univooz then sends the order nowhere.
A test order does not go to a fleet, does not tell a driver, and has no charge. Everything else operates as production does.
Why it is not more permissive. A sandbox that permits more than production teaches you the wrong behaviour.
Start test mode
Use a uv_test_ key. That is the complete method. The order returns livemode: false.
The two modes are separate
| Live key | Test key | |
|---|---|---|
| Creates and reads | Live orders | Test orders |
| Webhooks | Live endpoint | Test endpoint |
| Charge | Yes | No |
A test key that reads a live order gets order_not_found.
externalOrderId is common to both modes. One id belongs to one order, in test and
live. To use live ids in test mode, add a prefix to them.
Move an order through the statuses
curl -X POST https://api.univooz.com/v1/test/orders/ORD-260729-LD4Q/advance \
-H "Authorization: Bearer uv_test_YOUR_KEY"With no body it moves one step:
created → accepted → arrived_for_pickup → picked_up → arrived_for_delivery → deliveredTo go to one status, name it: { "status": "picked_up" }.
Univooz uses the dashboard's rules. A step that is too large gives
invalid_status_transition, and the cancellation rules
also apply. An empty body never gives cancelled.
See Move a test order.
Test your webhook receiver
Each step sends the real event to your test endpoint, in the same form as a live event. So you can test a complete delivery with no courier, and your receiver needs no change for production.
What test mode does not change
Rate limits, address checks, routing and plan limits are all real. A bad address fails in test mode exactly as it fails in production.