Skip to content

List transactions​

GET
/v1/account/transactionhistory

Requires TRANSACTION_HISTORY_READ, granted by TRADING_READ or TRADING_WRITE or TREASURY_READ or TREASURY_WRITE (bundles)

Lists transactions on the account you call it on (your primary account, or the sub-account selected with X-VALR-SUB-ACCOUNT-ID), newest first: trades, deposits, withdrawals, transfers between your accounts, fees and other balance changes. Filter by type, currency or time range, and page with skip and limit, or by passing the id of the oldest transaction you've received as beforeId.

Parameters​

Query Parameters

skip

Number of transactions to skip, for paging.

Type
integer
Example0
Default
0
limit

Maximum number of transactions to return, up to 200.

Type
integer
Example100
Default
200
startTime

Only include transactions at or after this time, as an ISO 8601 timestamp in UTC.

Type
string
Example"2026-10-01T00:00:00.000Z"
Format
"date-time"
endTime

Only include transactions at or before this time, as an ISO 8601 timestamp in UTC. Mustn't be before startTime.

Type
string
Example"2026-10-23T00:00:00.000Z"
Format
"date-time"
currency

Only include transactions that debit or credit this currency, e.g. ZAR.

Type
string
Example"ZAR"
transactionTypes

Comma-separated transaction types to include, in upper case, e.g. LIMIT_BUY,MARKET_BUY. The values are the transactionType.type values in responses.

Type
string
Example"FIAT_DEPOSIT,FIAT_WITHDRAWAL,INTERNAL_TRANSFER"
beforeId

Only include transactions older than the transaction with this id.

Type
string
Example"019a0c4e-2f70-7a3b-8c4d-2e1f0a9b8c7d"
Format
"uuid"

Responses​

OK

application/json
JSON
[
{
"transactionType": {
"type": "LIMIT_SELL",
"description": "Limit Sell"
},
"debitCurrency": "BTC",
"debitValue": "0.0025",
"creditCurrency": "ZAR",
"creditValue": "2981.525",
"feeCurrency": "ZAR",
"feeValue": "5.975",
"eventAt": "2026-10-22T14:03:51.207Z",
"additionalInfo": {
"costPerCoin": 1195000,
"costPerCoinSymbol": "R",
"currencyPairSymbol": "BTCZAR",
"orderId": "019a0c4e-2e91-7f4a-b2c8-1d6e3f5a7b90"
},
"id": "019a0c4e-2f70-7a3b-8c4d-2e1f0a9b8c7d"
},
{
"transactionType": {
"type": "INTERNAL_TRANSFER",
"description": "Transfer"
},
"debitCurrency": "USDC",
"debitValue": "2500",
"eventAt": "2026-10-22T09:30:12.884Z",
"additionalInfo": {
"reason": "SUB_ACCOUNT",
"reasonDescription": "Transfer between subaccounts",
"additional": "Transfer from Primary to Treasury",
"transferId": "512874"
},
"id": "019a0b47-3d24-7c58-b1e9-6a7b8c9d0e1f"
},
{
"transactionType": {
"type": "FIAT_DEPOSIT",
"description": "Deposit"
},
"creditCurrency": "ZAR",
"creditValue": "150000",
"eventAt": "2026-10-21T07:45:03.112Z",
"id": "019a05a1-c2e8-7f30-8d4a-1b2c3d4e5f60"
}
]

Samples​

Errors

HTTPErrorWhen
400-11INVALID_REQUESTskip or limit isn't a whole number, limit is more than 200, startTime or endTime isn't an ISO 8601 timestamp, endTime is before startTime, currency isn't a currency VALR supports, transactionTypes contains an unknown type, or beforeId isn't a valid UUID.

Plus the errors common to all signed endpoints.