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).
Fields that matter
Section titled “Fields that matter”| 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.
Creating an order
Section titled “Creating an order”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.
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 } ]}Listing and filtering
Section titled “Listing and filtering”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 |
— |
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}.
Operations
Section titled “Operations”| 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 | — |
Errors
Section titled “Errors”| 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} |
Related
Section titled “Related”- Open a ticket for a customer: create the customer, add their order, open the ticket.
- Connect your own system: orders from your own shop as part of a custom integration.
- Customers and Tickets.
- API reference: every order field.