Get one order
Fetch a single order in full: the re-fetch half of the webhook contract.
A malformed UUID answers 400 validation_failed before resource access; a well-formed unknown UUID or one outside your workspace answers 404.
{id} is the order's id (also the order_id on every commerce webhook payload).
number is the order's short number, sequential per business from 1001: the number its buyer and the dashboard see (#1043), and a search term for GET /api/v1/commerce/orders?q=1043. reference stays the payment reference and the key of the buyer's order page. number is null only for an order the numbering has not reached.
payment says how the order was paid: provider is paystack, payfast or manual (the shop marked it paid by hand in the dashboard, when the money came another way), and method is cash, eft, card_machine or other for a manual payment, null otherwise. Who marked it is never part of the API.
fulfilment.tracking_reference appears once a courier is booked; fulfilment.note flags a paid order that stock could not fully cover; fulfilment.ready_for_collection_at is when a collection order was marked ready for collection, null until then.
failure_reason says why an order was set aside, from a documented list that may grow: link_not_delivered means the order came from an automation's payment link whose message could not be delivered, so the customer never got the link (status abandoned). It is null otherwise, and once the order is paid.
link_message_id is the id of the message the order's payment link went out in (read it with GET /api/v1/messages/{id} for that message's own failure_reason); null for an order no payment link made.
customer.sms_marketing_opt_in is true when the buyer ticked "Send me reminders and offers by SMS" at a storefront checkout, with a cell number; it is false otherwise, and on orders placed before 16 Oct 2026, when the question was not asked. The yes is also recorded on the buyer's contact as an SMS opt-in (consent source checkout, naming the order), unless that number has opted out. An automation on commerce.order.abandoned sends its SMS only to a buyer who said yes, as a marketing message (it needs the opt-in and keeps to the SMS sending hours), and sends no WhatsApp; order updates need no yes.
emails says how each automatic order email went, by kind (confirmation and sale_notification when paid, ready_for_collection once a collection order is marked ready, shipped, tracking, refunded): state is sent, retrying (a send failed and it will be tried again), failed (it could not be sent after its last try) or skipped; at is when, attempts the sends tried so far, and reason: on a skip, one of no_buyer_email, no_owner_email, no_tracking_reference or reserved_address; on a failure, why its last try failed, one of message_rejected (the recipient address or the message was refused), sender_not_allowed (our sending setup was refused), provider_rate_limited, provider_unavailable, send_error (it failed on our side before an answer), send_unconfirmed (the email service never answered the last send, so it may have arrived: check with the buyer before sending it another way) or provider_error (any other answer); null otherwise (the lists may grow; anything else reads null). A kind appears once something was recorded for it. State only: no address or message content. On a webhook it is a snapshot at the moment of the event.
Request
- Base URL: https://app.blueticked.com
- URL: https://app.blueticked.com/api/v1/commerce/orders/{id}
- Auth: HTTP bearer
Path parameters
The resource's unique identifier.
Response
Success
Example response
{
"ok": true,
"order": {
"id": "8b43c136-a5d3-4352-99d4-bcf43354c548",
"reference": "BT-ORD-8H2K1",
"number": 1043,
"paystack_reference": "4099260516",
"amount_cents": 45900,
"currency": "ZAR",
"description": "2 items from Aloe Ridge Guest House",
"customer": {
"name": "Naledi Dlamini",
"email": "naledi@example.com",
"phone": "+27800000001"
},
"fulfilment": {
"method": "delivery",
"delivery_address": "12 Protea Rd\nNewlands\nCape Town\n7700",
"delivery_zone": "Southern Suburbs",
"delivery_fee_cents": 6000
},
"discount": {
"code": "WINTER10",
"amount_cents": 4590
},
"items": [
{
"id": "258ab704-cb29-4858-a35d-724d150bc85b",
"product_id": "289e49ce-dfbc-4347-9b4c-52f001f009c3",
"variant_id": "2a85a3c1-a901-49bf-a2a9-71e9d719a994",
"variant_name": "Large",
"name": "Fynbos gift hamper",
"unit_price_cents": 19950,
"quantity": 2
}
],
"site_id": "2503846b-7ed1-42bb-9f5d-f26d5cfdf4a9",
"paid_at": "2026-08-03T09:14:00.000Z",
"created_at": "2026-08-03T09:12:41.000Z"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.