Skip to main content
Create an offloader wallet
curl --request POST \
  --url https://api.spherepay.co/v2/offloader-wallet \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "customerId": "customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "currency": "usdc",
  "network": "ethereum",
  "destination": {
    "bankAccountId": "bankAccount_6221e8d4299f4a889bd882255e92f581",
    "currency": "usd",
    "network": "ach",
    "achReference": "REF123"
  },
  "integratorBpsFeeRate": "100",
  "returnAddress": "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97"
}
'
{
  "id": "wallet_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "customerId": "customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
  "address": "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97",
  "currency": "usdc",
  "network": "ethereum",
  "status": "active",
  "destination": {
    "bankAccountId": "bankAccount_6221e8d4299f4a889bd882255e92f581",
    "currency": "usd",
    "network": "ach",
    "achReference": "REF123"
  },
  "fees": {
    "integratorFee": {
      "bpsRate": "100",
      "currency": "usdc"
    },
    "platformFee": {
      "bpsRate": "30",
      "currency": "usdc"
    }
  },
  "created": "2024-06-15T10:30:00.000Z",
  "updated": "2024-06-15T12:00:00.000Z",
  "returnAddress": "0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97"
}
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.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
customerId
string
required

The customer who owns the destination bank account.

Example:

"customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

currency
enum<string>
required

The crypto currency the offloader wallet accepts for deposits. See Supported Rails & Currencies.

Available options:
usdc,
usdt,
eurc
Example:

"usdc"

network
enum<string>
required

The blockchain network the offloader wallet is on. See Supported Rails & Currencies.

Available options:
sol,
ethereum,
arbitrum,
polygon,
base,
avalanche,
tron
Example:

"ethereum"

destination
ACH · object
required

The bank account destination where converted funds are sent. See Bank Accounts guide.

Example:
{
"bankAccountId": "bankAccount_6221e8d4299f4a889bd882255e92f581",
"currency": "usd",
"network": "ach",
"achReference": "REF123"
}
integratorBpsFeeRate
string

Integrator fee in basis points (0-1000).

Example:

"100"

returnAddress
string

Crypto address where funds are returned on failed transactions. Must be valid for the selected network.

Example:

"0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97"

Response

id
string
required

Unique identifier for the offloader wallet.

Example:

"wallet_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

customerId
string
required

The customer who owns the offloader wallet.

Example:

"customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

address
string
required

The on-chain deposit address for the offloader wallet. Send crypto to this address to trigger automatic conversion.

Example:

"0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97"

currency
enum<string>
required

The crypto currency the offloader wallet accepts for deposits. See Supported Rails & Currencies.

Available options:
usdc,
usdt,
eurc
Example:

"usdc"

network
enum<string>
required

The blockchain network the offloader wallet is on. See Supported Rails & Currencies.

Available options:
sol,
ethereum,
arbitrum,
polygon,
base,
avalanche,
tron
Example:

"ethereum"

status
enum<string>
required

Lifecycle status of the offloader wallet. active accepts deposits and settles; deactivated no longer settles.

Available options:
active,
deactivated
Example:

"active"

destination
ACH · object
required

The bank account destination where converted funds are sent. See Bank Accounts guide.

Example:
{
"bankAccountId": "bankAccount_6221e8d4299f4a889bd882255e92f581",
"currency": "usd",
"network": "ach",
"achReference": "REF123"
}
fees
object
required

Fee configuration for the offloader wallet, including integrator and platform fees.

Example:
{
"integratorFee": { "bpsRate": "100", "currency": "usdc" },
"platformFee": { "bpsRate": "30", "currency": "usdc" }
}
created
string
required

Timestamp when the offloader wallet was created (ISO 8601).

Example:

"2024-06-15T10:30:00.000Z"

updated
string
required

Timestamp when the offloader wallet was last updated (ISO 8601).

Example:

"2024-06-15T12:00:00.000Z"

returnAddress
string

Crypto address where funds are returned on failed transactions. Must be valid for the wallet network. Null if not configured.

Example:

"0x4838B106FCe9647Bdf1E7877BF73cE8B0BAD5f97"

Last modified on June 18, 2026