Transfer
Create Transfer
AuthorizationBearer <token>
JWT Bearer token authentication
In: header
amountstring
The amount for the transfer.
customerstring
The id of the customer for the transfer
Pattern
"^customer_[a-z0-9]+$"
sourceobject
The source of the transfer
destinationobject
The recipient of the transfer.
Response Body
curl -X POST "https://api.sandbox.spherepay.co/v1/transfer" \
-H "Content-Type: application/json" \
-d '{
"amount": "100",
"customer": "customer_1234567890",
"source": {
"id": "wallet_1234567890",
"currency": "usdc",
"network": "ethereum"
},
"destination": {
"id": "bankAccount_1234567890",
"currency": "usd",
"network": "achPush"
}
}'
const body = JSON.stringify({
"amount": "100",
"customer": "customer_1234567890",
"source": {
"id": "wallet_1234567890",
"currency": "usdc",
"network": "ethereum"
},
"destination": {
"id": "bankAccount_1234567890",
"currency": "usd",
"network": "achPush"
}
})
fetch("https://api.sandbox.spherepay.co/v1/transfer", {
body
})
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://api.sandbox.spherepay.co/v1/transfer"
body := strings.NewReader(`{
"amount": "100",
"customer": "customer_1234567890",
"source": {
"id": "wallet_1234567890",
"currency": "usdc",
"network": "ethereum"
},
"destination": {
"id": "bankAccount_1234567890",
"currency": "usd",
"network": "achPush"
}
}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
import requests
url = "https://api.sandbox.spherepay.co/v1/transfer"
body = {
"amount": "100",
"customer": "customer_1234567890",
"source": {
"id": "wallet_1234567890",
"currency": "usdc",
"network": "ethereum"
},
"destination": {
"id": "bankAccount_1234567890",
"currency": "usd",
"network": "achPush"
}
}
response = requests.request("POST", url, json = body, headers = {
"Content-Type": "application/json"
})
print(response.text)
{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"transfer": {
"id": "payout_727a8a9a7e4a46a7839eb5a55424934c",
"number": 4,
"type": "onRamp",
"status": "pending",
"meta": {},
"lookupKey": null,
"amount": "100.00",
"finalAmount": "99.00",
"fee": "1.00",
"source": {
"id": "bankAccount_fdef235388c240eb8b14dad8ed542e53",
"currency": "usd",
"network": "achPush"
},
"funding": {
"id": "bankAccount_15e94e2bfd614a0483afe09f96dae90a",
"currency": "usd",
"network": "achPush"
},
"destination": {
"id": "wallet_5655089bfb164769b085f6fd9f1e25a0",
"currency": "usdc",
"network": "ethereum"
},
"instructions": {
"memo": "BRGUEWY5SEWHESVTMW94",
"imad": null,
"omad": null,
"human": "Send 100 usd via the achPush network from bankAccount_fdef235388c240eb8b14dad8ed542e53 with an account number of ********9389 to bankAccount_15e94e2bfd614a0483afe09f96dae90a with an account number of ********1267. After sending usd, the payout will be funded and 100 of usdc will be on-ramped to wallet_5655089bfb164769b085f6fd9f1e25a0 with an address of 0x7Aa40147383F5c985Bd6D90D8d6832cF9091fcF1 on the ethereum network.",
"machine": "",
"resource": {
"id": "bankAccount_15e94e2bfd614a0483afe09f96dae90a",
"status": "active",
"bankName": "Lead Bank",
"accountHolderName": "Sphere",
"accountName": "Sphere",
"accountNumber": "213796231267",
"customer": "customer_654f29a47e1b46cdb9e241c8eb154c93",
"last4": "1267",
"routingNumber": "101019644",
"bic": null,
"iban": null,
"bankAddressString": "1801 Main St. Kansas City MO 64108, Kansas, United States of America",
"meta": {},
"lookupKey": null,
"currency": "usd",
"walletBankAccounts": [],
"accountType": "checking",
"updated": "2025-01-16T21:05:22.192Z",
"created": "2025-01-16T21:05:22.192Z",
"deleted": null
}
},
"failureReason": null,
"failureReasonExplanation": null,
"mock": false,
"customer": "customer_68f1c089703945e7bbff6f04bf1c5041",
"updated": "2025-04-19T21:46:09.554Z",
"created": "2025-04-19T21:46:09.554Z"
}
},
"ts": "2025-04-19T21:46:09.849Z",
"request": "request_a067bc3693d242fe9cd0aeed3e6dabb2"
}
{
"ok": false,
"object": "error",
"statusCode": 500,
"error": {
"response": "No eligible transfer provider",
"status": 400,
"message": "No eligible transfer provider",
"name": "HttpException"
},
"message": "No eligible transfer provider",
"data": null,
"ts": "2025-04-19T21:51:19.150Z",
"request": "request_7033125868b94b11b4dffb9ba8d86365"
}