Skip to main content
Your Quidkey accounts hold real balances at the payment provider. GET /api/v1/balances returns those balances live, one entry per account and currency — so you can monitor how much is available and alert your team when it runs low. The most common use case is watching the funds available for refunds. You have one account with the refund role in each currency you are paid out in, and a refund is paid from the one in the currency its payment was paid out in. Poll this endpoint on a schedule and raise an alert when one of those balances drops below your threshold.

Console

View balances in your dashboard

API reference

Full endpoint specification

Account roles

A merchant’s provider-managed accounts are each tagged with a role. Balances are returned per account, because a merchant can hold several — including more than one currency. A merchant with no managed accounts yet receives an empty data array.
Read the refund row in a payment’s payout currency to answer “can I cover a refund of this payment right now?”. A refund of a payment paid out in GBP comes from the GBP refund account, whatever currency the customer paid in. The receiving balance is money mid-pipeline (about to be converted and paid out) — it is not spendable refund headroom.

Step 1: Fetch balances

Call GET /api/v1/balances with your access token. As a merchant you don’t pass an ID — the account is resolved from your credentials.
Every request needs an Authorization: Bearer <access_token> header. See Authentication to exchange your client_id and client_secret for a token.
A successful response lists one row per account:

Response fields

balance is null when the provider did not report a figure for that account (e.g. a freshly provisioned account, or a transient provider hiccup). null means “unknown right now” — it is not zero. Don’t render it as 0, and don’t fire a low-balance alert on it.

Step 2: Alert on a low refund balance

Each payout currency has its own refund row, so check each currency you are paid out in. This example checks GBP:
Balances are fetched live from the provider on every call. Poll on a sensible cadence (e.g. every few minutes) rather than on every request, and cache the result on your side if you show it in a UI.

Reading another merchant’s balances

Merchant credentials resolve to their own account automatically. If you are a partner or platform acting across merchants, name the target with ?merchant_id=:
As a partner or platform, merchant_id is required — omitting it returns 400 MERCHANT_ID_REQUIRED. You can only read merchants you own; anything else returns 404.

Next steps

Payout reconciliation

See the transactions and fees behind each payout

API reference

Full endpoint specification