Skip to main content
The global bank transfers module sends funds from USDC or USDT to bank accounts through ACH, Wire, SWIFT, and SEPA. Each operation returns funding instructions containing an address, amount, asset, and network. The bank transfer is processed after the specified amount is received.

Endpoints

All requests require a valid authentication token.
  1. Call GET /v2/transactions/payouts/rails to retrieve the rails, corridors, limits, and fields enabled for the account.
  2. Request an estimate through POST /v2/transactions/payouts/estimate.
  3. Create the transfer through the selected rail endpoint.
  4. Send exactly paymentInstructions.amount to paymentInstructions.depositAddress using the specified asset and network.
  5. Query the transaction or process its updates through webhooks.

List available rails

The response only includes withdrawal rails that are currently enabled. Each corridor provides its currency, limits, eligible or restricted countries, and purpose codes.
Corridors and limits may vary by environment and account. Treat this response as the source of truth before creating a transfer.

Estimate a transfer

You can fix the source amount with sourceAmount or the amount received by the beneficiary with destinationAmount. You must provide at least one of them.

Common fields

Create a transfer

ACH uses an account number and a nine-digit ABA routing number.

Beneficiary address

ACH, Wire, and SWIFT require beneficiaryAddress:

Creation response

All four endpoints return the same contract:
Send the exact amount and asset over the network specified in paymentInstructions. A different amount or network may prevent reconciliation.