Onramper Accounts
Learn how to automate fiat-to-stablecoin transfers using SpherePay’s Onramper Accounts, simplifying your payment infrastructure.
Overview
SpherePay's Onramper Account provides a streamlined, automatic solution to convert fiat currency into stablecoins directly. Designed specifically for developers and businesses integrating with SpherePay, Onramper Accounts leverage dedicated virtual bank accounts linked a specific wallet address, ensuring a seamless fiat-to-stablecoin conversion experience.
High-level workflow
When you set up a virtual account via API, SpherePay creates a unique virtual bank account associated directly with a specific wallet address. Each incoming transfer to this bank account automatically triggers an instant conversion from fiat (USD) into a supported stablecoin (USDC or USDT), which is then immediately delivered to the linked wallet address.
Note
Onramper Accounts are only available via API and are a separate product from SpherePay's Transfers API (Core) and do not share the same data or API endpoints. Any transfers to an Onramper Account are not subjected to the same operation as a normal transfer. Thus, features such as webhooks, Transfer Fees and bank account creation via API are not supported.
Supported Rails & Currencies
Currently, SpherePay supports:
- Fiat Currency: USD on ACH, Wire, EUR on SEPA
- Stablecoins:
- USDC on Arbitrum, Avalanche, Base, Ethereum, Polygon, Solana
- USDT on Ethereum, Tron
Supported Regions
SpherePay Virtual Accounts are available to end-users globally, except in regions sanctioned or otherwise prohibited by law.
Requirements before creating a Virtual Account
To successfully set up and utilize a Virtual Account, follow these steps:
1. Merchant Setup
- Ensure your business has an active SpherePay account. Please refer to the Getting Access guide for more information.
- Complete the SpherePay KYC (Know Your Customer) process.
2. Customer Setup (if applicable)
If you're opening a Virtual Account for your customers, ensure each customer:
- Is registered via the Create Customer API.
- Has accepted the Terms of Service (TOS).
- Has signed the Customer's Agreement (for business customers only).
- Has completed Know Your Customer (KYC) verification.
- Has an active Customer Status of
approved.
Virtual Account APIs
Create Virtual Account
https://api.spherepay.co/v2/virtual-accounthttps://api.sandbox.spherepay.co/v2/virtual-accountFor full request/response details, see the Create Virtual Account API Reference.
Request Example
{
"customerId": "customer_1ab2c3d4",
"sourceCurrency": "USD",
"destinationCurrency": "USDC",
"network": "ethereum",
"walletAddress": "0x1234...abcd"
}Response Example
{
"id": "virtualAccount_987xyz654",
"active": true,
"fees": {
"totalBpsRate": "20",
"integratorFee": {
"bpsRate": "10"
},
"platformFee": {
"bpsRate": "10"
}
},
"depositInstructions": {
"currency": "USD",
"bankName": "Bank of Example",
"bankAccountNumber": "000123456789",
"bankRoutingNumber": "1234567890",
"bankBeneficiaryName": "John Doe",
"bankBeneficiaryAddress": "123 Main St, Anytown, USA"
},
"destination": {
"currency": "USDC",
"walletAddress": "0x1234...abcd",
"network": "ethereum"
},
"created": "2025-04-20T21:49:46.697Z",
"updated": "2025-04-20T21:50:18.854Z"
}Virtual Account Retrieval (API)
https://api.spherepay.co/v2/virtual-account/{virtual_account_id}https://api.sandbox.spherepay.co/v2/virtual-account/{virtual_account_id}For full request/response details, see the Get a Virtual Account API Reference.
Virtual Account Update (API)
https://api.spherepay.co/v2/virtual-account/{virtual_account_id}https://api.sandbox.spherepay.co/v2/virtual-account/{virtual_account_id}For full request/response details, see the Update Virtual Account API Reference.
List Virtual Accounts
https://api.spherepay.co/v2/virtual-accounthttps://api.sandbox.spherepay.co/v2/virtual-accountFor full request/response details, see the List Virtual Accounts API Reference.
Deactivate Virtual Account
https://api.spherepay.co/v2/virtual-account/{virtual_account_id}/deactivatehttps://api.sandbox.spherepay.co/v2/virtual-account/{virtual_account_id}/deactivateFor full request/response details, see the Deactivate Virtual Account API Reference.
Reactivate Virtual Account
https://api.spherepay.co/v2/virtual-account/{virtual_account_id}/reactivatehttps://api.sandbox.spherepay.co/v2/virtual-account/{virtual_account_id}/reactivateFor full request/response details, see the Reactivate Virtual Account API Reference.
Transaction Timing
Transfers to your virtual bank account are converted instantly once funds arrive, excluding the transfer time from the customer's bank to the virtual account itself.
Virtual Account verification
When customers link their Virtual Account to another financial platform (e.g. Fintech app, payroll provider, etc.), they may need to verify ownership via:
- Micro-deposit verification - A small amount (< $1) is deposited and withdrawn to confirm the account is owned by the customer.
- Challenge deposit verification - One or more small deposits are made, and the customer must enter the exact amounts (e.g. $0.56, $0.84).
Notes:
- No onramping - Deposits under $1 are always treated as verification, not payments or transfers.
- Virtual Accounts only - Shared memo/static deposit flows don't support micro-deposit verification.
- Events generated - Each attempt creates a micro-deposit event with amount, source bank details, and timestamp, which you can display to your user.
Security and Compliance
SpherePay's Virtual Accounts strictly adhere to comprehensive KYB and KYC verification protocols to ensure compliance and security.
Additional Notes
- Currently, SpherePay Virtual Accounts do not support webhook notifications.
- To maintain operational simplicity and reliability, event ordering or additional sandbox testing environments for Virtual Accounts are not supported or required.
- You can list transfers for a specific virtual account using the List Virtual Account Transfers API Reference.
Information
For detailed information regarding applicable fees and transaction limits, please contact your SpherePay sales representative.