What you’ll need
- A dashboard JWT. These endpoints do not take a secret key.
JWTs are short-lived — roughly 30 minutes. An expired one returns 401
Expired Token. Refresh and retry rather than treating it as a failure.The shape of the flow
1
List every balance
One call, every currency you hold.
2
Read one account by ID
When you already have the account ID.
3
Read one currency by code
When you know the currency but not the ID.
4
List the supported currencies
What you could hold, not what you do hold.
Step 1: List every balance
There is no paging and no ordering you can rely on. The live response returned
15 currencies in no obvious order — not alphabetical, not by balance. Find a
currency by filtering on
currency, never by array position.0.00 — they are provisioned and ready, just empty. A zero balance is not a
missing account.
Keep the
accountId. This is the single most useful value on the page.
Accepting a trade requires the destination currency’s accountId — see
Let a Buyer Pay for a Trade.Step 2: Read one account by ID
Step 3: Read one currency by code
If you know the currency but not the ID, look it up directly:accountId. These are two
routes to one account.
The currency code is case-insensitive.
/balances/currency/ghs and
/balances/currency/GHS both work and both return "currency": "GHS" —
the response always uppercases it.GHS in your
integration, while an accountId is specific to your account and differs
between test and live.
Step 4: List the supported currencies
This is the catalogue — what HyperRails supports, not what you hold.The two lists disagree on wording, so do not key off
description. GHS reads
“Ghanaian Cedi” in both, but NGN is “Nigerian Naira” in test and “Nigerian
Nairia” in live, and KES is “test currency” in live mode. Use currency.ACTIVE, but no account for either appeared in Step 1 — a currency
being supported does not mean an account is provisioned for it.
When things go wrong
What to do next
- Check What a Wallet Holds — the crypto side
- Find a Liquidity Provider — before you trade
- Let a Buyer Pay for a Trade — settle into one of these accounts