List sales
Every purchase and renewal made for a customer, newest first, with what it cost you and what the customer pays at the prices in force at the time.
apiKeyAuthorizationBearer <token>An API key from the Developers page. rhq_test_ keys reach the sandbox, rhq_live_ keys the live side.
limit?integerHow many to return
1 <= value <= 10025cursor?stringnextCursor from the previous page
customerId?stringproduct?string"number""domain""domain_privacy""licence""mailbox"priceListId?stringOnly sales priced from this list
level?stringWhat set the price: the item's own price (override), the customer's contract, their price list, or none when you have no list and the customer pays wholesale
"override""contract""list""none"from?stringOnly sales made at or after this moment
date-timeto?stringOnly sales made before this moment
date-timeinvoiced?stringfalse for sales not on an invoice yet, true for those that are
Success
application/json- response
Success
data*array<>nextCursor*|Pass as cursor for the next page. null on the last page
total*integerHow many match across every page
0 <= valuecurl -X GET "https://example.com/v1/sales?customerId=cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA&priceListId=prl_01K6XJ4Q8ZT3M9R5V2B7WDHNCA&from=2026-10-07T11%3A04%3A31.000Z&to=2026-11-01T00%3A00%3A00.000Z"{ "data": [ { "id": "sal_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "customerId": "cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "product": "number", "action": "new", "reference": { "type": "hold", "id": "string" }, "description": "northwind-telecom.com, 2 years", "term": "30d", "quantity": 2, "unitCost": 1440, "cost": 1440, "unitPrice": 1440, "price": 1440, "currency": "USD", "rate": 1000000, "priceUsd": 1440, "priceListId": "prl_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "ruleId": "prr_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "level": "override", "floored": true, "creditOf": "sal_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "invoiceId": "inv_01K6XJ4Q8ZT3M9R5V2B7WDHNCA", "createdAt": "2026-10-07T11:04:31.000Z" } ], "nextCursor": null, "total": 1}Delete a promotion DELETE
Stops the offer and frees its coupon code. Sales made on it keep the price they were made at. To end an offer early without losing the record of it, move its `endsAt` instead.
Summarise sales GET
Totals for the sales the filters cover: one customer, one product, one list, a stretch of time, or everything. With `groupBy`, the same totals split one way as well, each group summing to the ungrouped total. Always in US cents, whatever currency each sale was charged in, and net of credit notes issued against those sales.