Get Bulk FX Rates (Atlas)
Overview
The POST /banking/ibans/v2/fx/bulk-rate endpoint enables querying exchange rates for multiple currency pairs simultaneously.
This is particularly useful for platform dashboards, pricing displays, and rate aggregation widgets that need to present live market rates across diverse corridors without issuing separate requests per pair.
Resource Access
- HTTP Method:
POST - Endpoint:
/banking/ibans/v2/fx/bulk-rate - 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 |
|---|---|---|---|
currencyPairs | array | Yes | List of currency pair objects to query. |
currencyPairs[].currencyFrom | string | Yes | 3-letter ISO source currency code. |
currencyPairs[].currencyTo | string | Yes | 3-letter ISO destination currency code. |
paymentMode | string | No | Settlement mode: immediate (default) or later. |
Request Example
{
"currencyPairs": [
{ "currencyFrom": "USD", "currencyTo": "GBP" },
{ "currencyFrom": "USD", "currencyTo": "EUR" },
{ "currencyFrom": "EUR", "currencyTo": "NGN" },
{ "currencyFrom": "GBP", "currencyTo": "KES" }
],
"paymentMode": "immediate"
}
Response
Success Response (200 OK)
{
"success": true,
"rates": [
{
"currencyFrom": "USD",
"currencyTo": "GBP",
"rate": "0.7854"
},
{
"currencyFrom": "USD",
"currencyTo": "EUR",
"rate": "0.9120"
},
{
"currencyFrom": "EUR",
"currencyTo": "NGN",
"rate": "1745.50"
},
{
"currencyFrom": "GBP",
"currencyTo": "KES",
"rate": "165.20"
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates whether the query succeeded. |
rates | array | Array of rate results for each requested currency pair. |
rates[].currencyFrom | string | Source currency code. |
rates[].currencyTo | string | Destination currency code. |
rates[].rate | string | Indicative exchange rate. |
Code Examples
cURL
curl -X POST "https://gateway.ahrvo.network/banking/ibans/v2/fx/bulk-rate" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"currencyPairs": [
{ "currencyFrom": "USD", "currencyTo": "GBP" },
{ "currencyFrom": "USD", "currencyTo": "EUR" }
]
}'
Python
import requests
url = "https://gateway.ahrvo.network/banking/ibans/v2/fx/bulk-rate"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
}
payload = {
"currencyPairs": [
{"currencyFrom": "USD", "currencyTo": "GBP"},
{"currencyFrom": "USD", "currencyTo": "EUR"}
]
}
response = requests.post(url, json=payload, headers=headers)
data = response.json()
for item in data.get("rates", []):
print(f"{item['currencyFrom']} -> {item['currencyTo']}: {item['rate']}")
JavaScript (Node.js)
const axios = require('axios');
const url = 'https://gateway.ahrvo.network/banking/ibans/v2/fx/bulk-rate';
const headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
};
const payload = {
currencyPairs: [
{ currencyFrom: 'USD', currencyTo: 'GBP' },
{ currencyFrom: 'USD', currencyTo: 'EUR' }
]
};
axios.post(url, payload, { headers })
.then(res => console.log('Bulk Rates:', res.data.rates))
.catch(err => console.error(err.response ? err.response.data : err.message));