Accounts and balances
An organization keeps a balance in each currency it holds. Money arrives by bank transfer into a receiving account, or as crypto to a deposit address. This guide shows how to set those up, show them to your client’s payers, and follow the money that comes and goes.
What you can do
Section titled “What you can do”- List the currencies an organization can hold, receive, send and convert.
- Ask for receiving bank accounts in more currencies.
- Show the bank details and crypto addresses payers send money to.
- Read balances.
- List transactions.
- Export transactions and balance statements as files.
The sequence
Section titled “The sequence”1. See which currencies the organization can use
Section titled “1. See which currencies the organization can use”listOrganizationCurrencies
returns one entry per currency:
curl -s "$ELE_API_BASE/api/v1/organizations/$ORGANIZATION_ID/currencies" \ -H "Authorization: Bearer $ELE_TOKEN"| Field | Meaning |
|---|---|
hold |
The organization can keep a balance in it. |
receive |
A payer can send it to the organization today. |
send |
The organization can pay out in it. A currency it can only pay out in has hold set to false. |
convert |
It can be swapped to or from another currency. |
balance_opened |
The organization has a balance in it already. |
active |
It is in use: it can be received today, or its balance is not zero. |
2. Open receiving accounts
Section titled “2. Open receiving accounts”A receiving account is a bank account in the organization’s name that payers
send a currency to.
listOrganizationMultiCurrencyAccounts
shows the state of each currency the organization may hold:
curl -s "$ELE_API_BASE/api/v1/organizations/$ORGANIZATION_ID/multi-currency-accounts" \ -H "Authorization: Bearer $ELE_TOKEN"To ask for more, an owner or admin calls
requestOrganizationMultiCurrencyAccounts
with up to 20 currency codes. Check that requests_enabled is true first.
curl -s "$ELE_API_BASE/api/v1/organizations/$ORGANIZATION_ID/multi-currency-accounts" \ -H "Authorization: Bearer $ELE_TOKEN" \ -H "Idempotency-Key: $KEY" \ -H 'Content-Type: application/json' \ -d '{"currencies": ["EUR", "GBP"]}'The response has every currency’s state in data, and one outcomes entry per
currency you asked for: requested, already_active, already_processing,
failed, or provider_unavailable (Ele could not reach its banking partner,
and will try again by itself).
New accounts open in the background. If Ele’s banking partner has not yet set up the organization, which follows its business checks (see Onboarding), Ele saves the request and sends it on once the partner is ready.
3. Show where to send money
Section titled “3. Show where to send money”Bank transfers.
listFiatDepositAccounts
lists every bank account the organization can receive money into, with the
details a payer needs: beneficiary_name, bank_name, account_number or
iban, routing_numbers, and any deposit_instructions_memo. Show these to
the payer as Ele returns them.
curl -s "$ELE_API_BASE/api/v1/organizations/$ORGANIZATION_ID/fiat-deposit-accounts" \ -H "Authorization: Bearer $ELE_TOKEN"At least one of account_number and iban is present; check each one on its
own. supported_payment_rails lists the bank networks the account accepts,
and each entry in routing_numbers names the network or code type it is for.
To show the same accounts grouped by currency, use
listFiatDepositAccountsByCurrency.
An account that takes several currencies appears under each.
listVirtualAccounts returns only
the accounts Ele set up for the organization itself; prefer
listFiatDepositAccounts, which includes those as well as accounts from Ele’s
banking partners.
Crypto.
listDepositAddresses returns
the organization’s wallet addresses, one per coin and network:
curl -s "$ELE_API_BASE/api/v1/organizations/$ORGANIZATION_ID/deposit-addresses" \ -H "Authorization: Bearer $ELE_TOKEN"Always show the coin.network with the address: a deposit sent on the wrong
network can be lost. Ele assigns addresses when the organization becomes able
to receive crypto. A coin without an address is missing from the list. Crypto
deposits are credited to the organization in US dollars (see
Money).
Some crypto deposits are held until the organization says who sent them. The
transaction has needs_sender_travel_rule set to true, and
submitDepositSenderTravelRule
supplies the details.
4. Read balances
Section titled “4. Read balances”getOrganizationBalance
returns balances, one entry per currency the organization holds:
curl -s "$ELE_API_BASE/api/v1/organizations/$ORGANIZATION_ID/balance" \ -H "Authorization: Bearer $ELE_TOKEN"| Field | Meaning |
|---|---|
posted |
Money that has settled. |
pending |
The net of money still on its way in and out. |
available |
What can be spent now: posted, less any money on its way out. Money on its way in is not counted until it settles. |
Show available as the spendable balance. The top-level balance and
currency give one currency only; read balances for all of them.
For one total across currencies, use
getOrganizationBalanceValuation.
It converts at mid-market rates, so it is an estimate for display, not a price
you can trade at.
5. List transactions
Section titled “5. List transactions”listTransactions returns the
organization’s transactions, newest first, a page at a time:
curl -s "$ELE_API_BASE/api/v1/organizations/$ORGANIZATION_ID/transactions?limit=100&date_start=2026-10-01" \ -H "Authorization: Bearer $ELE_TOKEN"Each transaction has a type, such as fiat_incoming, fiat_outgoing,
crypto_incoming, card_transaction, fiat_swap or fee, and its fields
depend on the type. Handle a type you do not know. You can filter by
categories, currencies, a date range, a card, or a payment batch. Fetch one
transaction with getTransaction.
Owners and admins see every transaction. A member sees only their own.
See Pagination for paging, and Staying in sync for catching changes to transactions you already have.
6. Export statements
Section titled “6. Export statements”createExport builds a file and returns
a link to download it. type is transactions, balance_statement or
expenses:
curl -s "$ELE_API_BASE/api/v1/organizations/$ORGANIZATION_ID/exports" \ -H "Authorization: Bearer $ELE_TOKEN" \ -H "Idempotency-Key: $KEY" \ -H 'Content-Type: application/json' \ -d '{"type": "balance_statement", "currency": "USD", "from": "2026-09-01", "to": "2026-09-30"}'{ "id": "0199…", "type": "balance_statement", "status": "completed", "filename": "…", "download_url": "https://…", "expires_at": "2026-10-09T11:00:00Z", "inserted_at": "2026-10-09T10:00:00Z"}Ele builds the file during the call. The link works until expires_at. For a
fresh link later, call getExport. Only the
person who created an export can fetch it again.
Transaction and balance-statement exports need an owner or admin. Any member can export their own expenses.
States
Section titled “States”A receiving account’s state, from
listOrganizationMultiCurrencyAccounts:
state |
Meaning | What you do |
|---|---|---|
available |
It can be requested. | Request it, if requests_enabled is true. |
processing |
A request is waiting for the business checks, or the account is being opened. | Wait. Check again later. |
active |
A payer can send this currency today. | Show the deposit details. |
failed |
The last request failed, or the partner does not open this currency for this business. | Contact Ele support. |
Step-up and approvals
Section titled “Step-up and approvals”None of the calls in this guide needs step-up or an approval.
What to poll
Section titled “What to poll”getOrganizationBalanceandlistTransactions, as Staying in sync suggests.listOrganizationMultiCurrencyAccountsevery few hours while a currency isprocessing.
Who can do what
Section titled “Who can do what”| Operation | Roles |
|---|---|
listOrganizationCurrencies, listOrganizationMultiCurrencyAccounts, getOrganizationBalance |
Owner, admin |
requestOrganizationMultiCurrencyAccounts |
Owner, admin |
listFiatDepositAccounts, listFiatDepositAccountsByCurrency, listVirtualAccounts |
Owner, admin, member |
listDepositAddresses |
Owner, admin |
listTransactions |
Owner and admin see all; a member sees their own |
Common errors
Section titled “Common errors”| Status | type |
When | What to do |
|---|---|---|---|
403 |
forbidden |
The person’s role does not allow the call, for example a member reading balances. | Use an owner or admin. |
422 |
entity_rejected |
Requesting accounts for an organization whose business checks were rejected. | Contact Ele support. |
502 |
provider_unavailable |
Ele could not reach its banking partner while requesting accounts. | Check the account states, then retry with a new key. |
502 |
export_storage_failed |
Ele could not store or sign the export file. | Retry with a new key. |
For other types, see Errors.