Balances per currency
GET/v1/wallet/balance
scope wallet.read
A LIST, not a number: a seller trading cross-border holds several currencies at once. Every figure is minor units. When money is blocked and cannot be withdrawn, the response also carries an onboarding block saying why. settled_to_fees is terminal: the company's absorbed fees consumed the whole order, so nothing was transferred and nothing was refunded.
Response#
| Field | Type | Description |
|---|---|---|
data | array | One entry PER CURRENCY. A seller trading cross-border holds several at once, so there is no single balance — never sum these. |
data[]. | string | Which balance this row is. |
data[]. | integer | Order money still travelling: accepted, in shipping, or inside the buyer's return window. Not yours to withdraw yet. Minor units. |
data[]. | integer | Cleared and withdrawable right now. This is the figure a withdrawal draws on. |
data[]. | integer | Already sent to your bank. Historical, not a balance you hold. |
data[]. | integer | Returned to buyers. |
data[]. | integer | Held because your payout identity checks are incomplete. Not lost — see GET /v1/wallet/account for what is missing. |
data[]. | integer | What you owe us, where fees exceeded what an order earned. |
data[]. | integer | Orders whose absorbed fees consumed the whole amount. TERMINAL, and its own bucket deliberately: this money is neither withdrawable nor refunded, and folding it into either would misstate the wallet. |
data[]. | integer | Money we could not classify automatically, with a human looking at it. Reported rather than hidden, and never folded into available. |
can_withdraw | boolean | Whether a withdrawal would be accepted at all. false means payout onboarding is incomplete, whatever available says. |
Example
{
"data": [
{
"currency": "RON",
"pending": 123400,
"available": 45000,
"paid_out": 890000,
"refunded": 0,
"blocked": 0,
"debt": 0,
"settled_to_fees": 0,
"under_review": 0
}
],
"can_withdraw": true
}