Create a Transfer
Create a new transfer
In: header
The transfer amount (denominated in source currency).
^\d+(\.\d{2})?$The customer's ID.
^customer_[a-z0-9]+$The integrator fixed fee amount (denominated in source currency).
^\d+(\.\d{2})?$The integrator BPS fee rate. The BPS rate should be an integer represented as a string
^\d+$Integrator-defined external reference. The value is not stored as unique.
The source of an Off-ramp transfer.
The source type: wallet.
"wallet"The source wallet ID.
^wallet_[a-z0-9]+$The source currency for an Off-ramp transfer. This should be the currency of the wallet.
"usdc" | "usdt"The source network of the customer's wallet.
"sol" | "fogo" | "ethereum" | "arbitrum" | "polygon" | "base" | "avalanche" | "tron"The source of an On-ramp transfer.
The source type: bank_account.
"bank_account"The source bank account ID.
^bankAccount_[a-z0-9]+$The source currency for an On-ramp transfer. This should be the currency of the bank account.
"usd" | "eur"The source network of the bank account.
"ach" | "wire" | "sepa"The destination of an On-ramp transfer.
The destination type: wallet.
"wallet"The destination wallet ID.
^wallet_[a-z0-9]+$The destination currency for an On-ramp transfer. This should be the currency of the wallet.
"usdc" | "usdt"The destination network of the customer's wallet.
"sol" | "fogo" | "ethereum" | "arbitrum" | "polygon" | "base" | "avalanche" | "tron"The destination bank account for transfers.
The destination type: bank_account.
"bank_account"The destination bank account ID.
The destination currency: [usd, eur].
"usd" | "eur"The ACH reference.
length <= 10The wire message.
length <= 105The SEPA reference: string, max 140 characters.
length <= 140The destination network: [wire, ach, achPush, achPull, achSameDay, sepa].
"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"
}
]
}