Skip to main content
GET
List transactions
All transactions are returned through a single endpoint regardless of payment method. Results are sorted by the selected field and paginated using cursors.

Sorting

Use sort_by and sort_order to control result ordering: Both asc and desc are supported for sort_order (default: desc).

Filtering

Use payment_method=QR_PH or payment_method=CARD_PRESENT to filter by payment type.
Use merchant_id with the UUID from /v1/merchants.
Use branch_id with the UUID from /v1/branches.
Use date_from and date_to with RFC 3339 timestamps.
Use status with comma-separated values.
Use activation_code to filter by terminal device identifier.

Pagination

Results are cursor-paginated. Use page_size (default 20, max 100) and the next_cursor from the response:
Cursors are tied to the sort_by field. Changing sort_by between pages will return a 400 error — start a new query instead.

Next Steps

Get Transaction

Retrieve full detail for a single transaction

List Merchants

Get merchant UUIDs for filtering

Authorizations

X-API-Key
string
header
required

API key for authentication. Verified by APISIX via Vanguard. APISIX injects identity headers and strips the raw key before forwarding.

Query Parameters

merchant_id
string<uuid>

Filter by logical merchant UUID from the Merchant Registry. Works cross-DB — returns transactions from both databases if the merchant exists in both.

branch_id
string<uuid>

Filter by logical branch UUID from the Merchant Registry. Works cross-DB.

activation_code
string

Filter by terminal activation code. Works cross-DB. Activation codes are device identifiers (printed on hardware), not secrets.

payment_method
enum<string>

Filter by payment method. Omit to query both databases.

Available options:
QR_PH,
CARD_PRESENT
card_brand
enum<string>

Filter by card brand.

Available options:
VISA,
MASTERCARD
status
string

Comma-separated list of canonical transaction statuses.

date_from
string<date-time>

Start of date range (inclusive, RFC 3339).

date_to
string<date-time>

End of date range (inclusive, RFC 3339).

sort_by
enum<string>
default:created_at

Field to sort by. Default: created_at. Cursor pagination works correctly across all sort fields.

Available options:
created_at,
updated_at,
amount
sort_order
enum<string>
default:desc

Sort direction. Default: desc.

Available options:
asc,
desc
page_size
integer
default:20

Number of items per page.

Required range: 1 <= x <= 100
cursor
string

Opaque cursor token from a previous response's next_cursor field.

Response

Successful response with transaction list

data
object[]
required
pagination
object
required