Testing with demo mode
Demo mode adds a Demo courier to your quotes. You quote, confirm and download labels exactly as you will in production, on the same API host with the same API key, but a demo booking is never charged and never sent to a courier.
There is no separate sandbox or test host. Demo mode is the sandbox.
Switch on demo mode
Section titled “Switch on demo mode”Demo mode is a setting on each API key.
- Sign in at members.transdirect.com.au and go to Settings > Integrations.
- Find the Custom API connection whose key you use, and open its More actions menu (the ⋯ button).
- Tick Demo courier.
- Your browser asks you to confirm. The prompt starts: Enabling this exposes a “Demo” courier in quote responses for this API key. Choose OK.
The page shows Demo courier enabled. and the connection shows a DEMO badge. To switch it off, untick Demo courier in the same menu.
Switching demo mode on or off reaches the key’s quotes within about a minute.
You can also use the API Explorer with a demo-enabled key to send these requests from your browser.
1. Quote
Section titled “1. Quote”Quote as normal with POST /api/v5/quotes. With demo mode on, quotes includes a demo entry alongside the real couriers:
{ "id": 623640, "status": "new", "quotes": { "demo": { "total": 42.9, "service": "demo", "transit_time": "2-4 Business Days", "rate_card_code": "DEMO", "pickup_dates": ["2026-10-19", "2026-10-20", "2026-10-21"] } }}The demo entry has the same fields as any other quote; this extract shows a few. Demo prices are not courier rates. They come from a fixed formula: $10, plus $2.50 per kg of total weight (rounded up), plus $1.50 per item, plus $15 when the sender and receiver postcodes start with different digits, then GST. A 5 kg carton from SYDNEY 2000 to MELBOURNE 3000 is ($10 + $12.50 + $1.50 + $15) × 1.1 = $42.90. A tail-lift truck adds $75 at pickup and $75 at delivery.
2. Confirm
Section titled “2. Confirm”Confirm with the demo courier and the demo payment method. Use a pickup date from the demo quote’s pickup_dates:
curl -X POST https://api.transdirect.com.au/api/v5/bookings/623640/confirm \ -H "api-key: $TD_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "courier": "demo", "pickup_date": "2026-10-19", "payment_method": "demo" }'A successful confirm returns 204 No Content. Nothing is charged.
"payment_method": "demo" always makes a demo booking, whichever courier you send and whether or not demo mode is on for the key. Make sure it cannot reach your production code path.
Add the full sender and receiver details and a goods_description before you confirm, as you would for a real booking. A demo booking goes through the same review checks as a real one, so a booking with no goods description, for example, is held as pending_review instead of completing.
3. Check the booking
Section titled “3. Check the booking”Get the booking. A demo booking that passes the checks finishes at status_code: "confirmed" straight away (it passes through paid on the way). It has a connote starting with DEMO-, for example DEMO-7KQ2M9XA, and courier: "demo".
{ "id": 623640, "status": "Confirmed", "status_code": "confirmed", "is_paid": true, "courier": "demo", "connote": "DEMO-7KQ2M9XA", "cost": 42.9}4. Download the label
Section titled “4. Download the label”Get the label as usual. Demo labels are real PDFs, A4 or A6, with a barcode for the DEMO- connote, and every page is watermarked DEMO, DO NOT SHIP. Use them to test your printing.
5. Tracking
Section titled “5. Tracking”A demo booking is never lodged, so it never gets tracking scans. Tracking returns state: "pending" with no events for as long as the booking exists. Test your handling of other tracking states with your own fixtures built from the documented responses.
Cleaning up
Section titled “Cleaning up”Demo bookings cost nothing, so you can leave them. To remove them:
- Draft quotes (never confirmed): delete them with
DELETE /api/v5/bookings/{id}. - Confirmed demo bookings: the API cannot delete them. Cancel them in the members area: open Bookings, choose Cancel Booking from the booking’s actions menu, then Cancel & refund. The dialog mentions a refund because a demo booking counts as paid, but no money moves: nothing was charged.
Going live
Section titled “Going live”Going live is not a switch. A booking is live when you confirm it on a real courier with a real payment method. When you are ready:
- Add a card or PayPal in the members area, or arrange a credit account. See payments.
- In your code, confirm with the
courierkey of a real quote and apayment_methodfrom list payment methods. - Remove
"payment_method": "demo"from every production code path. - Untick Demo courier for the key, or make sure your code never selects the
demoquote.
Your API key stays the same.