Collect with Custodial Wallet

Collect from a user through a wallet created in their name. For platforms that keep a balance per user.

✅

What this does

Your user pays with a local method. TransFi creates a wallet in the user's name, moves the money through it, and credits your balance. You then top up the user's balance on your own platform.

📘

Who this is for

Platforms where each user has their own balance — trading, gaming, digital services.

How the money moves

  1. Before the order, your user agrees that funds will move from their wallet to you.
  2. The user pays with a local method.
  3. TransFi creates a wallet in the user's name and moves the money through it.
  4. Your TransFi balance is credited.
  5. You get fund_settled → you top up the user's balance on your platform.
  6. You are settled to your bank in batches — see Settlements.

The wallet is a pass-through in the user's name. It does not hold a balance.

Steps

1. Create the user

Create Individual User. Save the userId.

2. Get the user's consent

Before creating the order, your user must agree to the transfer from their wallet to you. Record this on your side.

3. Create the order

The orderType is gaming. Everything else is the same as a local payment method collection.

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-250930062608488",
    "orderType": "gaming",
    "purposeCode": "company_expenses",
    "partnerId": "order-1003",
    "source": {
      "currency": "PHP",
      "amount": "2500",
      "paymentType": "local_wallet",
      "paymentCode": "GCASH"
    },
    "destination": {
      "currency": "USDT"
    }
  }'

You get back a payUrl. Send the user there. → Create Order

📘

About the name gaming

This is the value the API expects. It is not limited to gaming platforms.

4. Wait for the final status

StatusMeaningWhat to do
initiatedWaiting for the user to payShow "pending"
fund_processingPayment made, being confirmedShow "processing"
fund_settledDone. Your balance is creditedTop up the user's balance on your platform
fund_failedPayment didn't arriveNew order, new partnerId
🛑

Top up the user only on fund_settled. Not when they come back from payUrl.

Related

Payouts — pay withdrawals · Settlements · Webhook events: Payin with wallet


Did this page help you?