Find Your Use Case

What you're buildingUse caseJump to
Accept payments from your customers in their local currencyCollect MoneyCollect Payments
Accept crypto payments from your customersCollect CryptoCollect Payments (Crypto)
Collect from each end user into a separate per-user wallet (forex, trading platforms)Collect with WalletCollect Payments with Wallet
Pay out to people — remittance, payroll, contractor/seller payoutsSend MoneySend Money (Payout)
Pay out crypto to a wallet addressSend CryptoSend Money (Crypto Payout)
Let your users buy stablecoins with local currencyFiat → CryptoBuy Crypto (Onramp)
Let your users cash out stablecoins to local currencyCrypto → FiatSell Crypto (Offramp)
Receive bank or SEPA transfers to a dedicated virtual account numberBank Transfer CollectionIBAN Accounts
Pay individuals via a scannable QR code (SEA markets)QR PayoutsQR Code Payments
Top up your balance before running bulk payoutsBalance Top-UpPre-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.

  1. One endpoint handles every transaction type

    All transactions go through a single endpoint: POST /v3/orders. The orderType field selects the flow:
    orderTypeWhat 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
  1. The payload always uses source and destination objects

    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.
    // 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" }
  2. Money moves asynchronously - you react to webhooks

    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.

Every API call requires three things:

(1) an Authorization: Basic <base64(username:password)> header

(2) a mid: YOUR_MID header

(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.com

Production Base URL: https://api.transfi.com