Skip to content

API changelog

Changes to the v5 API at https://api.transdirect.com.au/api/v5, newest first. The version number is info.version in the OpenAPI spec; see versioning.

  • Cancel eligible bookings. POST /api/v5/bookings/{id}/cancel requires a reason and ownership of the booking. Eligible account-credit and demo bookings cancel automatically or are submitted to support. Card and PayPal bookings return 422. See cancel a booking.
  • Create and pay separately. POST /api/v5/bookings/v4 returns 400 with code create_and_pay_not_supported for a non-null payment_method, a truthy collection_point_id, or a non-null misspelt payment field such as paymentMethod or card_id. Quote first, then confirm.
  • Failed draft saves return an error. Authenticated quotes, including POST /api/v5/quotes and POST /api/v5/bookings/v4, return 500 booking_persist_failed when the draft cannot be saved, replacing 201 with id: null.
  • Linking an order to an unpriced courier saves the order. POST /api/v5/orders and PUT /api/v5/orders/{id} link the booking with selected_courier empty and courier_price 0 when the booking has no quote for the chosen courier, or none was sent, as v4 does. Before, they returned 400 No quote from chosen courier.
  • Revoked keys stop authenticating within 60 seconds. Key lookups also refuse missing or archived members. Activating, deactivating or deleting a key in the members area immediately purges its auth cache and repeats the purge 10 seconds later.
  • Confirm acceptance flags are read correctly. agreed_terms and agreed_warranty treat "false", "0" and null as not accepted. Before, any non-empty string counted as accepted.
  • include_warranty: false removes the warranty fee even when options.insurance_value is sent.
  • Items on a paid booking can’t be changed. Adding, editing or deleting an item on a paid booking returns 400 with {"errors":["Cannot update. Booking has been processed."]}, the same as a booking update.
  • Quote money is rounded to cents. total, price_insurance_ex, fee and insured_amount are rounded to 2 decimal places on every quote and tier.
  • Orders are validated before they are saved. A 400 or 403 from POST /api/v5/orders or PUT /api/v5/orders/{id} no longer leaves a partly saved order. create-simple requires order_id, and a missing order now returns {"error":"order_not_found"}.
  • set_api_settings only changes what you send and updates one warehouse, not every warehouse on the key. Settings changes reach quotes straight away.
  • validate-route reads isResidential: "false" correctly and applies the same carton weight limits as quoting.
  • Spec corrections. fee is the transit warranty fee; confirm documents its 403 and 409 responses; pickup availability lists minWindowMinutes and sameDayReadyFrom.
  • Developer centre rewritten for v5. Every page now documents https://api.transdirect.com.au/api/v5 only. Existing integrations on the older API have one page: moving from v4.
  • The API Explorer sends your key. Paste your key once and the explorer sends it as api-key on every endpoint that needs one. The spec now declares api-key as the default security scheme, and endpoints that need no key (tracking, locations, couriers, public quotes) say so.
  • Legacy alias routes are hidden from the explorer. They still work and are still in the spec and the SDK, but the explorer shows one canonical path per endpoint.
  • Booking items paths declare {id} again in the live spec, so generated clients can build /api/v5/bookings/{id}/items URLs.
  • Pay at end of day. Confirm accepts an optional batch flag (or payment.batch) with a saved card or PayPal. For accounts that use Pay at end of day, the booking is confirmed and lodged straight away and charged at 9pm Sydney time with that day’s other bookings.
  • Tail-lift limits per courier. A quote can include tail_lift with available: false and a reason when a courier cannot take the items with a tail lift. Confirming such a booking returns 422 with {"error":"tail_lift_unavailable","code":"TAIL_LIFT_UNAVAILABLE", ...} before anything is charged.
  • include_warranty: false works on POST /api/v5/bookings/public. It was ignored on the anonymous quote endpoint.
  • New fedex_document_type on confirm for FedEx international document services. It sets the customs description. If you leave it out, the shipment is declared as “Printed business documents”.
  • declared_value is optional on quotes. Leaving it out, or sending null or an empty string, now means 0 (no transit warranty cover). It used to return 400 with {"errors":{"declared_value":["Required","Invalid Value"]}}. A negative value is rejected with 400. On a booking update, leaving it out keeps the stored value.
  • New customer_reference on bookings. Send your own reference (an order or consignment number, up to 80 characters) when you quote with an API key, or set it later with PUT /api/v5/bookings/{id}. It is returned on the booking and in the booking list. Longer values return 400.
  • New status_code on bookings. status is a display label such as “Pending Payment” and can be reworded. status_code is the stable lowercase code, such as pending_payment. Switch on status_code.
  • goods_description is accepted on v5 quotes. It was dropped, and only the description spelling was read, so bookings could be held for review with an empty goods description.
  • Confirm accepts agreed_terms and agreed_warranty, recording acceptance of the Terms and the courier’s Transit Warranty terms against that booking. Leave them out to rely on the acceptance you gave when you created your key.
  • New "credit" value for payment_method on confirm, to bill a credit account explicitly instead of by leaving payment out.
  • payment_method and payment can be sent together if they name the same method. Two different methods return 400.
  • Terms and Transit Warranty acceptance is recorded when you create an API key.
  • New endpoints: DELETE /api/v5/bookings/{id} for unconfirmed drafts, GET /api/v5/bookings/track/{id}, GET /api/v5/locations (with /page/{page} and /all/), GET /api/v5/locations/states and POST /api/v5/locations/validate-route.
  • Developer centre rebuilt around v5, with the API Explorer and the TypeScript SDK.
  • @transdirect/api-sdk introduced, generated from the v5 spec, and published to npm on 13 July. The API and the SDK now share one version number.
  • Demo confirms with payment_method: "demo" (or payment: {"method":"demo"}).
  • Demo mode. A switch on each API key that adds a free demo courier to quotes, so you can run a full quote, confirm, label and tracking cycle without being charged or shipping anything. See testing with demo mode.