Create booking / get quote
POST /bookings/v4
Creates a new booking request and returns available courier quotes. The booking is created with a new status. The returned quotes object contains pricing from all available couriers for the given route and parcel dimensions.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
Declared value of goods in AUD. Used for insurance calculations.
Example
500Set to false to opt out of warranty/insurance on this quote. Takes precedence over declared_value — even if a non-zero declared_value is sent, every courier in the response will return fee=0 and insured_amount=0. Defaults to true.
Example
trueReferrer identifier
Example
apiRequesting site domain
Example
www.transdirect.com.auWhether a tailgate/hydraulic lift is required at pickup
Whether a tailgate/hydraulic lift is required at delivery
Items to be shipped
object
Weight in kilograms
Example
5Height in centimetres
Example
20Width in centimetres
Example
30Length in centimetres
Example
40Number of identical items
Example
1Description of the item
Example
Electronicsobject
Australian postcode (4 digits)
Example
2000Suburb name (uppercase)
Example
SYDNEYAddress type
Example
businessISO 3166-1 alpha-2 country code
Example
AUStreet address
Example
123 George StreetCompany or business name
Example
Acme Pty LtdContact email address
Example
shipping@acme.com.auContact person name
Example
John SmithContact phone number
Example
0412345678Australian state or territory abbreviation
Example
NSWobject
Australian postcode (4 digits)
Example
2000Suburb name (uppercase)
Example
SYDNEYAddress type
Example
businessISO 3166-1 alpha-2 country code
Example
AUStreet address
Example
123 George StreetCompany or business name
Example
Acme Pty LtdContact email address
Example
shipping@acme.com.auContact person name
Example
John SmithContact phone number
Example
0412345678Australian state or territory abbreviation
Example
NSWExample
{ "declared_value": 500, "referrer": "api", "requesting_site": "www.transdirect.com.au", "tailgate_pickup": false, "tailgate_delivery": false, "items": [ { "weight": 5, "height": 20, "width": 30, "length": 40, "quantity": 1, "description": "Electronics" } ], "sender": { "postcode": "2000", "suburb": "SYDNEY", "type": "business", "country": "AU" }, "receiver": { "postcode": "3000", "suburb": "MELBOURNE", "type": "residential", "country": "AU" }}Responses
Section titled “ Responses ”Booking created with available quotes
object
Unique booking identifier
Example
12345678ISO 8601 timestamp derived from booking_time (set at booking creation, not confirmation)
Example
2026-02-15T10:30:00+11:00Identifier of who booked (e.g. API key name)
Example
My API KeyISO 8601 timestamp of the API response time. Note: this is the current server time at the moment of the response, not the original creation time of the booking.
Example
2026-02-15T14:05:32+11:00ISO 8601 timestamp of the API response time (same behaviour as created_at)
Example
2026-02-15T14:05:32+11:00Declared value of the goods in AUD
Example
500Insured value of the goods in AUD
Goods description
Example
Electronic componentsURL to download the shipping label PDF
Example
https://www.transdirect.com.au/api/bookings/v4/12345678/labelList of items in the booking
object
Unique item identifier
Example
1Description of the item
Example
ElectronicsWeight in kilograms
Example
5Length in centimetres
Example
40Width in centimetres
Example
30Height in centimetres
Example
20Number of identical items
Example
1Available courier quotes keyed by courier identifier (only present when status is new)
object
object
Total price including fees in AUD
Example
25.5Price excluding insurance in AUD
Example
22Transdirect service fee in AUD
Example
3.5Insurance coverage amount in AUD
Service type offered by the courier
Example
roadEstimated transit time
Example
2-3 business daysAvailable pickup dates
Example
[ "2026-02-16", "2026-02-17"]Pickup time window
Example
Before 4:00pmAvailable pricing tiers (for multi-tier couriers)
object
Tier identifier used when confirming a booking (pass this value as the tier field in the confirm request)
Example
1Human-readable tier description
Example
Express Service - Next Business DayTotal price for this tier in AUD
Example
35Price excluding insurance for this tier in AUD
Example
31.5Service fee for this tier in AUD
Example
3.5object
Address identifier
Example
1Street address
Example
123 George StreetCompany or business name
Example
Acme Pty LtdContact email address
Example
shipping@acme.com.auContact person name
Example
John SmithAustralian postcode (4 digits)
Example
2000Contact phone number
Example
0412345678Australian state or territory abbreviation
Example
NSWSuburb name (uppercase)
Example
SYDNEYAddress type
Example
businessISO 3166-1 alpha-2 country code
Example
AUobject
Address identifier
Example
1Street address
Example
123 George StreetCompany or business name
Example
Acme Pty LtdContact email address
Example
shipping@acme.com.auContact person name
Example
John SmithAustralian postcode (4 digits)
Example
2000Contact phone number
Example
0412345678Australian state or territory abbreviation
Example
NSWSuburb name (uppercase)
Example
SYDNEYAddress type
Example
businessISO 3166-1 alpha-2 country code
Example
AUCurrent booking status. When status is new, the raw lowercase value is returned. For all other statuses the humanized title-case form is returned (e.g. Confirmed, Cancelled, Booked Manually).
Example
newTotal booking cost in AUD (only present when status is not new)
Example
25.5Total additional charges in AUD (only present when status is not new)
Selected courier identifier (only present when status is not new)
Example
alliedConsignment note number assigned by the courier (null until confirmed)
Example
ABC123456Charged weight in kg (may differ from actual weight due to volumetric calculations)
Example
5Actual scanned weight in kg as measured by the courier
Example
4.8Two-element array of ISO 8601 timestamps representing the pickup window [from, to]. Empty array if no pickup time has been set.
Example
[ "2026-02-17T09:00:00+11:00", "2026-02-17T17:00:00+11:00"]Custom pickup instructions for the driver
Example
Call on arrivalSpecial delivery instructions (semicolon-separated if multiple)
Example
Leave at front door if no one homeWhether a tailgate/hydraulic lift is required at pickup
Whether a tailgate/hydraulic lift is required at delivery
Notification preferences
object
Send email notifications
Example
trueSend SMS notifications
Linked order details (only present if this booking is associated with an order)
object
Internal order record ID
Example
5001External order number (e.g. WooCommerce order number)
Example
WC-1234Example
{ "id": 12345678, "booked_at": null, "created_at": "2026-02-15 10:30:00", "declared_value": 500, "insured_value": 0, "status": "new", "connote": null, "charged_weight": 5, "special_instructions": "", "tailgate_pickup": false, "tailgate_delivery": false, "notifications": { "email": true, "sms": false }, "items": [ { "id": 1, "description": "Electronics", "weight": 5, "length": 40, "width": 30, "height": 20, "quantity": 1 } ], "sender": { "id": 1, "address": "", "company_name": "", "email": "", "name": "", "postcode": "2000", "phone": "", "state": "NSW", "suburb": "SYDNEY", "type": "business", "country": "AU" }, "receiver": { "id": 2, "address": "", "company_name": "", "email": "", "name": "", "postcode": "3000", "phone": "", "state": "VIC", "suburb": "MELBOURNE", "type": "residential", "country": "AU" }, "quotes": { "allied": { "total": 25.5, "price_insurance_ex": 22, "fee": 3.5, "insured_amount": 0, "service": "road", "transit_time": "2-3 business days", "pickup_dates": [ "2026-02-16", "2026-02-17" ], "pickup_time": "Before 4:00pm", "tiers": [] }, "fastway": { "total": 18.75, "price_insurance_ex": 15.25, "fee": 3.5, "insured_amount": 0, "service": "parcel", "transit_time": "3-5 business days", "pickup_dates": [ "2026-02-16", "2026-02-17" ], "pickup_time": "Before 5:00pm", "tiers": [] } }}Validation error
object
Error code or type
Example
validation_errorHuman-readable error message
Example
The sender postcode field is required.Unauthorized
object
Error code or type
Example
validation_errorHuman-readable error message
Example
The sender postcode field is required.