Skip to content

Transaction reports

The Transaction reports operations includes APIs for generating transaction reports.

List Transactions

Request

Return a list of payment transactions for a merchant account. Use the query parameters to filter and sort the results.

Examples

50 approved Sale transactions:

GET /v1/transactions?type=sale&result=approved&limit=50

Declined transactions in January 2026:

GET /v1/transactions?result=declined&created.gte=2026-01-01T00:00:00Z&created.lte=2026-01-31T23:59:59Z

A child merchant's transactions (reseller viewing merchant):

GET /v1/transactions?client_id=CLIENT-01KFDKXMQ637EKEAY410MSQSXB

Page through results — skip first 100, return next 25, sorted by amount descending:

GET /v1/transactions?offset=100&limit=25&sort_by=amount&sort_order=desc

All 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:59Z
Security
ApiKeyAuth
Query
limitinteger, (int32), [ 1 .. 1000 ]

Maximum number of transactions to return. Range: 1–1000.

Default:100
offsetinteger, (int32), >= 0

Number of transactions to skip before returning results. Use with limit to select a specific window. For example, offset=20&limit=20 returns records 21–40.

Default:0
batch_idstring

Filter results to transactions belonging to a specific batch.

is_settledboolean

Whether the transaction is settled.

Example:is_settled=true
card_typeArray of strings

Filters 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.

integrationstring

Filter results to transactions belonging to a specific integration (e.g., payment processor such as TSYS or Vericheck).

Enum:"TSYS""VERICHECK"
client_idstring

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.

Examples:
merchant
client_id=CLIENT-01KFDKXMQ637EKEAY410MSQSXB
typeArray of strings

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.

resultstring

Filter by transaction result. Use approved to return only approved transactions or declined to return only declined transactions. When omitted, transactions with any result are returned. Possible values:

  • APPROVED
  • DECLINED
  • ERROR
Enum:"APPROVED""DECLINED""ERROR"
created.gtestring, (date-time)

Return transactions created at or after this timestamp (inclusive). ISO 8601 format (UTC).

Example:created.gte=2026-01-01T00:00:00Z
created.ltestring, (date-time)

Return transactions created at or before this timestamp (inclusive). ISO 8601 format (UTC).

sort_bystring

Field to sort results by.

Default:"CREATED"
Enum ValueDescription
CREATED

Created timestamp.

TYPE

Transaction type.

RESULT

Transaction result.

sort_orderstring

Sort direction.

Default:"DESC"
Enum ValueDescription
ASC

Ascending sort order.

DESC

Descending sort order.

Headers
Client-Idstring, (ulid)required
Example:CLIENT-01KFDKXMQ637EKEAY410MSQSXB
X-Acting-As-Client-Idstring, (ulid)

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.

Example:CLIENT-01KFDKXMQ637EKEAY410MSQSXB
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'

Responses

Payment transaction list returned successfully

Headers
x-request-idstring, (uuid)^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}...required

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.

Example:"73039bd9-c380-4186-bffe-259125144a56"
Bodyapplication/json
total_countinteger, (int32)

Total number of transactions matching the query.

Example:42
limitinteger, (int32)

Maximum number of records returned in this response.

Example:100
offsetinteger, (int32)

Number of records skipped.

Example:20
has_moreboolean

Whether additional records exist beyond this result set. If true, increment offset by limit to fetch the next page.

Example:true
transactionsArray of objects(TransactionResponse)

Array of transaction objects matching the query.

Response

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": [ { … }, { … }, { … } ] }