How you get paid
Capay Global collects in local currency and settles you by hand: the treasury team records each payout to the destination you chose, sends the money, then confirms it. This page tells you exactly what you can choose, what you cannot, and how to read the result from the dashboard and the API.
The journey of a payment
A completed collection lands in your pending balance, net of fees. Your settlement schedule releases it to your available balance after the hold. From there, nothing leaves the platform on its own: a member of the Capay Global treasury team records a settlement payout, which debits your available balance immediately and holds the money while the transfer is made by hand.
Marking it sent adds the on-chain transaction hash or the transfer reference. Confirming it closes the loop in our own books. If the transfer cannot be completed, or the payout is cancelled before sending, the mirror journal puts the money straight back in your available balance.
collection completes -> PENDING balance (net of fees)
settlement releases -> AVAILABLE balance (after the hold on your schedule)
treasury records a payout -> AVAILABLE debited (spo:{id}:debit, status pending)
treasury sends the money -> status sent (transaction hash or transfer reference)
treasury confirms -> status confirmed (spo:{id}:settle between Capay accounts)
failed / cancelled -> AVAILABLE credited (spo:{id}:reverse, the mirror image)Choose how you get paid
Under Business settings > Settlement accounts, the Owner or an Admin sets, per balance currency, where your settlements go. The destination is one of your registered settlement accounts in that balance currency; a new account is reviewed by Capay Global before the first payout to it. Because moving the destination moves every future settlement, that change needs the Owner or an Admin with a step-up when two-factor authentication is enforced; a Finance member may change the frequency and the minimum only. Every change notifies your whole team with a security notice that cannot be muted.
- Local bank account, in the balance currency.
- Mobile money number, in the balance currency.
- Stablecoin wallet (USDT or USDC on TRC20, BEP20, ERC20, SOL or POLYGON) registered for the balance currency it settles.
Stablecoin settlement and the FX rate
When you choose a stablecoin wallet, the treasury team buys the asset and sends it to your wallet on the network you registered. The rate you receive is the executed rate: the amount debited from your balance divided by the asset amount actually sent, derived from those two numbers and never invented. It is recorded on the payout and shown in the dashboard and in the fx field of GET /v1/balance_transactions.
Before the payout you may see an indicative rate, and you (or your API key) may lock a quote for a given amount with POST /v1/fx/quotes; the treasury team attaches the quote when it records the payout, and the fx line then names it. A quote locks a rate only if the payout is created before it expires; there is no automatic conversion, and no cross-currency payout API exists.
USD bank settlement is not available. Settlement accounts carry the balance currency they settle; the only path that crosses currencies is the manual stablecoin payout described here.
Cadence and minimums
Per currency you can also say how often you want to be paid and from what available amount. These two values guide the Capay Global treasury team: they mark your row as due in the settlement queue. They are not a scheduler and never create a payout on their own.
- On every settlement
- Weekly
- Monthly
- On request
What you are told
Every Owner, Admin and Finance member gets a notification (dashboard and email, per their notification preferences) at each step of a payout. Sandbox payouts are prefixed "Test:". The message carries the amount, the masked destination, the payout id, the transaction hash or reference once sent, and the executed rate (with the quote id when one was locked) when the payout crossed currencies. It never carries internal notes.
- Prepared: the amount was reserved from your available balance.
- Sent: the money left, with the hash or transfer reference.
- Confirmed: Capay Global confirmed the funds reached you.
- Failed: the transfer could not be completed; the amount is back in your available balance.
- Cancelled: the payout was cancelled before sending; the amount is back in your available balance.
There is no webhook event for settlement payouts yet: poll GET /v1/balance_transactions?journal_kind=settlement_payout, or read the Settlements page.
Read it from the API
Each ledger movement posted by a settlement payout carries a settlement_payout reference and, when the payout was paid in a stablecoin, an fx line. Other movements carry null for both. Filter with journal_kind=settlement_payout to list only the payouts.
curl "https://api.capayglobal.com/v1/balance_transactions?currency=XAF&journal_kind=settlement_payout&limit=2" \ -H "Authorization: Bearer sk_live_XXXXXXXXXXXX"
{
"status": "success",
"data": {
"object": "list",
"data": [
{
"id": "txn_10422",
"object": "balance_transaction",
"amount": "-50000",
"currency": "XAF",
"account": "available",
"journal_reference": "spo:3c2b7e10-9a4f-4b6e-8c1d-2f5a7b9c0d1e:debit",
"journal_kind": "settlement_payout",
"posted_at": "2026-09-04T09:12:41.301Z",
"livemode": true,
"settlement_payout": {
"id": "spo_7Qm3k1Xa9Zr4",
"status": "confirmed",
"method": "crypto",
"destination": "USDT (TRC20) TX9aB1…k4Qz"
},
"fx": {
"rate": "625",
"rate_unit": "XAF/USDT",
"asset": "USDT",
"network": "TRC20",
"asset_amount": "80",
"source": "fx_quote",
"quote": {
"id": "fxq_2Lk8Zp0Qw9Er",
"rate": "0.0016",
"rate_unit": "USD/XAF",
"expires_at": "2026-09-04T09:27:00.000Z"
},
"conversion": "manual_settlement_only"
}
},
{
"id": "txn_10418",
"object": "balance_transaction",
"amount": "-20000",
"currency": "XAF",
"account": "available",
"journal_reference": "spo:8a1f4c2d-7e3b-4a9c-b5d6-0e1f2a3b4c5d:debit",
"journal_kind": "settlement_payout",
"posted_at": "2026-08-28T15:02:10.000Z",
"livemode": true,
"settlement_payout": {
"id": "spo_4Kd9pL2mQx7B",
"status": "confirmed",
"method": "bank",
"destination": "Zenith Bank •••• 1234"
},
"fx": null
}
],
"has_more": false
},
"request_id": "b1e2c3d4-5f60-4a71-8b92-c0d1e2f3a4b5"
}| Field | Description |
|---|---|
| settlement_payout.id | The payout id (spo_...), with its status, method and masked destination. |
| fx.rate | The executed rate: balance-currency units per 1 asset unit, a decimal string. |
| fx.rate_unit | e.g. XAF/USDT. |
| fx.asset / fx.network | What was sent and on which network. |
| fx.asset_amount | The asset amount actually sent, when recorded. |
| fx.source | fx_quote when the treasury team attached a locked quote, operator_derived when it typed the executed amounts. |
| fx.quote | The locked quote (id, its own rate in its own unit, expiry), or null. |
| fx.conversion | Always manual_settlement_only. |
Statements
In the dashboard: the Settlements page (How you get paid, Payouts to you with the executed rate and source), the Balances page (each settlement payout leg carries the payout id and its FX line), and Reports > Settlement payouts (with FX) for a CSV.
See also: Fees and settlement · Balances reference · FX rates and quotes reference