Payouts

Send money to a person or business. Bank account, mobile wallet, QR code, or crypto wallet.

✅

What this does

You 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 walletThis page
A QR code (Southeast Asia)QR Payouts
A crypto walletPay 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&currencyType=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

StatusMeaningWhat to do
initiatedPayout acceptedShow "pending"
fund_processingSent to the bank networkShow "processing"
fund_settledDone. Recipient has the moneyMark as paid
fund_failedCouldn't be paid. Money is back on your balanceFix the recipient details, then create a new order
🛑

Don't retry a failed order. Create a new one with a new partnerId.

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.

📘

Sending a batch in one API call — Coming soon

Cancelling a payout

A payout can be cancelled only while it is initiated. → Cancel Order

Test it

Simulate Order Status

Related

Add Funds · Supporting Documents — when a corridor needs an invoice · Direct Payments — pay without holding a balance


Did this page help you?