Your KES payout destinations
Your OnLink KES account(s). Pass an account's payoutAccountId on POST /v1/orders/sell; the KES lands in that account. Read-only: the list is your own KES account(s), so your API credential cannot add a place for money to go. Only active, named KES accounts are listed. Account numbers are returned as the last four digits only — you select an account by id and never type its number.
curl -X GET "https://example.com/v1/payout-accounts"[ { "payoutAccountId": "dd9f1e6a-0000-4000-8000-000000000003", "accountNumberLast4": "6789", "accountName": "EXAMPLE TRADING LIMITED", "bankCode": null, "label": "OnLink KES account" }]Deposit instructions for both legs GET
The KES rails that top up your KES balance, and your USDT deposit address. A KES deposit is credited to your balance, not to any one order — a buy order debits that balance directly. Every reference is an explicit field — the KES accountReference is the exact value to put in the M-PESA account-number field, or the beneficiary account number on a bank transfer. Your USDT deposit address is permanent. What a deposit does depends on who holds your USDT: if OnLink holds it, USDT sent to the address tops up your USDT balance, which a sell order is paid from; if you hold it in your own wallet, the address is that wallet and the USDT stays there, where your sells and sends draw from it. GET /v1/usdt/holding-wallet says which applies to you.
Your balances GET
The KES account you hold with us and its available balance. A Collections credential also gets usd, the USD account that collections are paid into and that conversions and USD payouts draw on. When that USD account cannot be read (not opened yet, still activating, or suspended), usd.available is null and usd.unavailableReason names why; it is never reported as 0. A USDT Rails credential gets kes only.