POST /api/payout is a single endpoint that routes to one of five payout types based on the fromCurrency / toCurrency pair you send. Tradevu treats USDT and USDC as crypto; everything else (NGN, USD, EUR, GBP, KES, UGX, GHS, CAD, XOF, XAF) is fiat.
Common fields
Every payout requires:string
required
Amount to send, in
fromCurrency units.string
required
Source wallet currency to debit.
string
required
Destination currency.
string
required
Transfer narration.
string
required
A unique ID you generate for this payout attempt — returned back to you and useful for support lookups.
string
Required whenever
fromCurrency differs from toCurrency. Obtain it from GET /api/qoutes/:fromCurrency/:toCurrency/:amount.Same-currency fiat
Bank details are required whenever the destination is fiat.bankCode is required for NGN, KES, and UGX destinations. For CAD use transitNumber + institutionNumber instead of bankCode; for GBP add sortCode; for EUR/GBP add swiftCode. See the payout schema for the full field matrix.Same-currency crypto
Crypto-to-crypto (swap)
Requires network for both sides:Crypto-to-fiat
Debit a crypto wallet, pay out to a bank account:Cross-currency (fiat to fiat/crypto)
Response
All payout types return the same envelope:There is currently no dedicated “get payout status” endpoint on the API —
sessionId is your durable reference for reconciliation and support inquiries. Payout completion isn’t pushed to your webhook either; that channel currently covers collections only.Verifying bank details before paying out
UsePOST /api/resolve-bank to confirm an account number/bank code resolves to the expected account name before you submit the payout — this catches typos before money moves.
GET /api/bank-list/:fromCurrency/:toCurrency to populate a bank picker in your UI.
Full endpoint reference
See exact request/response schemas, including every conditional field.