Skip to content

Orders

An order is a purchase a customer made through one of your integrations: what they bought, what they paid and how it ships. Agents see it next to the customer’s tickets, so they can answer “where is my order?” without leaving Replyco. You add orders from your own system, and read them back to match tickets to purchases; the tickets of an order are listed by GET /openapi/thread/byorder/{orderId} (see Tickets).

Field Meaning
id The order’s id in Replyco, returned when you create it. Pass it as orderId to list the order’s tickets.
integrationId The integration the order came through. Required when you create an order.
customerId The customer who placed it. Required, and the customer must already exist: create them first with POST /openapi/customer (see Customers).
marketOrderId The order number in your shop or marketplace, as your customers and agents know it.
status Free text you choose, such as Pending or Shipped.
orderTotalAmount, orderCurrency, paid What the order is worth, in which currency, and whether it is paid.
purchaseDate When the customer placed the order (UTC).
createdDate Set to purchaseDate, or to the time of the request when you leave purchaseDate out.
trackingNumber, shippingService, shipmentAddress How the order ships and where to.
orderItems The items: for each, quantity, price, and either productVariationId of a product variation that already exists or a new variation in productVariation. Reuse existing variations rather than describing the same one again.

Every other field, and the address and item shapes, are in the API reference.

POST /openapi/order stores the order and answers with the whole order as Replyco now holds it, including its new id. Each call creates a new order: Replyco does not look for an existing order with the same marketOrderId. Keep the returned id; when a request times out, look for the order in the list before you send it again.

Terminal window
curl -X POST "https://open-api.replyco.com/openapi/order" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d @order.json
{
"integrationId": "8a1b1d6c-5f1a-4c8e-9f2b-7d3e5a9c1b40",
"customerId": "3f1c2a9e-7b4d-4e2f-9a6c-1d5e8b7f0a23",
"marketOrderId": "EX-100245",
"purchaseDate": "2026-10-20T09:15:00Z",
"orderTotalAmount": 59.98,
"orderCurrency": "GBP",
"paid": true,
"status": "Pending",
"trackingNumber": "EX123456789GB",
"orderItems": [
{
"productVariationId": "c2d4e6f8-1a3b-4c5d-8e7f-9a0b1c2d3e4f",
"quantity": 2,
"price": 29.99
}
]
}
{
"id": "5b7e9c1d-2f4a-4b6c-8d0e-1f2a3b4c5d6e",
"integrationId": "8a1b1d6c-5f1a-4c8e-9f2b-7d3e5a9c1b40",
"customerId": "3f1c2a9e-7b4d-4e2f-9a6c-1d5e8b7f0a23",
"marketOrderId": "EX-100245",
"purchaseDate": "2026-10-20T09:15:00Z",
"createdDate": "2026-10-20T09:15:00Z",
"orderTotalAmount": 59.98,
"orderCurrency": "GBP",
"paid": true,
"status": "Pending",
"trackingNumber": "EX123456789GB",
"orderItems": [
{
"productVariationId": "c2d4e6f8-1a3b-4c5d-8e7f-9a0b1c2d3e4f",
"quantity": 2,
"price": 29.99
}
]
}

GET /openapi/order/paged returns one page of all your company’s orders.

Parameter What it does Default Limits
page The page to return. 1 Stop at the response’s pagesCount.
count Orders per page. 10 At most 100; a larger value is rejected with 400 “Max page size is 100.”
term Finds orders whose tracking number, buyer user id, or shipping or billing postcode contains the text, ignoring case. It does not search the order number. none —
sort The field to sort by: createdDate, purchaseDate, marketOrderId, status or customerName. Another name is rejected with 400. by id —
asc true for ascending, false for descending. true —
Terminal window
curl "https://open-api.replyco.com/openapi/order/paged?sort=purchaseDate&asc=false&count=100" \
-H "Authorization: Bearer $ACCESS_TOKEN"
{
"totalRecords": 1,
"pageSize": 100,
"pagesCount": 1,
"currentPage": 1,
"data": [
{
"id": "5b7e9c1d-2f4a-4b6c-8d0e-1f2a3b4c5d6e",
"integrationId": "8a1b1d6c-5f1a-4c8e-9f2b-7d3e5a9c1b40",
"customerId": "3f1c2a9e-7b4d-4e2f-9a6c-1d5e8b7f0a23",
"marketOrderId": "EX-100245",
"purchaseDate": "2026-10-20T09:15:00Z",
"orderTotalAmount": 59.98,
"orderCurrency": "GBP",
"paid": true,
"status": "Pending"
}
]
}

Each operation whose path ends in /paged allows one user 15 calls a minute, so ask for large pages rather than many small ones (see Rate limits). To read one order, use GET /openapi/order/{id}.

Method Path Summary Scopes
POST /openapi/order Create a new order —
GET /openapi/order/paged Get all records with paging —
GET /openapi/order/{id} Get element by id —
Status Meaning Returned by
400 Request validation failed (missing required fields or malformed body). POST /openapi/order
401 Missing or invalid authentication token.; Unauthorized POST /openapi/order, GET /openapi/order/paged, GET /openapi/order/{id}