Effortless customer verification now available   View changelog
Sphere Paysphere
Transfer

Create a Transfer

Create a new transfer

POST
/v2/transfer
AuthorizationBearer <token>

In: header

amountstring

The transfer amount (denominated in source currency).

Match^\d+(\.\d{2})?$
customerstring

The customer's ID.

Match^customer_[a-z0-9]+$
integratorFixedFee?string

The integrator fixed fee amount (denominated in source currency).

Match^\d+(\.\d{2})?$
integratorBpsFeeRate?string

The integrator BPS fee rate. The BPS rate should be an integer represented as a string

Match^\d+$
externalId?string

Integrator-defined external reference. The value is not stored as unique.

sourceSource Wallet | Source Bank Account

The source of an Off-ramp transfer.

typestring

The source type: wallet.

Value in"wallet"
idstring

The source wallet ID.

Match^wallet_[a-z0-9]+$
currencystring

The source currency for an Off-ramp transfer. This should be the currency of the wallet.

Value in"usdc" | "usdt"
networkstring

The source network of the customer's wallet.

Value in"sol" | "fogo" | "ethereum" | "arbitrum" | "polygon" | "base" | "avalanche" | "tron"

The source of an On-ramp transfer.

typestring

The source type: bank_account.

Value in"bank_account"
idstring

The source bank account ID.

Match^bankAccount_[a-z0-9]+$
currencystring

The source currency for an On-ramp transfer. This should be the currency of the bank account.

Value in"usd" | "eur"
networkstring

The source network of the bank account.

Value in"ach" | "wire" | "sepa"
destinationDestination Wallet | Destination Bank Account

The destination of an On-ramp transfer.

typestring

The destination type: wallet.

Value in"wallet"
idstring

The destination wallet ID.

Match^wallet_[a-z0-9]+$
currencystring

The destination currency for an On-ramp transfer. This should be the currency of the wallet.

Value in"usdc" | "usdt"
networkstring

The destination network of the customer's wallet.

Value in"sol" | "fogo" | "ethereum" | "arbitrum" | "polygon" | "base" | "avalanche" | "tron"

The destination bank account for transfers.

typestring

The destination type: bank_account.

Value in"bank_account"
idstring

The destination bank account ID.

currencystring

The destination currency: [usd, eur].

Value in"usd" | "eur"
achReference?string

The ACH reference.

Lengthlength <= 10
wireMessage?string

The wire message.

Lengthlength <= 105
sepaReference?string

The SEPA reference: string, max 140 characters.

Lengthlength <= 140
networkstring

The destination network: [wire, ach, achPush, achPull, achSameDay, sepa].

Value in"ach" | "wire" | "sepa"

Response Body

curl -X POST "https://api.spherepay.co/v2/transfer" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": "100.00",
    "customer": "customer_1234567890",
    "source": {
      "type": "wallet",
      "id": "wallet_1234567890abcdef1234567890abcdef12345678",
      "currency": "usdc",
      "network": "sol"
    },
    "destination": {
      "type": "wallet",
      "id": "wallet_1234567890abcdef1234567890abcdef12345678",
      "currency": "usdc",
      "network": "sol"
    }
  }'
{
  "id": "payout_123456abcdefg",
  "externalId": "merchant_ref_123",
  "type": "on_ramp",
  "status": "pendingFunding",
  "customer": "customer_123abc...",
  "fees": {
    "integratorFee": {
      "fixedAmount": "1.00",
      "bpsRate": "10",
      "totalAmount": "1.10",
      "currency": "usd"
    },
    "platformFee": {
      "fixedAmount": "2.00",
      "bpsRate": "10",
      "totalAmount": "2.10",
      "currency": "usd"
    }
  },
  "source": {
    "id": "bank_account_123abc...",
    "type": "bank_account"
  },
  "destination": {
    "id": "wallet_1234567890abcdef1234567890abcdef12345678",
    "type": "wallet",
    "currency": "usdc",
    "network": "sol",
    "amount": "string",
    "exchangeRate": "1.00"
  },
  "depositAccount": {
    "type": "bank_account",
    "bankDetails": {
      "bankName": "Bank of America",
      "accountHolderName": "John Doe",
      "accountType": "savings",
      "accountNumber": "1234567890",
      "routingNumber": "1234567890",
      "bic": "1234567890",
      "iban": "1234567890",
      "bankAddress": "123 Main St, Anytown, USA",
      "beneficiaryAddress": "123 Main St, Anytown, USA",
      "memo": "BBE6C7E..."
    }
  },
  "updated": "2021-01-01T00:00:00.000Z",
  "created": "2021-01-01T00: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"
    }
  ]
}