Saltar al contenido principal
Create a Transfer
curl --request POST \
  --url https://api.spherepay.co/v2/transfer \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "amount": "500.00",
  "customer": "customer_f31121c389624d3697cbf3ea8830b7a4",
  "source": {
    "type": "bank_account",
    "id": "bankAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "currency": "usd",
    "network": "ach"
  },
  "destination": {
    "type": "wallet",
    "id": "wallet_e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2",
    "currency": "usdc",
    "network": "sol"
  },
  "integratorBpsFeeRate": "10"
}
'
{
  "id": "payout_a1b2c3d4e5f6a7b8c9d0e1f2",
  "type": "on_ramp",
  "status": "pendingFunding",
  "customer": "customer_f31121c389624d3697cbf3ea8830b7a4",
  "externalId": "merchant_ref_123",
  "source": {
    "id": "bankAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
    "type": "bank_account"
  },
  "destination": {
    "id": "wallet_e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2",
    "type": "wallet",
    "currency": "usdc",
    "network": "sol",
    "amount": "498.50",
    "exchangeRate": "1.00"
  },
  "depositAccount": {
    "type": "bank_account",
    "bankDetails": {
      "bankName": "Bank of America",
      "accountHolderName": "SpherePay LLC",
      "accountNumber": "1234567890",
      "routingNumber": 26009593,
      "memo": "BBE6C7EB4A3F"
    }
  },
  "fees": {
    "integratorFee": {
      "fixedAmount": "0.00",
      "bpsRate": "10",
      "bpsAmount": "0.50",
      "totalAmount": "0.50",
      "currency": "usd"
    },
    "platformFee": {
      "fixedAmount": "1.00",
      "bpsRate": "0",
      "bpsAmount": "0.00",
      "totalAmount": "1.00",
      "currency": "usd"
    }
  },
  "created": "2026-04-01T10:00:00.000Z",
  "updated": "2026-04-01T10:00:00.000Z"
}
Usa este endpoint para iniciar un movimiento de dinero para un cliente verificado. SpherePay soporta dos direcciones de transferencia: on-ramp (fiat → cripto) y off-ramp (cripto → fiat). Defines la dirección por los tipos que suministras para source y destination — una fuente bank_account con un destino wallet crea un on-ramp, y el inverso crea un off-ramp. La respuesta incluye instrucciones de depósito que tu cliente necesita para financiar la transferencia.
El cliente debe tener un perfil de verificación approved antes de que puedas crear una transferencia en su nombre.

Autorizaciones

Authorization
string
header
requerido

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

Cuerpo

application/json
customer
string
requerido

The customer's ID.

Pattern: ^customer_[a-z0-9]+$
Ejemplo:

"customer_1234567890"

quoteId
string
requerido

The quote ID from a previously created quote. The transfer uses the locked exchange rate, currency, and network from the quote.

Ejemplo:

"quote_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"

source
object
requerido
destination
object
requerido
externalId
string

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

Ejemplo:

"merchant_ref_123"

Respuesta

id
string
requerido

A unique identifier for transfer.

Pattern: ^payout_[a-z0-9]{24}$
Ejemplo:

"payout_a1b2c3d4e5f6a7b8c9d0e1f2"

type
enum<string>
requerido

The transfer type.

Opciones disponibles:
on_ramp,
off_ramp,
unmatched_deposit
Ejemplo:

"on_ramp"

status
enum<string>
requerido

The transfer status. See Transfer Lifecycle for status definitions and transitions.

Opciones disponibles:
pendingFunding,
pendingReview,
fundsReceived,
processing,
succeeded,
undeliverable,
returned,
pendingRefundInformation,
failed,
canceled,
refunded,
unexpectedError,
failedPrecondition,
expired
Ejemplo:

"pendingFunding"

customer
string
requerido

The customer ID.

Ejemplo:

"customer_b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7"

source
Source Bank Account · object
requerido

The source of an on ramp transfer.

Ejemplo:
{
"id": "bankAccount_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"type": "bank_account"
}
destination
Destination Wallet · object
requerido

The destination of an On-ramp transfer. See Wallets for registration.

depositAccount
Deposit Bank Account · object
requerido

The deposit bank account for an on ramp transfer.

updated
string<date-time>
requerido

The last datetime the transfer was updated.

Ejemplo:

"2021-01-01T00:00:00.000Z"

created
string<date-time>
requerido

The datetime the transfer was created.

Ejemplo:

"2021-01-01T00:00:00.000Z"

externalId
string

The external reference (not stored as unique).

Ejemplo:

"merchant_ref_123"

fees
object

Fee breakdown for the transfer. For floating-rate BRL transfers, this is omitted until settlement is complete.

quote
object

The quote used for this transfer, if any. When present, the locked exchange rate from the quote was applied to the destination amount and exchange rate.

Última modificación el 18 de junio de 2026