Order Lookup

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.

GET /api/Client/Order/[OrderNumber]

GET /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.

curl

Example Request — by order number

1
2
curl https://apps.whcc.com/api/Client/Order/80052986 \
-H "Authorization: Bearer 726670514499"
Copy to Clipboard

Example Request — by ConfirmationID

1
2
curl https://apps.whcc.com/api/Client/Order/a3ff9b4a-3112-4101-88ab-6ba025fd7600 \
-H "Authorization: Bearer 726670514499"
Copy to Clipboard

Example Response

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.

Response Elements

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.

Multiple orders per ConfirmationID

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"
Copy to Clipboard

Error behavior

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)

What's Next

For ongoing status updates, register Webhooks — they push every status change to you, without polling.

Back to Top 👆
Get in Touch

Interested in integrating with WHCC? Tell us more about what you’re looking for and we’ll be in touch.