Skip to main content

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

HeaderValueRequiredDescription
AuthorizationBearer {access_token}YesJWT Bearer access token
Content-Typeapplication/jsonYesRequest payload format
Acceptapplication/jsonYesResponse payload format

Request Body

Request Fields

FieldTypeRequiredDescription
currencyFromstringYes3-letter ISO source currency code (e.g. USD).
currencyTostringYes3-letter ISO destination currency code (e.g. GBP).
amountnumberYesAmount to exchange with up to two decimal places. Must be greater than zero.
amountCurrencystringYesThe currency corresponding to the specified amount (e.g. USD).
paymentModestringNoSettlement 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

FieldTypeDescription
successbooleanIndicates whether the quote was generated successfully.
ratestringThe guaranteed exchange rate between source and destination currencies.
vfx_tokenstringRate-lock token required by POST /banking/ibans/v2/fx/payments to execute the conversion.
expirystring (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));

Interactive API Explorer