Balance & funding
One USD balance pays every payout, topped up by wire or with USDC.
You hold a US dollar balance with Avvio, and every standard payout debits it at the moment it is sent. You fund it ahead of time, so a payout never waits on a transfer from your bank.
How it works
Section titled “How it works”- Wire USD to the dedicated account
GET .../payin-accountsreturns, or hold USDC in your organization’s wallet. In the sandbox,POST .../sandbox/fundcredits the balance. - Check what you can send with
GET .../balance. - Pay. Each payout debits the balance when it is accepted. A payout larger
than the balance is refused with
400 INSUFFICIENT_BALANCE, and nothing is sent. - Reconcile every movement with
GET .../balance_transactions.
Some crypto and dedicated settlement routings work differently: the payout is
priced, answers requiresFunding: true, and waits for you to fund that one
payout from your own wallet.
Coverage
Section titled “Coverage”The balance is USD. What it can pay out to is on Countries and currencies.
Reading the balance
Section titled “Reading the balance”amount (and balances[]) is everything a payout can draw on, per currency:
what the payment network holds for you plus the USD stablecoins in your wallet,
cached for up to 60 seconds. Wallet figures are face value per chain, before
the cost of moving them onto the payout’s rail, so a payout for exactly
amount can fail to fund when money must be gathered from several chains.
provider[] is the network-held part and wallet[] your USDC and USDT per
chain. unavailable[] names any source (network or wallet) that could not
be read; the figures are then a floor, uncached, so retry before concluding you
cannot fund a payout. In sandbox, amount, provider[] and
ledger[].available are one USD figure and wallet[] is empty.
Stablecoins a network holds for you count as USD. POST /payouts takes no
sourceCurrency, and sending one is a 400 VALIDATION_ERROR; only the
two-step POST …/quotes/offramp lets you name the balance currency to debit
(and that path is closed to organizations with caps or approvals, see
Send a payout). USD in a virtual account is reported on arrival, but
on a wallet-funded routing a payout is priced from the wallet, so convert the
USD to USDC in the dashboard first.
ledger[], always present, is our append-only record of the network-held part:
available, held and total, never summed into anything else. The network
figure says what can be spent now; the ledger figure reconciles row by row with
GET /balance_transactions, which also explains any difference between them.
Key features
Section titled “Key features”Funding you can verify
Section titled “Funding you can verify”A wallet-funded payout is confirmed against the chain before it is recorded: the transaction must exist, have confirmed, and have paid at least the required amount to the exact deposit address.
Automatic funding, on request
Section titled “Automatic funding, on request”Organizations can opt in to have wallet-funded payouts paid from their own wallet automatically. The API calls stay the same.
Integration guides
Section titled “Integration guides”- Fund your balance: wire, sandbox funding, and payouts that wait for your funds.
- Reconcile your ledger: the four balance numbers and holds.
- Go live: funding ahead of your first live run.
Was this page helpful?