Return a list of payment transactions for a merchant account. Use the query parameters to filter and sort the results.
50 approved Sale transactions:
GET /v1/transactions?type=sale&result=approved&limit=50Declined transactions in January 2026:
GET /v1/transactions?result=declined&created.gte=2026-01-01T00:00:00Z&created.lte=2026-01-31T23:59:59ZA child merchant's transactions (reseller viewing merchant):
GET /v1/transactions?client_id=CLIENT-01KFDKXMQ637EKEAY410MSQSXBPage through results — skip first 100, return next 25, sorted by amount descending:
GET /v1/transactions?offset=100&limit=25&sort_by=amount&sort_order=descAll Sales and Authorizations for a merchant in a date range:
GET /v1/transactions?type=sale,auth&client_id=CLIENT-01KFDKXMQ637EKEAY410MSQSXB&created.gte=2026-03-01T00:00:00Z&created.lte=2026-03-31T23:59:59ZFilters transactions by card type. Send one value, or a comma-separated list to match any of several types — card_type=CREDIT,DEBIT. Values are matched case-insensitively.
Accepts every value a transaction response can carry, including UNKNOWN for transactions whose card type the processor could not determine. UNKNOWN is the common case on most merchants, so a filter of CREDIT or DEBIT alone returns very few rows.
The open-batch filter on GET /v1/batches/transactions is a different parameter and does not behave the same way. See OpenBatchCardType.
Filter results to transactions belonging to a specific client. Resellers use this to view transactions for a child merchant under their account. The authenticated caller must have permission to access the specified client's data. More than one client_id can be included by using a comma-separated list.
Filter by transaction type. Send one value, or a comma-separated list to match any of several types — type=SALE,AUTH. Values are matched case-insensitively.
VOID is not a filter value, and sending it returns 400 INVALID_REQUEST_DATA. A cancelled payment is reported as CANCEL, so filter on that instead.
The child client this request acts on behalf of. A reseller still authenticates as itself — Api-Key and Client-Id stay the reseller's — and names the child here.
This works only from a parent to its own children. Merchants have no children, so a merchant calling as itself omits the header. Sending your own client ULID here is not the same as omitting it, and is rejected on some operations.
- Mock server (simulated responses)https://developer.myparadisepay.com/_mock/apis/openapi/v1/transactions
curl -i -X GET \
https://developer.myparadisepay.com/_mock/apis/openapi/v1/transactions \
-H 'Api-Key: YOUR_API_KEY_HERE' \
-H 'Client-Id: CLIENT-01KFDKXMQ637EKEAY410MSQSXB'Payment transaction list returned successfully
Unique identifier assigned to the request by the API server. Returned on every response, including errors. Log this value and supply it when contacting support so that a specific request can be traced.
Whether additional records exist beyond this result set. If true, increment offset by limit to fetch the next page.
Three transactions from the same merchant — the approved sale, the approved authorization, and the declined sale. Only the sale has settled, so only it carries a batch_id. The authorization joins a batch once it is captured, and a declined sale never does. initiator is null on every row, because a read does not return the value supplied on create. total_count is 3 and limit is 10, so has_more is false and there is no next page to fetch.
{ "total_count": 3, "limit": 10, "offset": 0, "has_more": false, "transactions": [ { … }, { … }, { … } ] }