Offloader Wallets API now available  View changelog
Offloader Wallet

Create an offloader wallet

Create a new offloader wallet.

POST
/v2/offloader-wallet
AuthorizationBearer <token>

In: header

customerIdstring

The customer who owns the destination bank account.

currencystring

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

Value in"usdc" | "usdt" | "eurc"
networkstring

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

Value in"ethereum" | "sol" | "polygon" | "base" | "avalanche" | "tron"
destinationACH | Wire | SEPA

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

bankAccountIdstring

The ID of the bank account that converted funds will be sent to. See Bank Accounts guide.

currencystring

The fiat currency the crypto will be converted into.

Value in"usd"
networkstring

The banking network used to deliver funds to the destination account. See Supported Rails & Currencies.

Value in"ach"
achReference?string

Reference sent to the receiving institution with ACH transfers, 1-10 characters.

Length1 <= length <= 10
bankAccountIdstring

The ID of the bank account that converted funds will be sent to. See Bank Accounts guide.

currencystring

The fiat currency the crypto will be converted into.

Value in"usd"
networkstring

The banking network used to deliver funds to the destination account. See Supported Rails & Currencies.

Value in"wire"
wireMessage?string

Message sent to the receiving institution with wire transfers, 1-105 characters.

Length1 <= length <= 105
bankAccountIdstring

The ID of the bank account that converted funds will be sent to. See Bank Accounts guide.

currencystring

The fiat currency the crypto will be converted into.

Value in"eur"
networkstring

The banking network used to deliver funds to the destination account. See Supported Rails & Currencies.

Value in"sepa"
sepaReference?string

Reference sent to the receiving institution with SEPA transfers, 6-140 characters.

Length6 <= length <= 140
integratorBpsFeeRate?string

Integrator fee in basis points (0-1000).

returnAddress?string

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

Response Body

curl -X POST "https://api.spherepay.co/v2/offloader-wallet" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "customer_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "currency": "usdc",
    "network": "ethereum",
    "destination": {
      "bankAccountId": "bankAccount_6221e8d4299f4a889bd882255e92f581",
      "currency": "usd",
      "network": "ach",
      "achReference": "REF123"
    }
  }'
{
  "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"
}

{
  "status": 400,
  "detail": "Invalid request parameters",
  "code": "address/invalid",
  "correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}

{
  "status": 404,
  "detail": "Resource not found",
  "code": "resource/not-found",
  "correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}

{
  "status": 422,
  "detail": "Validation failed",
  "code": "validation/failed",
  "correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
  "errors": [
    {
      "detail": "Invalid email format",
      "pointer": "/email"
    },
    {
      "detail": "Name is required",
      "pointer": "/name"
    }
  ]
}