Get unified accounts balance (fiat + crypto) - V2
Handler: GetAccountsBalanceV2Handler -> GetUnifiedAccountsBalance. Returns UnifiedBalanceResponse. Supports filtering, currency conversion, optional details breakdown, and stack=currency grouping.
Query Parameters
Customer ID for balance inquiry
Target currency for balance display and conversion
Populates by_currency
Include details breakdown of accounts and crypto assets
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v2/accounts/balance?customer_id=497f6eca-6276-4993-bfeb-53cbbbba6f08¤cy=str"{
"total_balance": 0,
"currency": "string",
"fiat_balance": 0,
"crypto_balance": 0,
"total_posted": 0,
"total_available": 0,
"total_pending": 0,
"details": {
"fiat_accounts": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
"currency": "string",
"balance": 0,
"balance_in_base": 0,
"is_crypto": true,
"active": true,
"status": "string",
"balance_posted": 0,
"balance_available": 0,
"balance_pending": 0,
"iban": "string",
"description": "string",
"bic": "string",
"main_wallet_address": "string",
"main_wallet_address_tag": "string",
"network": "string",
"issuer": "string"
}
],
"crypto_assets": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
"currency": "string",
"balance": 0,
"balance_in_base": 0,
"is_crypto": true,
"active": true,
"status": "string",
"balance_posted": 0,
"balance_available": 0,
"balance_pending": 0,
"iban": "string",
"description": "string",
"bic": "string",
"main_wallet_address": "string",
"main_wallet_address_tag": "string",
"network": "string",
"issuer": "string"
}
]
},
"by_currency": [
{
"currency": "string",
"balance": {
"amount": "123456",
"currency": "EUR",
"precision": 2
},
"count": 0
}
]
}{
"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"
}
]
}{
"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"
}
]
}{
"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: 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).
Handler: GetAccountByIDV2. Returns UnifiedAccountResponse. Inactive accounts (active=false) are hidden from callers without the Internal RBAC role — the endpoint returns 404 Not Found as if the account did not exist. Callers holding the Internal role can retrieve inactive accounts.