Summarise sales
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.
apiKeyAuthorizationBearer <token>An API key from the Developers page. rhq_test_ keys reach the sandbox, rhq_live_ keys the live side.
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
groupBy?stringSplits the totals. month is the calendar month in UTC, as 2026-10, and day the calendar day in UTC, as 2026-10-21
"product""customer""priceList""level""month""day"Success
application/json- response
Success
count*integercost*integerWhat you were charged
price*integerWhat your customers pay, in US cents at the rate of each sale, net of credit notes
credited*integerWhat credit notes have taken off price, each line converted at its own sale's rate. A flat-amount credit note names no sale and so is not reflected here
0 <= valueprofit*integerprice less cost. Falls with price when a sale is credited, and can go below zero for that sale
marginBps*integerProfit as a share of price, in basis points
groups?array<>One row for each value of groupBy. Absent without it
curl -X GET "https://example.com/v1/sales/summary?customerId=cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA&priceListId=prl_01K6XJ4Q8ZT3M9R5V2B7WDHNCA&from=2026-10-07T11%3A04%3A31.000Z&to=2026-11-01T00%3A00%3A00.000Z"{ "count": 12, "cost": 1440, "price": 1440, "credited": 0, "profit": 2400, "marginBps": 1667, "groups": [ { "key": "domain", "count": 12, "cost": 1440, "price": 1440, "credited": 0, "profit": 2400, "marginBps": 1667 } ]}List sales GET
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.
Create an invoice POST
Bills a customer for sales not yet on an invoice: every one of them, or the ones you name. Each line is a copy of a sale at the price it was made at. An invoice is in one currency and holds at most 500 sales, oldest first. ResellerHQ does not collect payment from your customers: you take the money however you already do, and record it here. Send an Idempotency-Key header so a retry can never invoice twice.