Find Your Use Case
| What you're building | Use case | Jump to |
|---|---|---|
| Accept payments from your customers in their local currency | Collect Money | Collect Payments |
| Accept crypto payments from your customers | Collect Crypto | Collect Payments (Crypto) |
| Collect from each end user into a separate per-user wallet (forex, trading platforms) | Collect with Wallet | Collect Payments with Wallet |
| Pay out to people — remittance, payroll, contractor/seller payouts | Send Money | Send Money (Payout) |
| Pay out crypto to a wallet address | Send Crypto | Send Money (Crypto Payout) |
| Let your users buy stablecoins with local currency | Fiat → Crypto | Buy Crypto (Onramp) |
| Let your users cash out stablecoins to local currency | Crypto → Fiat | Sell Crypto (Offramp) |
| Receive bank or SEPA transfers to a dedicated virtual account number | Bank Transfer Collection | IBAN Accounts |
| Pay individuals via a scannable QR code (SEA markets) | QR Payouts | QR Code Payments |
| Top up your balance before running bulk payouts | Balance Top-Up | Pre-load Your Balance |
How Every Transfi Integration Works
Three things are true across almost every use case. Learn them once and every guide below will make sense immediately.
-
All transactions go through a single endpoint: POST /v3/orders. The orderType field selects the flow:One endpoint handles every transaction typeorderType What it does payinCollect fiat or crypto from a payer gamingCollect fiat into a per-user custodial wallet (used by forex/trading platforms) payoutSend fiat or crypto to a recipient onrampUser pays fiat, receives stablecoin in their wallet offrampUser sends stablecoin, receives fiat in their bank/wallet fiat_prefundTop up your TransFi balance via bank transfer crypto_prefundTop up your TransFi balance via crypto deposit
-
Every order describes a flow from a source currency to a destination currency. The amount can go in either the source or the destination — not both.The payload always uses source and destination objects// Amount in source (most common): user pays exactly 100 EUR, you receive the equivalent crypto "source": { "currency": "EUR", "amount": "100", "paymentType": "bank_transfer" } "destination": { "currency": "USDT" } // Amount in destination: user receives exactly 100 USDT, system calculates EUR to pay "source": { "currency": "EUR", "paymentType": "bank_transfer" } "destination": { "currency": "USDT", "amount": "100" } -
The order creation call returns immediately. The actual money movement is async. Every guide below lists the statuses your order goes through and tells you exactly which status means "done" and what to do when it lands. Set up your webhook listener at displai.transfi.com → Settings → Integration before you go live.Money moves asynchronously - you react to webhooks
Every API call requires three things:
(1) an
Authorization: Basic <base64(username:password)>header(2) a
mid: YOUR_MIDheader(3) Content-Type: application/json
Get your credentials and MID from displai.transfi.com → Settings → Integration → API Authentication
Sandbox Base URL:
https://sandbox-api.transfi.comProduction Base URL:
https://api.transfi.com