Skip to content

List orders

List the e-commerce orders saved against your account: orders your store plugin synced, orders imported from a CSV file, and orders you created with the API.

GET /api/v5/orders

Requires your API key in the api-key header. See Authentication.

An order is a sale from your store: who bought it, where it goes and what is in it. A booking is a shipment with a courier, created by a quote and confirmed to dispatch it. An order does not ship anything by itself.

You link the two by saving the booking’s id in the order’s transdirect_order_id field, together with the courier you chose. See Create an order.

ParameterTypeRequiredDescription
sincestringNoOnly return orders imported at or after this time. Accepts an ISO 8601 datetime (2026-10-01T00:00:00Z) or YYYY-MM-DD HH:MM:SS, which is read as UTC.
sortstringNoSort ascending by this column. One of id, transdirect_order_id, transdirect_order_status, order_id, goods_summary, imported_from, imported_time, purchased_time, sale_price, selected_courier, courier_price, paid_time, buyer_name, buyer_email, last_updated. Without sort, orders come back newest first by import time.

The response holds at most 50 orders and there is no paging. Use since to fetch only recent orders. Orders with status deleted are never returned.

Terminal window
curl "https://api.transdirect.com.au/api/v5/orders?since=2026-10-01T00:00:00Z" \
-H "api-key: $TD_API_KEY"
import { client, getApiV5Orders } from '@transdirect/api-sdk';
client.setConfig({ headers: { 'api-key': process.env.TD_API_KEY! } });
const { data, error } = await getApiV5Orders({
query: { since: '2026-10-01T00:00:00Z' },
});

200 OK with an array of orders. An account with no matching orders gets an empty array [].

[
{
"id": 88,
"transdirect_order_id": null,
"transdirect_member_id": 12345,
"transdirect_order_status": "pending",
"order_id": "WC-1042",
"goods_summary": "2 x Ceramic planter",
"goods_dump": "",
"imported_from": "Woocommerce",
"imported_time": "2026-10-15T23:30:00.000Z",
"purchased_time": "2026-10-16 10:28:00",
"sale_price": "89.90",
"selected_courier": "",
"courier_price": "0.00",
"paid_time": "2026-10-16 10:29:00",
"buyer_name": "Jane Citizen",
"buyer_email": "jane@example.com.au",
"delivery": {
"name": "Jane Citizen",
"email": "jane@example.com.au",
"phone": "0412345678",
"address": "1 Collins Street, MELBOURNE VIC 3000"
},
"last_updated": "2026-10-15T23:30:00.000Z"
}
]

Every order endpoint returns this shape. Any field except id, transdirect_member_id and delivery can be null.

FieldTypeDescription
idintegerTransdirect’s id for the order. Use it in /api/v5/orders/{id}.
order_idstringYour order number from the store or system the order came from.
transdirect_order_idintegerThe id of the Transdirect booking linked to this order, or null if none is linked yet.
transdirect_member_idintegerYour member id.
transdirect_order_statusstringOrder status. Any text you set. New orders start as pending; the members area also uses ready_to_book, quoted, booked, manually_dispatched and cancelled.
goods_summarystringShort description of the goods.
goods_dumpstringRaw line-item data from the source platform.
imported_fromstringWhere the order came from, for example Woocommerce, Shopify or csv.
imported_timestringWhen the order was saved in Transdirect (ISO 8601, UTC).
purchased_timestringWhen the buyer placed the order, as sent by the source.
paid_timestringWhen the buyer paid, as sent by the source.
sale_pricenumber or stringOrder total in AUD.
selected_courierstringCourier key of the linked booking’s chosen quote, for example couriers_please.
courier_pricenumber or stringPrice of that courier’s quote in AUD.
buyer_name, buyer_emailstringThe buyer.
deliveryobjectRecipient name, email, phone and address.
last_updatedstringWhen the order last changed.
StatusBodyCause
400{"error":"invalid_since"}since is not a date Transdirect can read.
400{"error":"invalid_sort"}sort is not one of the columns listed above.
401{"error":"missing_api_key"} or {"error":"invalid_api_key"}No key, or the key is unknown or deactivated.
429{"error":"rate_limited"}More than 600 requests in a minute on this key. Wait for the number of seconds in retry-after.

Open List saved orders in the API Explorer, paste your API key into the authentication box and send the request.