Skip to main content
This guide walks you through the complete sequence for your first SpherePay integration: create a customer, register a bank account and wallet, then execute an on-ramp transfer. By the end, you’ll have issued real API calls against every core resource in the SpherePay model. All requests go to the base URL: https://api.spherepay.co/

Prerequisites

1

Create a customer

Create an individual customer by sending a POST request to /v2/customer. Include the customer’s contact details and tax identification information.
A successful response returns the newly created customer object with a system-generated id and a verificationProfiles array showing the KYC status as incomplete:
The customer must complete KYC verification and reach an approved status before you can create a transfer on their behalf. Onboarding is a hard prerequisite for all transfers. See the Individual KYC Flow or Business KYB Flow for next steps.
2

Register a bank account

Once your customer is KYC-approved, register the bank account that will serve as the fiat source for an on-ramp transfer. Send a POST request to /v2/bank-account with the customer ID and account details.
A successful response returns the bank account object with a system-generated id:
3

Register a wallet

Register the crypto wallet that will serve as the destination for the on-ramp transfer. Send a POST request to /v2/wallet with the customer ID and wallet details.
A successful response returns the wallet object with a system-generated id:
4

Create an on-ramp transfer

With a verified customer, a bank account, and a wallet all registered, you can now create an on-ramp transfer. Specify the bank account as the source and the wallet as the destination.
A successful response returns the transfer object. The initial status will be pendingFunding while SpherePay waits for funds:
5

Track transfer status

Poll the transfer status by sending a GET request to /v2/transfer/{id} using the id returned in the previous step.
The response returns the transfer object with an updated status field. A transfer moves through pendingFundingfundsReceivedprocessingsucceeded (or failed if an error occurs). See Transfer Lifecycle for all possible statuses and their meanings.
Last modified on June 5, 2026