Transfers API Guide
Create transfers via API, track lifecycle, and handle outcomes.
What is it?
The Transfers API lets you create on-ramp and off-ramp transfers for your customers and track their lifecycle from creation to completion (or failure).
When to use
Use Transfers API when you want to embed transfers into your product and control your own UX.
If you want a pre-built experience, consider the Ramp widget instead.
High-level workflow
- You create a transfer intent (API).
- The transfer moves through statuses as funds are received and processed.
- You track status by polling the transfer endpoints.
Integration overview
- Onboard the customer (KYC/KYB gates transfers) Start here: /platform/customers
- Create funding instruments (bank account and/or wallet)
- Bank accounts: /platform/bank-accounts
- Wallets: /platform/wallets
- Create a transfer (API)
UsePOST /v2/transfer. See full guide and examples below. - Track status and handle outcomes
UseGET /v2/transferandGET /v2/transfer/{id}. See examples below.
Supported rails & currencies
SpherePay supports a variety of currencies for transfers. You can check the list of supported currencies in the table below. See Supported rails & currencies for more details.
Transfer Creation (API)
POSThttps://api.spherepay.co/v2/transfer
Request examples
{
"amount": "100.00",
"customer": "{{customer_id}}",
"source": {
"type": "bank_account",
"id": "{{bank_account_id}}",
"currency": "usd",
"network": "ach"
},
"destination": {
"type": "wallet",
"id": "{{wallet_account_id}}",
"currency": "usdc",
"network": "ethereum"
}
}{
"amount": "100.00",
"customer": "{{customer_id}}",
"source": {
"type": "wallet",
"id": "{{wallet_account_id}}",
"currency": "usdc",
"network": "ethereum"
},
"destination": {
"type": "bank_account",
"id": "{{bank_account_id}}",
"currency": "usd",
"network": "ach"
}
}{
"amount": "500.00",
"customer": "{{customer_id}}",
"source": {
"type": "bank_account",
"id": "{{bank_account_id}}",
"currency": "brl",
"network": "pix"
},
"destination": {
"type": "wallet",
"id": "{{wallet_account_id}}",
"currency": "usdc",
"network": "polygon"
},
"integratorBpsFeeRate": "50"
}{
"amount": "500.00",
"customer": "{{customer_id}}",
"source": {
"type": "wallet",
"id": "{{wallet_account_id}}",
"currency": "usdc",
"network": "polygon"
},
"destination": {
"type": "bank_account",
"id": "{{bank_account_id}}",
"currency": "brl",
"network": "pix"
},
"integratorBpsFeeRate": "50"
}BRL/PIX transfer constraints
BRL transfers use the PIX instant payment network and have the following constraints:
- Transfer limits: Applied to the source-currency amount (no FX conversion). On-ramp (PIX BRL → USDC/USDT): R$1.00–R$7,500.00. Off-ramp (USDC/USDT → PIX BRL): $1.00–$7,500.00 (stablecoin units, ~1:1 USD). Limits may be increased based on due diligence — contact your SpherePay representative.
- Supported wallet networks:
polygon,ethereum,base,tron. Solana is not supported for BRL transfers. - Supported stablecoins: USDC on Polygon/Ethereum/Base, USDT on Polygon/Ethereum/Tron. USDT on Base and USDC on Tron are not supported.
- Fees: Only
integratorBpsFeeRate(basis points) is supported.integratorFixedFeeis not allowed for BRL transfers because fees are collected on the stablecoin side, and a fiat-denominated fixed fee would require cross-currency conversion. - Bank accounts: The destination (off-ramp) or source (on-ramp) bank account must be a PIX account (currency
brl, networkpix). See Bank Accounts for creating PIX accounts. - Verification: BRL transfers require a separate verification profile. Contact your SpherePay representative for access.
Response example
{
"id": "payout_1234567890abcdef12345678",
"type": "on_ramp",
"status": "pendingFunding",
"customer": "customer_123abc..."
}For full request/response details, see the Create Transfer API Reference.
Track transfers (list + retrieve)
List transfers
GEThttps://api.spherepay.co/v2/transfer
For full API specification, refer to the List Transfers API Reference.
Retrieve a transfer by ID
GEThttps://api.spherepay.co/v2/transfer/{id}
For the full API specification, see the Get a Transfer API Reference.
Last updated on