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 doesYour 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.
How the money moves
- Before the order, your user agrees that funds will move from their wallet to you.
- The user pays with a local method.
- TransFi creates a wallet in the user's name and moves the money through it.
- Your TransFi balance is credited.
- You get
fund_settled→ you top up the user's balance on your platform. - 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
4. Wait for the final status
| Status | Meaning | What to do |
|---|---|---|
initiated | Waiting for the user to pay | Show "pending" |
fund_processing | Payment made, being confirmed | Show "processing" |
fund_settled | Done. Your balance is credited | Top up the user's balance on your platform |
fund_failed | Payment didn't arrive | New order, new partnerId |
Related
Payouts — pay withdrawals · Settlements · Webhook events: Payin with wallet
Updated about 7 hours ago