Ledger API - Transactions

Search transactions

<ul> <li class="docBullet">Search for transactions across all types (card payments, transfers, deposits, withdrawals, fees, adjustments and interest).</li> <li class="docBullet">Exactly one of account_id or token must be provided as a query parameter.</li> <li class="docBullet">Returns a paginated list sorted by updated_at descending (newest first) by default.</li> <li class="docBullet">The maximum allowed date range between updated_from and updated_to is 1 year.</li> </ul>
get/pty/account/v1/transactions

Request

  • Base URL
    https://api.uat.paymentology.com
  • URL
    https://api.uat.paymentology.com/pty/account/v1/transactions
  • Auth
    HTTP bearer

Query parameters

account_idstring
Example:479823917

Account identifier. Exactly one of account_id or token must be provided.

tokenstring
Example:311012081

Token identifier. Exactly one of account_id or token must be provided.

typeSearchTransactionType[]

Filter by transaction type(s). Multiple values comma-separated.

transaction_referencestring

Exact match on transaction_reference

transaction_descriptionstring

Partial match on transaction_description

currencystring
Example:ZAR

Filter by currency (ISO 4217)

min_amountstring
Example:1000

Minimum amount in minor units (inclusive)

max_amountstring
Example:100000

Maximum amount in minor units (inclusive)

updated_fromstring date-time
Example:2026-01-01T00:00:00Z

Return transactions created at or after this time (inclusive). Transactions are immutable once posted, so this is their creation time. Any timezone offset is accepted. The range may not exceed 366 days; when only one bound is given, the range is measured against the current time.

updated_tostring date-time
Example:2026-01-31T23:59:59Z

Return transactions created before this time (exclusive). Transactions are immutable once posted, so this is their creation time. Any timezone offset is accepted. The range may not exceed 366 days; when only one bound is given, the range is measured against the current time.

merchantstring

Partial match on merchant name (card transactions only)

sort_by'UPDATED_AT' | 'AMOUNT'

Field to sort transaction search results by. UPDATED_AT sorts by the transaction creation time.

Field to sort results by AMOUNT requires currency.

sort_order'ASC' | 'DESC'

Sort direction.

Sort direction

limitinteger

Maximum number of results to return (default 20, max 100)

cursorstring

Opaque pagination cursor from the previous response's next_cursor. Send it with exactly the same filters and sort as the request that returned it.

Response

Successful Response

next_cursorstring nullable

Cursor for the next page of results. Null if no more pages.

has_moreboolean required

Whether more results are available

Example response

{
  "filters": {
    "account_id": "479823917",
    "token": "311012081",
    "currency": "ZAR",
    "min_amount": "1000",
    "max_amount": "100000",
    "limit": 20
  },
  "items": [
    {
      "id": "7bb83d05-2f62-4689-bc56-f9378a9de566",
      "rejection_reason": {
        "code": "INSUFFICIENT_FUNDS",
        "message": "Source account 479823917 has insufficient available balance"
      },
      "amount": {
        "amount": "10000",
        "currency": "USD"
      },
      "transaction_reference": "ref_001",
      "transaction_description": "Internal Transfer",
      "updated_at": "2026-01-15T10:30:01Z",
      "tid": "tid_a1b2c3d4",
      "rid": "rid_x9y8z7w6",
      "sequence": 1,
      "token": "311012081",
      "merchant": "Woolworths",
      "source_account_id": "479823917",
      "destination_account_id": "583198001",
      "external_account_reference": "EXT-FND-98234",
      "exchange_rate": "1.36500",
      "fee": {
        "amount": "100",
        "currency": "USD",
        "type": "TRANSFER_FEE"
      }
    }
  ],
  "next_cursor": "eyJsYXN0X2lkIjoiYTFiMmMzZDQifQ==",
  "has_more": true
}

Changes

No recorded changes to this operation across all 1 revision of this API.