curl -H "Authorization: Bearer lid_live_XXXXXXXXXXXXXXXX" \
https://api.liddie.io/api/v1/currencies
// Works with a secret API key or a dashboard JWT as the Bearer token
const res = await fetch('https://api.liddie.io/api/v1/currencies', {
headers: { Authorization: 'Bearer lid_live_XXXXXXXXXXXXXXXX' },
})
const currencies = await res.json()
// Merchant context: [{ currency, name, hasWallet }, ...]
// No merchant context: ["BTC", "LTC", ...]
[
{ "currency": "BTC", "name": "Bitcoin", "hasWallet": true },
{ "currency": "DOGE", "name": "Dogecoin", "hasWallet": true }
]
Currencies & wallets
List currencies
List the crypto currencies you can charge in with Liddie. The response shape depends on whether your credential carries a merchant wallet context.
GET
/
api
/
v1
/
currencies
curl -H "Authorization: Bearer lid_live_XXXXXXXXXXXXXXXX" \
https://api.liddie.io/api/v1/currencies
// Works with a secret API key or a dashboard JWT as the Bearer token
const res = await fetch('https://api.liddie.io/api/v1/currencies', {
headers: { Authorization: 'Bearer lid_live_XXXXXXXXXXXXXXXX' },
})
const currencies = await res.json()
// Merchant context: [{ currency, name, hasWallet }, ...]
// No merchant context: ["BTC", "LTC", ...]
[
{ "currency": "BTC", "name": "Bitcoin", "hasWallet": true },
{ "currency": "DOGE", "name": "Dogecoin", "hasWallet": true }
]
See which currencies you can charge in —
BTC,
ETH,
USDT,
DOGE and more. Populate your checkout’s currency picker from this endpoint instead of hardcoding tickers: only currencies in this list are accepted by
Both branches return a top-level array (no
POST /api/v1/payments.
The response shape depends on whether the credential carries a merchant context. With one, you get an array of objects; without one you get a bare array of ticker strings. Type the branch you expect — a client that assumes objects will read
undefined for every field when an admin token is used.Authorization
Any valid credential (secret API key or dashboard JWT). See the Authentication guide. This endpoint takes no parameters — the credential alone decides which of the two response branches you get.curl -H "Authorization: Bearer lid_live_XXXXXXXXXXXXXXXX" \
https://api.liddie.io/api/v1/currencies
// Works with a secret API key or a dashboard JWT as the Bearer token
const res = await fetch('https://api.liddie.io/api/v1/currencies', {
headers: { Authorization: 'Bearer lid_live_XXXXXXXXXXXXXXXX' },
})
const currencies = await res.json()
// Merchant context: [{ currency, name, hasWallet }, ...]
// No merchant context: ["BTC", "LTC", ...]
[
{ "currency": "BTC", "name": "Bitcoin", "hasWallet": true },
{ "currency": "DOGE", "name": "Dogecoin", "hasWallet": true }
]
The two response branches
With a merchant context (a merchant JWT, or a merchant-scopedlid_live_* key) the route returns the currencies you have an active wallet for, as an array of objects — see the response example above. A fresh merchant account gets a wallet for every platform currency automatically.
Without a merchant context — a super_admin dashboard token (admin JWTs carry no merchantId) or a SYSTEM-scoped key — the route returns every ticker in the platform registry as a bare array of strings, with no name and no hasWallet:
200 OK (no merchant context)
["BTC", "LTC", "DOGE", "ETH", "USDT_ERC20", "USDC_SOL", "XRP", "TRX", "..."]
{ok, data} envelope); only the element type differs.
Response fields
string
Currency ticker (e.g.
BTC, USDT_ERC20). In the no-merchant-context branch, each array element is this bare string instead of an object.string
Human-readable currency name. Present only in the merchant-context branch.
boolean
Whether you have an active wallet for this currency. Present only in the merchant-context branch (which only lists currencies you have an active wallet for).
See also
- Create a payment: only currencies returned by this endpoint are accepted as
currency. - List minimum order amounts: the minimum charge per currency before creating small payments.
- List merchant wallets: the wallet detail behind each
hasWallet: true. - Authentication: how merchant vs admin credentials differ and which one your integration should use.