Use SpherePay to facilitate currency trading between fiat pairs using stablecoins as the settlement layer. The pattern is the same across corridors — a stablecoin sandwich routes the trade through USDC (or another stablecoin), with SpherePay handling both fiat legs. This is the right pattern for FX brokerages, currency-exchange platforms, B2B cross-currency settlement, and any product that needs to convert one fiat into another fast and predictably.Documentation Index
Fetch the complete documentation index at: https://docs.spherepay.co/llms.txt
Use this file to discover all available pages before exploring further.
The pattern, in one shape
Every corridor below follows the same three-step model:- On-ramp the source fiat to USDC.
- Bridge the USDC across networks if needed (one wallet to another).
- Off-ramp USDC to the destination fiat.
Both fiat legs require separate verification profiles on the customer (one per currency). See each corridor below for the specific profiles required.
Supported corridors
Expand a corridor below for the full step-by-step integration walkthrough.BRL ↔ USD — Brazilian Real and US Dollar
BRL ↔ USD — Brazilian Real and US Dollar
The most common Sphere corridor today. Moves funds between Brazilian Reais (via PIX) and US Dollars (via wire or ACH) with USDC as the bridge currency.Common use cases:Store the returned Store the returned
- Import/export payments — Brazilian importers paying USD invoices to international suppliers, or exporters receiving USD proceeds.
- Loan repayments — borrowers holding BRL servicing USD-denominated debt.
- Real estate transactions — buyers or sellers in Brazilian property deals settling in USD.
- Remittances — Brazilian senders, US recipients.
Prerequisites
Flow
Step 1 — Create a USD bank account
POSThttps://api.spherepay.co/v2/bank-accountStep 2 — Create an Offloader Wallet
POSThttps://api.spherepay.co/v2/offloader-walletaddress as {{offloader_address}}.Step 3 — Register the Offloader address as a wallet
POSThttps://api.spherepay.co/v2/walletid as {{wallet_id}}. Steps 1–3 only need to be done once per customer — reuse {{wallet_id}} for all future BRL → USD transfers.Step 4 — Create a BRL bank account
POSThttps://api.spherepay.co/v2/bank-accountpixKeyType accepts email, phone, cnpj, or random.Step 5 — Create the BRL → USDC transfer
POSThttps://api.spherepay.co/v2/transferStep 6 — Fund the transaction
The response includes aninstructions.pixKey — present this to your end user. Once they send the BRL via PIX:- Sphere receives the BRL and converts it to USDC.
- USDC is delivered to the Offloader Wallet.
- The Offloader Wallet auto-converts USDC to USD and wires it to the registered USD bank account.
Reverse direction — USD → BRL
For the opposite direction, flip the pattern: register a BRL Offloader Wallet (USDC → BRL via PIX), then on-ramp USD → USDC into it. Same primitives, same number of API calls.Error handling
| Scenario | What happens | What to do |
|---|---|---|
| On-ramp fails | BRL returned via PIX. No USDC minted. | Retry or surface to user. |
| On-ramp succeeds, Offloader conversion fails | USDC sits in Offloader Wallet. No USD sent. | Contact SpherePay support. |
| Customer sends wrong PIX amount | Partial or excess USDC lands in Offloader Wallet. | Wallet converts whatever arrives — reconcile on your side. |
USD ↔ EUR — US Dollar and Euro
USD ↔ EUR — US Dollar and Euro
Convert between US Dollars (via ACH or wire) and Euros (via SEPA) with USDC or EURC as the bridge. SEPA settles same/next business day; SEPA Instant is near-instant where supported.Common use cases:Use Pick the source network based on where you’ll be receiving USDC. Solana is the cheapest and fastest; Ethereum and Base are common for institutional flows.Store the returned Store the returned Pick
- US importers paying European suppliers.
- European platforms accepting USD revenue and settling to EUR.
- Cross-border treasury — companies operating in both regions managing FX exposure.
- FX brokerages offering retail USD/EUR conversion.
Prerequisites
The customer must be approved for both USD and EUR verification profiles. Both fiat rails fall underkyc_profile_a / kyb_profile_a (no separate profile is needed for EUR, unlike BRL).All standard USDC networks are supported, including Solana. For EURC, supported networks are Base, Ethereum, and Solana.Flow
Step 1 — Create an EUR bank account
POSThttps://api.spherepay.co/v2/bank-accountsepaInstant in networks if you need near-instant settlement and the recipient bank supports it.Step 2 — Create an Offloader Wallet for USDC → EUR
POSThttps://api.spherepay.co/v2/offloader-walletaddress as {{offloader_address}}.Step 3 — Register the Offloader address as a wallet
POSThttps://api.spherepay.co/v2/walletid as {{wallet_id}}.Step 4 — Create a USD bank account
POSThttps://api.spherepay.co/v2/bank-accountStep 5 — Create the USD → USDC transfer
POSThttps://api.spherepay.co/v2/transferwire for same-day settlement, ach for cheaper but slower (1–2 business days).Step 6 — Settlement
Once USD arrives at SpherePay:- Sphere converts USD → USDC.
- USDC is delivered to the Offloader Wallet.
- Offloader Wallet auto-converts USDC → EUR and sends via SEPA.
Reverse direction — EUR → USD
Same primitives, flipped. Register a USD Offloader Wallet (USDC → USD), on-ramp EUR → USDC into it.Using EURC instead of USDC
For EUR-heavy flows, EURC can reduce slippage. Setcurrency: "eurc" and network to one of base, ethereum, or solana on the Offloader Wallet. The bridge currency becomes EURC instead of USDC; the rest of the integration is identical.What you handle vs. what SpherePay handles
| Responsibility | Owner |
|---|---|
| Creating the customer, bank accounts, and wallet objects | You (integrator) |
| Creating and managing the Offloader Wallet | You (integrator) |
| Initiating the on-ramp transfer | You (integrator) |
| Fiat collection and source-fiat → USDC conversion | SpherePay |
| USDC → destination-fiat conversion and settlement | SpherePay (via Offloader Wallet) |
| Handling failures on either leg | You (integrator) |
Constraints common to all corridors
- Each leg is billed as a separate transfer.
- Offloader Wallets don’t support webhooks today — poll
GET /v2/transfer/{id}to track on-ramp status. - Both source-fiat and destination-fiat verification profiles must be approved before either transfer can be initiated.
Looking ahead — single-call cross-currency transfers
Today every corridor requires setting up an Offloader Wallet plus a separate on-ramp transfer call. SpherePay is working toward a single-call cross-currency transfer API that abstracts the stablecoin hop entirely — you’d send one request with the source and destination currencies, and SpherePay would handle the routing internally. When that ships, the patterns in this guide will still work, but you’ll have the option to consolidate to a single call.Related
Offloader Wallets
How automated stablecoin-to-fiat conversion works.
Transfers API
Full transfer creation and tracking reference.
Supported rails
Per-currency network and rail compatibility.
Cross-border trade finance
Multi-party trade payment patterns.

