Appearance
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
Example
0Default
0limit
Maximum number of transactions to return, up to 200.
Type
integer
Example
100Default
200startTime
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
| HTTP | Error | When |
|---|---|---|
| 400 | -11INVALID_REQUEST | skip 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.