Global Payouts

Pay people and businesses in their local currency, anywhere, from a single balance — without holding a bank in every country.

This guide shows you how to build a global payout flow on Fuze from start to finish: onboard a business, fund it, convert, pay out, and track. It reads top to bottom, and when you're ready to build, each step links to the exact request and response in the API Reference.

What Fuze gives you

One integration that handles the whole chain. You bring money in, hold it, and pay it out locally — Fuze takes care of the rails underneath.

  • Take money in — a local collection account (a vIBAN), or a crypto / stablecoin deposit.
  • Hold one multi-currency balance instead of many bank accounts.
  • Convert when you need to, at a rate you lock in advance.
  • Pay out in local currency to banks and wallets across India, Pakistan, the Philippines and Nigeria.
  • Compliance and FX are handled for you, and settlement runs over stablecoins, which makes payouts faster and rates more competitive.

The Fuze Business dashboard — one balance, with recent payouts across several countries.

How a payout works

At a high level, four parties are involved: you, Fuze, the local payout partner, and the person being paid.

sequenceDiagram
  participant You as Your platform
  participant Fuze
  participant Partner as Local payout partner
  participant Ben as Beneficiary
  You->>Fuze: Onboard the business (KYB)
  Fuze-->>You: Business is active (webhook)
  You->>Fuze: Add funds and buy local currency
  You->>Fuze: Create a payout with beneficiary details
  Fuze->>Partner: Send funds (settled over stablecoins)
  Partner->>Ben: Pay out in local currency
  Fuze-->>You: Payout completed (webhook)

The same flow, as five steps:

flowchart LR
  O["1 · Onboard"] --> C["2 · Collect"] --> X["3 · Convert"] --> P["4 · Pay out"] --> T["5 · Track"]
📷

Diagram: the five-step journey with the Fuze Business UI shown at each stage.

The five steps

Each step below says what you send and what you get back, in plain terms. The exact fields and payloads live in the API Reference.

1 · Onboard the business

You register the business as a user and take it through verification (KYB). This runs in the background — Fuze tells you the outcome through webhooks as it happens.

You provideYou get back
The business's identity and verification details (or a hosted link its team can fill in)A user record, then updates as verification moves from pending to complete

Verification doesn't always go in a straight line, which is the main reason this lives in a guide and not a one-shot recipe:

flowchart TD
  Create["Create the business"] --> Pending["Verifying"]
  Pending -->|more info needed| RFI["Needs information · show the link"]
  RFI -->|resubmitted| Pending
  Pending -->|passes| Done["Verified"]
  RFI -->|passes| Done
  Pending -->|can't verify| Rej["Rejected · start over with a new ID"]
  Done -->|terms accepted| Active["Active · can transact"]
📷

Screenshot: the KYB form and the "more information needed" prompt shown to a customer.

2 · Collect funds

Give the business a way to receive money, then watch the balance.

You provideYou get back
The business's ID and the currency you want to collect inBank details (IBAN, account number, bank name) to share so others can pay in; the balance updates as money arrives
📷

Screenshot: the collection-account details a merchant would share to get paid.

3 · Convert to the payout currency

Lock a rate, then convert. This moves money into the currency you're about to pay out in.

You provideYou get back
How much to convert, and the from/to currenciesA quote with a rate and a short expiry; once you accept, the local currency lands in your balance

4 · Create the payout

One request carries everything: who's sending, who's being paid, how much, and why. For India and Pakistan you can check the beneficiary's account first; for the Philippines and Nigeria the details are checked when the payout is made.

You provideYou get back
Sender details, beneficiary details and their local account, the amount, and the purposeThe payout, accepted and marked pending; the final result comes by webhook

The beneficiary details differ by country — see what each country needs below.

📷

Video: creating a payout in the dashboard and seeing it move to pending.

5 · Track to the finish

The payout starts as pending and settles to a final state. You can wait for the webhook, or check the status yourself with your order ID.

You provideYou get back
Your order ID (to check status), or nothing — just listen for the webhookThe current status, and a payment reference once it's paid
flowchart TD
  New["Create payout"] --> Pending["Pending"]
  New -->|rejected at creation| Failed["Failed · told immediately"]
  Pending --> Completed["Completed · paid"]
  Pending --> Canceled["Canceled · rejected by the partner"]
  Pending --> Reversed["Reversed · paid, then returned"]
  Pending --> Expired["Expired · pending too long"]

A quick guide to the endings:

StatusWhat it meansWhat you do
CompletedThe money reached the beneficiaryNothing — you're done
PendingStill in progressWait for the next webhook
FailedRejected at creation (bad data)Fix the request and retry
CanceledThe local partner rejected itRefund or retry, per your process
ReversedPaid, then returnedTreat as failed; refund
ExpiredSat pending too longRetry

What each country needs in the payout API

This is the part worth reading closely. The payout call takes the same shape everywhere, but the required beneficiary details change by country — and those differences are the easiest thing to get wrong. This is the quick map; the full field list is in the API Reference.

DetailIndiaPakistanPhilippinesNigeria
Account typeBank or UPIBank or walletBank or walletBank
Bank / wallet namenot neededrequiredrequired (e.g. GCASH)not needed
Bank routing detailIFSC codepayment channel (InstaPay / PESONET)bank code
UPI IDfor UPI payouts
Sender contactemailphonephoneemail
Can verify beneficiary first?yesyeschecked at payoutchecked at payout

A few things that catch people out:

  • India — the sender's contact is email. A bank payout needs the ifscCode; a UPI payout needs the upiId instead.
  • Pakistan — the sender's contact is phone. bankName is required, and you can pass the beneficiary's relation to the sender.
  • PhilippineschannelName (InstaPay or PESONET) sits at the top level of the request, not inside the account. bankName (e.g. GCASH) is required.
  • Nigeria — the beneficiary needs a bankCode, which you look up in the banking directory.

To fill in bank and wallet names for a country, use the banking directory (GET /api/v1/payment/remittance/bank-details/:country). Per-country purpose codes and relationship options are provided separately.

📷

Diagram: "given the destination country, which details do I collect?"



Did this page help you?