Skip to main content

Get Partner Transactions

Retrieve a paginated list of partner sales and refunds from your store, in one currency.

Both types are returned unless type is set. Newest first. Narrow the list with the optional filters below. All filters combine with AND.

Request​

GET /partner-transactions

Query Parameters​

ParameterTypeRequiredDefaultDescription
currencystringYes—Lowercase ISO-4217 code (e.g. usd). Must be a currency the store sells in. See Currency.
pageintegerNo1Page number for pagination.
per_pageintegerNo25Items per page (min: 1, max: 100). The default is 25, not 10.
sortstringNo-created_atSort field: created_at, amount, commission_percent, commission_amount, partner_name, or customer_email. Prefix with - for descending.
partnerstringNo—Partner UUID. Unknown, archived, or the store referrer returns 404, not an empty list. A malformed value returns 400. When omitted, archived partners' rows are included with ref set to null — see Overview.
productstringNo—Product UUID. A malformed value returns 400.
querystringNo—Customer search. An email address matches customer_email exactly. Anything else is a partial match on customer_name.
typestringNo—sale or refund. Omit to return both. An unknown value returns 400.
created_fromstringNo—Only rows recorded on or after this date (inclusive), YYYY-MM-DD. For a refund, that is the refund time. No date window when omitted.
created_tostringNo—Only rows recorded on or before this date (inclusive), YYYY-MM-DD. No date window when omitted.

The currency parameter is required. A missing, malformed, or unsupported currency returns 400 (see Bad Request). The other filters are optional, but a non-empty yet unparseable value — an unknown type, a malformed date, a non-UUID partner or product, an out-of-range per_page, or an unknown sort field — also returns 400. The query search term is free text and is always accepted.

Ordering: Rows default to created_at descending (newest first) unless sort is supplied.

Counting matches: every response includes the filtered total in pagination.total. To get only a count, request per_page=1 with your filters and read pagination.total.

Example Request​

curl -X GET "https://cart.easy.tools/api/v1/partner-transactions?currency=usd&partner=7c2e9a14-3b6f-4d81-9e25-0c8a1f4b6d30" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Response​

Success Response (200)​

Returns a paginated list. The sale and its refund are two items. Amounts are minor units (e.g. cents): 1999 is 19.99 USD, the 250g package price. Commission on the sale is 300. The refund commission is -299. Get Partner stats for this partner show amount 0 and commission_amount 1.

{
"items": [
{
"id": "b9d3e7f1-2a84-4c56-8f10-5e7a2b9c1d44",
"type": "refund",
"amount": -1999,
"currency": "usd",
"commission_percent": 15,
"commission_amount": -299,
"created_at": "2026-05-28T09:00:00+00:00",
"partner_id": "7c2e9a14-3b6f-4d81-9e25-0c8a1f4b6d30",
"partner_name": "Ada",
"ref": "ada",
"customer_id": "c4a8e1f2-7b30-4d96-8a15-6e2f9c0d3b71",
"customer_email": "buyer@example.com",
"customer_name": "Jane Doe",
"product_id": "0632bef5-c308-42cd-9cba-89a7a4f722bb",
"product_name": "Premium Coffee Beans",
"variant_id": "d91c65aa-b221-4aa4-b626-cf0d8a198749",
"variant_name": "250g Package",
"order_id": "9f3c2a71-8e54-4b16-a0d7-1c5e8b2f4a90",
"transaction_id": "2a6d8c14-5f73-4e90-b1a8-7d3c0e9f2b45"
},
{
"id": "e4f1a8c2-6d30-4b97-a1e5-2c8f0d3b7a91",
"type": "sale",
"amount": 1999,
"currency": "usd",
"commission_percent": 15,
"commission_amount": 300,
"created_at": "2026-05-27T10:15:30+00:00",
"partner_id": "7c2e9a14-3b6f-4d81-9e25-0c8a1f4b6d30",
"partner_name": "Ada",
"ref": "ada",
"customer_id": "c4a8e1f2-7b30-4d96-8a15-6e2f9c0d3b71",
"customer_email": "buyer@example.com",
"customer_name": "Jane Doe",
"product_id": "0632bef5-c308-42cd-9cba-89a7a4f722bb",
"product_name": "Premium Coffee Beans",
"variant_id": "d91c65aa-b221-4aa4-b626-cf0d8a198749",
"variant_name": "250g Package",
"order_id": "9f3c2a71-8e54-4b16-a0d7-1c5e8b2f4a90",
"transaction_id": "2a6d8c14-5f73-4e90-b1a8-7d3c0e9f2b45"
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"per_page": 25,
"total": 2
}
}

Response Fields​

See the Partner Transaction object.

Pagination Object​

FieldTypeDescription
current_pageintegerCurrent page number.
total_pagesintegerTotal number of pages.
per_pageintegerEffective page size (echoes the per_page request parameter; defaults to 25).
totalintegerTotal number of rows matching the applied filters, across all pages.

Error Responses​

Bad Request (400)​

Missing currency, a code that is not three letters, or a currency the store does not sell:

{
"message": "A valid currency query parameter is required"
}

An unknown type, sort, date, or UUID uses the filter shape:

{
"message": "Invalid value for 'type': 'nope'"
}

Not Found Error (404)​

partner is unknown, archived, or the store referrer.

{
"message": "Partner with ID 7c2e9a14-3b6f-4d81-9e25-0c8a1f4b6d30 not found"
}

Unauthorized Error (401)​

{
"message": "Unauthenticated."
}

Forbidden Error (403)​

Returned when your API key has not been granted access to the requested store.

{
"message": "You do not have API access to the requested store."
}

Rate Limit Error (429 Too Many Requests)​

Returned when you exceed the rate limit. The Retry-After response header gives the number of seconds to wait.

{
"message": "Too many requests. Please retry after 60 seconds."
}