Get FX Quote (Atlas)
Overview
The POST /banking/ibans/v2/fx/quote endpoint retrieves a live, executable foreign exchange rate quote for a specified currency pair.
Upon a successful quote request, the service returns a vfx_token. This token locks the agreed exchange rate for a short execution window (typically 30 seconds). Supply this vfxToken when calling POST /banking/ibans/v2/fx/payments to ensure the trade executes at the locked price without slippage.
Resource Access
- HTTP Method:
POST - Endpoint:
/banking/ibans/v2/fx/quote - Authentication: Bearer token required
Request Headers
| Header | Value | Required | Description |
|---|---|---|---|
Authorization | Bearer {access_token} | Yes | JWT Bearer access token |
Content-Type | application/json | Yes | Request payload format |
Accept | application/json | Yes | Response payload format |
Request Body
Request Fields
| Field | Type | Required | Description |
|---|---|---|---|
currencyFrom | string | Yes | 3-letter ISO source currency code (e.g. USD). |
currencyTo | string | Yes | 3-letter ISO destination currency code (e.g. GBP). |
amount | number | Yes | Amount to exchange with up to two decimal places. Must be greater than zero. |
amountCurrency | string | Yes | The currency corresponding to the specified amount (e.g. USD). |
paymentMode | string | No | Settlement mode: immediate (default) or later. |
Request Example
{
"currencyFrom": "USD",
"currencyTo": "GBP",
"amountCurrency": "USD",
"amount": 10000.00,
"paymentMode": "immediate"
}
Response
Success Response (200 OK)
{
"success": true,
"rate": "0.7854",
"vfx_token": "vfx_9f83a28c11e04812b7fa128471203",
"expiry": "2026-09-16T02:00:30.000Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates whether the quote was generated successfully. |
rate | string | The guaranteed exchange rate between source and destination currencies. |
vfx_token | string | Rate-lock token required by POST /banking/ibans/v2/fx/payments to execute the conversion. |
expiry | string (ISO-8601) | Timestamp until which the vfx_token and rate remain valid. |
Error Responses
- 400 Bad Request: Invalid currency code, non-positive amount, or unsupported currency pair.
- 401 Unauthorized: Missing or expired Bearer token.
- 500 Internal Server Error: Liquidity provider connectivity failure.
Code Examples
cURL
curl -X POST "https://gateway.ahrvo.network/banking/ibans/v2/fx/quote" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"currencyFrom": "USD",
"currencyTo": "GBP",
"amountCurrency": "USD",
"amount": 10000.00
}'
Python
import requests
url = "https://gateway.ahrvo.network/banking/ibans/v2/fx/quote"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
}
payload = {
"currencyFrom": "USD",
"currencyTo": "GBP",
"amountCurrency": "USD",
"amount": 10000.00
}
response = requests.post(url, json=payload, headers=headers)
data = response.json()
print("Rate:", data.get("rate"))
print("VFX Token:", data.get("vfx_token"))
JavaScript (Node.js)
const axios = require('axios');
const url = 'https://gateway.ahrvo.network/banking/ibans/v2/fx/quote';
const headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json',
'Accept': 'application/json'
};
const payload = {
currencyFrom: 'USD',
currencyTo: 'GBP',
amountCurrency: 'USD',
amount: 10000.00
};
axios.post(url, payload, { headers })
.then(res => {
console.log('Rate:', res.data.rate);
console.log('Token:', res.data.vfx_token);
})
.catch(err => console.error(err.response ? err.response.data : err.message));