Read an Account Balance
What this page solves
Reading the amount available for transfers from one of your accounts.
When to use it
Before creating a transfer
Check that the source account has enough funds.
After transfers
Reconcile the balance in your own systems.
Before you start
API key
With the
Internal transfersorPartner transfersscope that has access to the account. See Payments scopes.Account number
A wallet (Personal Area → Payments & wallet), a trading account on the Exness platform (Personal Area → Trading → Accounts), or your Reward Wallet (Partner Personal Area → Wallet accounts). Send it as a string, exactly as shown.
Recommended flow
- 1Request
GET /v1/accounts/{account_id}/balance. - 2Compare
balancewith the amount you plan to transfer, in the account currency.
Main endpoints
| Operation | Purpose |
|---|---|
GET /v1/accounts/{account_id}/balance | Read the balance available for transfers |
Example request
The example is structural: replace the placeholders in angle brackets with your values. For a runnable implementation, see Read a balance.
GET /v1/accounts/8066808/balance HTTP/1.1
EXN-API-KEY: <your API key>
EXN-IDEMPOTENCY-KEY:
EXN-TIMESTAMP: <current Unix time in milliseconds>
EXN-SIGN-VERSION: 1
EXN-DATA: <base64url-encoded signed payload>
EXN-SIGN: <base64url-encoded signature>
The signed EXN-IDEMPOTENCY-KEY header is sent with an empty value for this GET request.
What to expect in return
HTTP 200:
{
"account_id": "8066808",
"balance": "1000.00",
"currency": "USD"
}
balance— the amount available for transfers from the account, as a non-negative decimal string.currency— the account currency. Transfer amounts from this account are expressed in the same currency.
Common errors
| HTTP | code | error_message | What to do |
|---|---|---|---|
| 403 | 1002 | AUTH_PERMISSION_DENIED | Your key has no Payments scope, or your source IP is not allowed for the key. |
| 404 | 2000 | ACCOUNT_NOT_FOUND | The account does not exist or is not available to your API key. Check the account number. |
| 422 | 3001 | REQUEST_INVALID_PARAMETERS | The account number did not pass validation. Send it as a string, exactly as shown. |
All codes are listed in Troubleshooting Your API Requests.
Recovery and reconciliation
The balance can change between your balance request and your transfer request. If a transfer creation request fails with TRANSFER_INSUFFICIENT_FUNDS while no request with its idempotency key has had an unknown outcome, read the balance again before you adjust the amount.
On a retry after an unknown outcome, the error can mean that the earlier attempt already used the funds: do not change the request; see Recovery and Idempotency.
Related pages
Send Your First Request · Transfer between your own accounts · Transfer to another client