Skip to main content

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.

Create an Offloader Wallet to give a customer a dedicated on-chain address tied to a specific bank account. Any stablecoin sent to that address is automatically converted to the linked fiat currency and forwarded — no per-transfer API call required. Each customer should have their own wallet; sharing an address across customers makes deposit attribution unreliable.

Endpoint

POST https://api.spherepay.co/v2/offloader-wallet

Authentication

All requests must include a Bearer token in the Authorization header.
Authorization: Bearer <token>

Request parameters

customerId
string
required
The ID of the customer who owns the destination bank account.
currency
string
required
The stablecoin the wallet accepts for deposits.Accepted values: "usdc" | "usdt" | "eurc"
network
string
required
The blockchain network the wallet is deployed on.Accepted values: "sol" | "ethereum" | "arbitrum" | "polygon" | "base" | "avalanche" | "tron"
destination
object
required
The bank account destination where converted funds are sent. The shape of this object depends on the payout rail.
integratorBpsFeeRate
string
Your integrator fee in basis points. Accepted range: 0–1000.
returnAddress
string
On-chain address to return funds to if a transfer fails. Must be valid for the selected network.
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "currency": "usdc",
    "network": "ethereum",
    "destination": {
      "bankAccountId": "bankAccount_6221e8d4299f4a889bd882255e92f581",
      "currency": "usd",
      "network": "ach",
      "achReference": "REF123"
    }
  }'

Response fields

id
string
Unique identifier for the offloader wallet.
customerId
string
The ID of the customer who owns this wallet.
address
string
The on-chain wallet address where the customer sends stablecoins.
currency
string
The stablecoin this wallet accepts (e.g., "usdc").
network
string
The blockchain network this wallet is deployed on (e.g., "ethereum").
destination
object
The bank account destination configuration, including bankAccountId, currency, network, and any rail-specific reference field.
fees
object
returnAddress
string
The on-chain address used for returning funds on failed transactions.
created
string
ISO 8601 timestamp of when the wallet was created.
updated
string
ISO 8601 timestamp of the last update to the wallet.
{
  "id": "wallet_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "customerId": "customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "address": "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97",
  "currency": "usdc",
  "network": "ethereum",
  "destination": {
    "bankAccountId": "bankAccount_6221e8d4299f4a889bd882255e92f581",
    "currency": "usd",
    "network": "ach",
    "achReference": "REF123"
  },
  "fees": {
    "integratorFee": {
      "bpsRate": "100",
      "currency": "usdc"
    },
    "platformFee": {
      "bpsRate": "30",
      "currency": "usdc"
    }
  },
  "returnAddress": "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97",
  "created": "2024-06-15T10:30:00.000Z",
  "updated": "2024-06-15T12:00:00.000Z"
}
Last modified on May 12, 2026