Payouts
Send money to a person or business. Bank account, mobile wallet, QR code, or crypto wallet.
What this doesYou send money from your TransFi balance to someone's bank account, mobile wallet or crypto wallet. They receive it in their own currency.
Three ways to pay out
| Pay to… | Guide |
|---|---|
| A bank account or mobile wallet | This page |
| A QR code (Southeast Asia) | QR Payouts |
| A crypto wallet | Pay Out in Crypto |
Before you start
- Your balance must cover the payout. See Add Funds.
- Fetch the recipient's required fields first — they differ by country. Don't hard-code them.
Steps
1. Find what the recipient needs
curl -X GET 'https://sandbox-api.transfi.com/v3/recipients/mandatory-fields?country=PH&type=individual¤cyType=fiat' \
-H 'Authorization: Basic YOUR_BASE64_CREDENTIALS' \
-H 'mid: YOUR_MID'Build your form from the inputs in the response. → Get Recipient Mandatory Fields
2. Create the recipient
curl -X POST 'https://sandbox-api.transfi.com/v3/recipients/individual' \
-H 'Authorization: Basic YOUR_BASE64_CREDENTIALS' \
-H 'mid: YOUR_MID' \
-H 'Content-Type: application/json' \
-d '{ ...fields from step 1... }'Save the userId. → Create Individual Recipient · Business Recipient
3. Check your balance
curl -X GET 'https://sandbox-api.transfi.com/v3/balance' \
-H 'Authorization: Basic YOUR_BASE64_CREDENTIALS' \
-H 'mid: YOUR_MID'Use the available figure. → Get Balance
4. Create the payout
Put the amount in destination so the recipient gets exactly that.
curl -X POST 'https://sandbox-api.transfi.com/v3/orders' \
-H 'Authorization: Basic YOUR_BASE64_CREDENTIALS' \
-H 'mid: YOUR_MID' \
-H 'Content-Type: application/json' \
-d '{
"userId": "UX-250930071801552",
"orderType": "payout",
"purposeCode": "invoice_payment",
"partnerId": "payout-2001",
"source": {
"currency": "USDT"
},
"destination": {
"currency": "PHP",
"amount": "10000",
"paymentType": "bank_transfer",
"paymentCode": "..."
}
}'paymentType and paymentCode come from List Payment Methods with direction=withdraw. → Create Order
5. Wait for the final status
| Status | Meaning | What to do |
|---|---|---|
initiated | Payout accepted | Show "pending" |
fund_processing | Sent to the bank network | Show "processing" |
fund_settled | Done. Recipient has the money | Mark as paid |
fund_failed | Couldn't be paid. Money is back on your balance | Fix the recipient details, then create a new order |
Paying many people at once
Each payment is its own order with its own status. Create them one by one, using a shared partnerId prefix — payroll-2026-09-001, -002 — so you can pull the whole batch back with List Orders. Batch upload from the dashboard is also available.
Cancelling a payout
A payout can be cancelled only while it is initiated. → Cancel Order
Test it
Related
Add Funds · Supporting Documents — when a corridor needs an invoice · Direct Payments — pay without holding a balance
Updated about 7 hours ago