Skip to content

Get a booking

GET /api/bookings/v4/{id}

Returns the full details of a single booking, including sender and receiver information, items, quotes, selected courier, and current status.

ParameterTypeRequiredDescription
idintegerYesThe unique booking ID.
Terminal window
curl -X GET \
-H "Api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
https://www.transdirect.com.au/api/bookings/v4/12345678
{
"id": 12345678,
"status": "confirmed",
"booked_at": "2025-08-15T10:30:00+0000",
"booked_by": "sender",
"created_at": "2025-08-15T10:30:00+0000",
"updated_at": "2025-08-15T10:35:00+0000",
"declared_value": 1000,
"insured_value": 1000,
"description": null,
"tailgate_pickup": false,
"tailgate_delivery": false,
"courier": "allied",
"connote": "ALD123456789",
"charged_weight": 5,
"scanned_weight": 5,
"special_instructions": "Leave at front door",
"pickup_instructions": null,
"pickup_window": [
"2025-08-18T14:00:00+1000",
"2025-08-18T18:00:00+1000"
],
"label": "http://www.transdirect.com.au/api/bookings/12345678/label",
"notifications": {
"email": false,
"sms": false
},
"sender": {
"name": "John Smith",
"company_name": "Example Pty Ltd",
"email": "john@example.com",
"phone": "0400000000",
"address": "123 George Street",
"postcode": "2000",
"suburb": "SYDNEY",
"state": "NSW",
"type": "business",
"country": "AU"
},
"receiver": {
"name": "Jane Doe",
"company_name": "Receiver Co",
"email": "jane@example.com",
"phone": "0400000001",
"address": "456 Collins Street",
"postcode": "3000",
"suburb": "MELBOURNE",
"state": "VIC",
"type": "business",
"country": "AU"
},
"items": [
{
"weight": 5,
"height": 25,
"width": 35,
"length": 40,
"quantity": 1,
"description": "carton"
}
],
"quotes": {
"allied": {
"total": 79.24,
"price_insurance_ex": 72.09,
"fee": 7.15,
"insured_amount": 4500,
"service": "road",
"transit_time": "1-2 days",
"pickup_dates": ["2025-08-18", "2025-08-19"],
"pickup_time": {
"from": "14:00",
"to": "18:00"
}
}
}
}
FieldTypeDescription
idintegerUnique booking identifier.
statusstringCurrent booking status. See statuses below.
booked_atstringDate and time the booking was placed (ISO 8601).
booked_bystringWho placed the booking. Defaults to "sender".
created_atstringDate and time the booking record was created (ISO 8601).
updated_atstringDate and time the booking was last updated (ISO 8601).
declared_valuenumberDeclared value of the goods (AUD).
insured_valuenumberFinal insured amount once a courier has been selected. 0 until confirmation. See warranty and insurance.
descriptionstring | nullFree-text goods description, if provided.
tailgate_pickupbooleanWhether tailgate is required at pickup.
tailgate_deliverybooleanWhether tailgate is required at delivery.
courierstringSelected courier identifier. Present after confirmation.
connotestring | nullCourier consignment note number. Populated once the courier has confirmed.
charged_weightnumberWeight the courier billed against (after re-weigh, if applicable). 0 until set by the courier.
scanned_weightnumberWeight scanned by the courier at pickup. 0 until set by the courier.
special_instructionsstringSpecial handling instructions. Multiple instructions are returned semicolon-joined.
pickup_instructionsstring | nullPickup-specific instructions.
pickup_windowarrayTwo ISO 8601 strings ([from, to]) bounding the pickup window. Empty array [] before pickup is set.
labelstringURL to fetch the PDF label. See get a label.
notificationsobjectNotification toggles. Always returns {"email": false, "sms": false} — this field is a stub and does not reflect member notification preferences.
senderobjectFull sender details.
receiverobjectFull receiver details.
itemsarrayArray of item objects.
quotesobjectCourier quotes keyed by courier identifier. Only present when status is new — once confirmed, quotes is omitted and replaced by cost and additional_charges.
quote_errorsarrayCouriers that could not provide a quote, e.g. [{"courier": "direct_couriers_express", "code": "no_service"}, ...].
costnumberFinal booking cost. Present once status is not new.
additional_chargesarrayAny post-booking adjustments. Present once status is not new.
FieldTypeDescription
namestringContact name.
company_namestringCompany or business name.
emailstringContact email address.
phonestringContact phone number.
addressstringStreet address.
postcodestringPostcode.
suburbstringSuburb name.
statestringState or territory abbreviation (e.g. "NSW", "VIC").
typestringAddress type: "business" or "residential".
countrystringISO 3166-1 alpha-2 country code.

A booking progresses through the following statuses during its lifecycle:

StatusDescription
newQuote has been created with basic details. Pricing has been returned.
pending_paymentA courier has been selected. Awaiting payment.
paidPayment has been processed. The booking is ready to be sent to the courier.
pending_reviewThe booking has been flagged for manual review by the Transdirect team.
request_sentThe booking has been submitted to the courier for confirmation.
request_failedThe courier was unable to process the booking. Contact support.
reviewedThe booking has passed manual review and is being processed.
confirmedThe courier has confirmed the booking. A connote has been generated.
cancelledThe booking has been cancelled.
booked_manuallyThe booking was processed manually by the Transdirect team.
demoA test booking created while your account is in demo mode. Not sent to any courier.

For more detail on how statuses progress, see booking lifecycle.

Status codeDescription
401Unauthorised — invalid or missing credentials.
404Not found — no booking exists with the given ID, or it belongs to another member.