Use this endpoint to initiate a money movement for a verified customer. SpherePay supports two transfer directions: on-ramp (fiat → crypto) and off-ramp (crypto → fiat). You define the direction by the types you supply forDocumentation Index
Fetch the complete documentation index at: https://docs.spherepay.co/llms.txt
Use this file to discover all available pages before exploring further.
source and destination — a bank_account source with a wallet destination creates an on-ramp, and the reverse creates an off-ramp. The response includes deposit instructions your customer needs to fund the transfer.
The customer must have an
approved verification profile before you can create a transfer on their behalf.Endpoint
Authentication
All requests require a Bearer token in theAuthorization header.
Request body
Standard transfer (floating rate)
Transfer amount in the source currency. Must have exactly 2 decimal places (e.g.
"250.00"). For BRL transfer limits, see BRL/PIX transfer constraints.The customer’s ID. Must match
^customer_[a-z0-9]+$.Describes where funds originate. Use
bank_account for on-ramp transfers, wallet for off-ramp transfers.Describes where funds are delivered. Use
wallet for on-ramp transfers, bank_account for off-ramp transfers.Fixed fee amount in the source currency, with exactly 2 decimal places. Not supported for BRL transfers — use
integratorBpsFeeRate instead.Integrator fee rate in basis points, expressed as an integer string (e.g.
"10" = 10 bps = 0.10%). This is the only fee mechanism supported for BRL transfers.Your own reference identifier for this transfer. Not enforced as unique by SpherePay.
Transfer with quote
If you created a quote beforehand to lock an exchange rate, providequoteId and customer instead of amount. The locked rate, currency, and network from the quote are used automatically.
The customer’s ID. Must match
^customer_[a-z0-9]+$.ID of a previously created quote.
Source object (same structure as standard transfer, but
currency and network are derived from the quote).Destination object (same structure as standard transfer, but
currency and network are derived from the quote).Your own reference identifier.
Response fields
Unique transfer identifier, prefixed with
payout_.Transfer direction:
on_ramp or off_ramp.Initial transfer status. Newly created transfers start at
pendingFunding. See Transfer Lifecycle for all values.The customer ID associated with this transfer.
Your integrator-defined reference ID, if provided.
Source details.
Destination details.
Instructions the customer must use to fund the transfer (on-ramp only).
Fee breakdown for the transfer.
Quote used for the transfer, if applicable.
ISO 8601 timestamp of transfer creation.
ISO 8601 timestamp of the last status update.
Error codes
| Status | Code | Description |
|---|---|---|
400 | address/invalid | The request body contains invalid fields or an unsupported combination. |
404 | resource/not-found | The customer, wallet, or bank account ID was not found. |
422 | validation/failed | Field validation failed. Check the errors array for details. |

