> ## 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.

# How SpherePay Works: Integration Overview

> Learn the three-step integration model behind SpherePay: create a verified customer, register a transfer instrument, then execute a transfer.

Understanding the SpherePay integration model before writing any code will save you significant time. Every integration — whether you're building on-ramp, off-ramp, or embedding the ramp widget — follows the same core sequence: authenticate, onboard a customer, register a transfer instrument, and execute a transfer. This page explains each step and the key concepts behind them.

## Integration sequence

<Steps>
  <Step title="Authenticate">
    Generate an API key from your SpherePay dashboard. Every API request must include this key as a Bearer token in the `Authorization` header. See [Authentication](/get-started/authentication) for setup instructions.
  </Step>

  <Step title="Create and verify a customer">
    A customer represents the end user or business on whose behalf you are moving money. Before any transfer can be initiated, the customer must pass identity verification — KYC for individuals, KYB for businesses. No transfer can be created without a verified customer record.
  </Step>

  <Step title="Register a transfer instrument">
    Once your customer is verified, link the account or wallet that will serve as the source or destination of the transfer. For on-ramp transfers, you link a bank account as the fiat source and a wallet as the crypto destination. For off-ramp, the direction is reversed.
  </Step>

  <Step title="Execute a transfer">
    With a verified customer and at least one bank account and one wallet registered, call `POST /v2/transfer`. SpherePay handles routing, FX conversion, and settlement from that point forward.
  </Step>
</Steps>

Each step is a hard prerequisite for the next. You cannot initiate a transfer without a verified customer, and you cannot complete a transfer without a registered source and destination instrument.

## Step 1 — Create and verify a customer

A customer in SpherePay represents an end user or business on whose behalf you are moving money. Before a customer can transact, they must pass identity verification:

* **Individual customers** go through a KYC (Know Your Customer) flow. This involves identity document submission and a face liveness check.
* **Business customers** go through a KYB (Know Your Business) flow. This involves business document submission and verification of a director or authorized representative.

Verification is handled through Sumsub, either directly via the SpherePay API or through a hosted KYC/KYB link you send to your customer. Once Sumsub approves the application, SpherePay processes the result and updates the customer's status.

See [Customers & Onboarding](/concepts/onboarding/overview) for full integration guides.

## Step 2 — Register a transfer instrument

Once a customer is verified, register the transfer instrument that will serve as the source or destination of a transfer:

* **Bank accounts** — used as the fiat source for on-ramp or the fiat destination for off-ramp.
* **Wallets** — used as the crypto destination for on-ramp or the crypto source for off-ramp.

A single customer can have multiple bank accounts and wallets registered. You specify which instruments to use when creating each transfer.

## Step 3 — Execute a transfer

With a verified customer and the appropriate instruments in place, call `POST /v2/transfer` to initiate the money movement. You specify the customer, the source instrument, the destination instrument, and the amount. SpherePay handles everything else.

See [Transfers](/concepts/transfers/overview) for full details on transfer types, statuses, and supported rails.

## Key concepts

| Concept          | Description                                                                                                                      |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **Customer**     | An individual or business on whose behalf transfers are executed. Must be KYC/KYB verified before any transfer can be initiated. |
| **Bank Account** | A fiat bank account linked to a customer, used for sending or receiving fiat funds.                                              |
| **Wallet**       | A crypto wallet address linked to a customer, used for sending or receiving stablecoins.                                         |
| **Transfer**     | A single money movement event between a customer's bank account and wallet, in either direction.                                 |

## What SpherePay handles for you

Once you submit a transfer, SpherePay manages the full lifecycle:

* Identity verification orchestration via Sumsub
* Compliance screening and sanctions checks
* Fiat-to-crypto and crypto-to-fiat conversion
* Settlement and payout via the underlying banking and blockchain rails

<Note>
  SpherePay does not maintain a separate sandbox environment. Testing happens directly against production systems using real identity information. This ensures your integration is validated against the same identity verification and banking partnerships your customers will use.
</Note>
