Look up the current state of a submitted order — statuses, totals, items, and tracking numbers — by WHCC order number or by the ConfirmationID returned from Order Import. Use it to confirm an order landed, or to inspect one order while debugging.
This is a point-in-time lookup, not a status channel. Do not build a polling loop against this endpoint. Webhooks are how WHCC pushes status changes to your integration — use this endpoint to spot-check a single order, and webhooks to track them all.
/api/Client/Order/[OrderNumber]/api/Client/Order/[ConfirmationID]One endpoint, two identifier forms. A numeric value is treated as a WHCC order number. A 36-character value is treated as a ConfirmationID and resolved to the order it produced.
Both forms accept an optional ?sequenceNumber= query parameter. You need it only when one ConfirmationID maps to more than one order — see Multiple orders per ConfirmationID below.
You can only look up orders that belong to your account. An order number that exists but belongs to another account returns 404, the same as an order that does not exist.
1
2
curl https://apps.whcc.com/api/Client/Order/80052986 \
-H "Authorization: Bearer 726670514499"
1
2
curl https://apps.whcc.com/api/Client/Order/a3ff9b4a-3112-4101-88ab-6ba025fd7600 \
-H "Authorization: Bearer 726670514499"
Values below are illustrative. Two things to notice before you write a parser: money fields are strings ("13.32", not 13.32), and timestamps are server-local (Central Time) date strings ("8/13/2026 6:11:50 PM"), not ISO‑8601.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"Id": 80052986,
"ReceivedTime": "8/13/2026 6:10:56 PM",
"ShippingCarrier": "",
"OrderReference": "OrderID 12345",
"ProductionLocation": "MN",
"ShippingMethod": "",
"OrderTotal": "13.32",
"OrderSubTotal": "12.44",
"OrderDiscount": "0",
"SalesTax": "0.88",
"Statuses": [{
"StatusTime": "8/13/2026 6:11:50 PM",
"Status": "Queued for Printing"
}],
"TrackingNumbers": [],
"Items": [{
"Description": "5x7 Print",
"Price": "0.65",
"Quantity": 2,
"ItemAttributes": [{
"AttributeUID": 1,
"AttributeValue": ""
}]
}]
}
The response does not echo ConfirmationID or SequenceNumber. If you look an order up by ConfirmationID, the only correlation value in the response is OrderReference — the reference you supplied at import time. Set a meaningful Reference on every order you import; it is how you tie this response back to your own records.
Id
Integer
The WHCC order number. This is the same number partners see in their WHCC account order history.
ReceivedTime
String
When WHCC received the order. Server-local (Central Time) date string, not ISO‑8601.
ShippingCarrier
String
Carrier for the shipment. Empty until the order ships.
OrderReference
String
The Reference you supplied at import time. The only field in this response that correlates back to your submission.
ProductionLocation
String
The WHCC facility producing the order.
ShippingMethod
String
Shipping method for the order. May be empty early in processing.
OrderTotal
String
Order total. A decimal formatted as a string, like all money fields in this response.
OrderSubTotal
String
Order subtotal, as a string.
OrderDiscount
String
Discount applied to the order, as a string.
SalesTax
String
Sales tax charged, as a string.
Statuses
Array
Status history for the order. Each entry has StatusTime (String, server-local) and Status (String).
TrackingNumbers
Array
Tracking numbers once the order ships. Each entry is an object with a single Value field (String) — not a bare string.
Items
Array
Line items on the order. Each entry has Description (String), Price (String), Quantity (Integer), and ItemAttributes — an array of AttributeUID (Integer) / AttributeValue (String) pairs.
A ConfirmationID is not always one order. When WHCC splits an order — across shipments or production paths — the resulting orders share a ConfirmationID and are told apart by SequenceNumber, exactly as described in webhook delivery and deduplication.
Looking up a ConfirmationID that maps to more than one order returns 400 Bad Request with the message “There are multiple orders for this ConfirmationId. Please include a sequenceNumber in the request.” Retry with the query parameter:
1
2
curl "https://apps.whcc.com/api/Client/Order/a3ff9b4a-3112-4101-88ab-6ba025fd7600?sequenceNumber=1" \
-H "Authorization: Bearer 726670514499"
Error responses are HTML, not JSON. Only the success response and authentication errors (403.01) return JSON. The 400 and 404 cases return an HTML error page — do not assume a JSON body on failure.
| Case | Response |
|---|---|
| Order number on your account | 200, JSON order |
| ConfirmationID with exactly one order | 200, JSON order |
ConfirmationID with multiple orders, no sequenceNumber |
400 (HTML) — include a sequenceNumber |
| 36-character value that is not a known ConfirmationID | 400 (HTML) — “ConfirmationId not yet present in system” |
| Order number that does not exist, or belongs to another account | 404 (HTML) |
| Anything else — non-numeric, not 36 characters | 404 (HTML) |
| Missing or invalid access token | 403.01 (JSON) |
For ongoing status updates, register Webhooks — they push every status change to you, without polling.