List accounts (unified fiat and crypto) - V2
Handler: GetUnifiedAccounts. Retrieves a unified list of both fiat and crypto accounts with search, filtering, sorting, and pagination. Response is a paginated OR stacked (when stack is set) envelope of UnifiedAccountResponse. Access Control: - Regular users: only accounts linked to their customers. - Administrators (PermReadAll): all accounts. - Inactive accounts: non-Internal callers are filtered to active=true accounts only; callers holding the Internal RBAC role see both active and inactive accounts (no forced filter).
Query Parameters
General search across address, currency code, identifier, IBAN, description
Comma-separated UUIDs
Crypto accounts only
Fiat accounts only
Crypto accounts only
Balance filter (minor units). See task note on balance types.
Posted balance in minor units
Available balance in minor units
Available fields: id, customer_id, currency, balance, is_crypto, active, status, created_at, modified_at
Group by field. e.g. is_crypto, currency, status, created_at[DD-MM-YYYY]
Response Body
application/json
application/json
curl -X GET "https://example.com/v2/accounts"{
"data": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"active": true,
"customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
"currency": "string",
"balance": {
"amount": "123456",
"currency": "EUR",
"precision": 2
},
"is_crypto": true,
"status": "active",
"created_at": "2019-08-24T14:15:22Z",
"modified_at": "2019-08-24T14:15:22Z",
"description": "string",
"metadata": {},
"iban": "string",
"check_digits": "string",
"bban": "string",
"bank": "string",
"bic": "string",
"country_id": "b42f7153-60f9-4aff-a5b5-21576be4161e",
"ledger_id": "baa10cc3-8899-4531-a9c5-63cd06cd8d2c",
"can_be_converted_to_crypto": true,
"currency_id": "305e0674-ee79-42b7-bf83-278294a47a7b",
"project_id": 0,
"crp_account_id": 0,
"can_be_converted_to_fiat": true,
"main_wallet_address": "string",
"main_wallet_address_tag": "string",
"last_balance_sync": "2019-08-24T14:15:22Z",
"crp_accounts": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"network_id": "d6797cf4-42b9-4cad-8591-9dd91c3f0fc3",
"network_name": "string",
"network_code": "string",
"asset_id": "b4695157-0d1d-4da0-8f9e-5c53149389e4",
"crp_account_id": 0,
"main_wallet_address": "string",
"main_wallet_address_tag": "string",
"balance": 0,
"can_be_converted_to_fiat": true,
"last_balance_sync": "2019-08-24T14:15:22Z",
"active": true,
"created_at": "2019-08-24T14:15:22Z"
}
],
"subledger": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"code": "string",
"balance_posted": {
"amount": "123456",
"currency": "EUR",
"precision": 2
},
"balance_pending": {
"amount": "123456",
"currency": "EUR",
"precision": 2
},
"balance_available": {
"amount": "123456",
"currency": "EUR",
"precision": 2
}
}
}
],
"total": 0,
"total_unfiltered": 0,
"has_more": true,
"metadata": {}
}{
"status": 400,
"message": "string",
"code": "transfers_m.account_not_found",
"class": "validation",
"retryable": false,
"details": [
{
"field": "amount",
"rule": "gt",
"param": "0",
"message": "amount must be greater than 0"
}
]
}Handler: OpenCustomerSubledger. Opens (idempotently) a customer-anchored subledger (currently only fees_receivable) with no account created or required. One subledger per customer+purpose+currency is shared by every one of the customer's accounts in that currency — repeat calls, including from different accounts of the same customer, resolve to the identical row. Account-anchored purposes (pending_settlement_in/out, compliance_hold_in/out) are rejected: open those via POST /v2/accounts/{id}/subledgers. Returns 201 on a fresh open, 200 when the subledger already existed.
Handler: GetAccountsBalanceV2Handler -> GetUnifiedAccountsBalance. Returns UnifiedBalanceResponse. Supports filtering, currency conversion, optional details breakdown, and stack=currency grouping.