Skip to main content

SphereNet to Fiat (TradFi Off-Ramp)

warning

Heads up: API coming soon.

This API is not currently accessible. The documentation below reflects the intended design and is meant for early familiarization, not active integration.

The example below shows how to transfer funds from SphereNet to a bank account via ACH or wire transfer.

ACH Example

POST v1/transactions
curl https://api.sphere.net/v1/transactions \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Idempotency-Key: <Unique Idempotency Key>' \
-d '{
"amount": "1000.00",
"customer": "cust_alice",
"signature": "base64_encoded_signature",
"source": {
"paymentRail": "spherenet",
"currency": "usd",
"account": "sphere1abc..."
},
"destination": {
"paymentRail": "ach",
"currency": "usd",
"bankAccountId": "ext_123"
}
}'

Response

{
"ok": true,
"object": "object",
"statusCode": 200,
"error": null,
"message": "success",
"data": {
"id": "txn_123",
"state": "processing",
"customer": "cust_alice",
"amount": "1000.00",
"source": {
"paymentRail": "spherenet",
"currency": "usd",
"account": "sphere1abc..."
},
"destination": {
"paymentRail": "ach",
"currency": "usd",
"bankAccountId": "ext_123"
},
"networkData": {
"signature": "2id3YC2jK9G5Wo2phDx4gJVAew8DcY5NAojnVuao8aCxBwKE7k4PoHiH1ViQX8KgB9CKBY2RcKF8PSbBqhqFQXXX",
"slot": 430,
"confirmations": 1,
"commitment": "processed",
"error": null
},
"createdAt": "2024-01-20T19:39:14.316Z",
"updatedAt": "2024-01-20T19:39:14.316Z"
},
"ts": "2024-08-22T16:15:42.707Z",
"request": "request_cdde26b2c0534183a1aaba6baebaec1f"
}

Wire Example

POST v1/transactions
curl https://api.sphere.net/v1/transactions \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Idempotency-Key: <Unique Idempotency Key>' \
-d '{
"amount": "1000.00",
"customer": "cust_alice",
"signature": "base64_encoded_signature",
"source": {
"paymentRail": "spherenet",
"currency": "usd",
"account": "sphere1abc..."
},
"destination": {
"paymentRail": "wire",
"currency": "usd",
"bankAccountId": "ext_123",
"wire_message": "Payment for Invoice #123"
}
}'

📘 The wire_message has strict formatting rules:

  • Maximum 3 lines (separated by "\n")
  • Each line maximum 35 characters
  • Request will be rejected if format is not met