Skip to main content

Currency Exchange

The example below shows how to exchange between different currencies on SphereNet. You can specify a slippage tolerance to protect against exchange rate fluctuations.

Example Request

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": "spherenet",
"currency": "eur",
"account": "sphere1abc..."
},
"slippageTolerance": "0.01"
}'

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": "spherenet",
"currency": "eur",
"account": "sphere1abc..."
},
"networkData": {
"signature": "2id3YC2jK9G5Wo2phDx4gJVAew8DcY5NAojnVuao8aCxBwKE7k4PoHiH1ViQX8KgB9CKBY2RcKF8PSbBqhqFQXXX",
"slot": 430,
"confirmations": 1,
"commitment": "processed",
"error": null
},
"exchangeRate": "0.92",
"slippageTolerance": "0.01",
"createdAt": "2024-01-20T19:39:14.316Z",
"updatedAt": "2024-01-20T19:39:14.316Z"
},
"ts": "2024-08-22T16:15:42.707Z",
"request": "request_cdde26b2c0534183a1aaba6baebaec1f"
}

📘 The slippageTolerance field is optional and represents the maximum acceptable deviation from the expected exchange rate (as a decimal). For example, a value of "0.01" means the transaction will fail if the actual exchange rate differs by more than 1% from the expected rate at execution time.