Skip to main content

Set FX Markup Configuration (Atlas)

Overview

The POST /banking/ibans/v2/fx/markup/config endpoint allows organizations to define custom FX markup percentages applied to conversions.

Markups can be configured at multiple scopes:

  • universal: A global spread percentage applied across all currency pairs for the company.
  • currency_pair: A corridor-specific spread percentage (e.g. only on USD to EUR).
  • sub_client / partner_refereel: Markups applied to transactions originating from specific platform sub-accounts.

Resource Access

  • HTTP Method: POST
  • Endpoint: /banking/ibans/v2/fx/markup/config
  • Authentication: Bearer token required (Client:At Ahrvo Rate:write, Admin:Exchange Now:write)

Request Headers

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

Request Body

Request Fields

FieldTypeRequiredDescription
markupPercnumberYesPercentage markup to apply (e.g. 1.5, min 0, max 10).
markupTypestringYesConfiguration scope: universal, currency_pair, sub_client, partner_refereel.
currencyFromstringConditionalSource currency (required when markupType is currency_pair).
currencyTostringConditionalTarget currency (required when markupType is currency_pair).

Request Examples

1. Currency Pair Markup

{
"markupType": "currency_pair",
"markupPerc": 1.25,
"currencyFrom": "USD",
"currencyTo": "EUR"
}

2. Universal Company Markup

{
"markupType": "universal",
"markupPerc": 0.75
}

Response

Success Response (200 OK)

{
"success": true
}

Error Responses

  • 400 Bad Request: Invalid markup percentage (exceeds 10% maximum or negative) or invalid currency code.
  • 401 Unauthorized: Missing or expired Bearer token.
  • 403 Forbidden: Insufficient administrative permissions to set markup configurations.
  • 500 Internal Server Error: Internal platform error.

Code Examples

cURL

curl -X POST "https://gateway.ahrvo.network/banking/ibans/v2/fx/markup/config" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"markupType": "currency_pair",
"markupPerc": 1.25,
"currencyFrom": "USD",
"currencyTo": "EUR"
}'

Python

import requests

url = "https://gateway.ahrvo.network/banking/ibans/v2/fx/markup/config"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json",
"Accept": "application/json"
}

payload = {
"markupType": "currency_pair",
"markupPerc": 1.25,
"currencyFrom": "USD",
"currencyTo": "EUR"
}

response = requests.post(url, json=payload, headers=headers)
print("Markup Configured:", response.json().get("success"))

JavaScript (Node.js)

const axios = require('axios');

const url = 'https://gateway.ahrvo.network/banking/ibans/v2/fx/markup/config';
const headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
};

const payload = {
markupType: 'currency_pair',
markupPerc: 1.25,
currencyFrom: 'USD',
currencyTo: 'EUR'
};

axios.post(url, payload, { headers })
.then(res => console.log('Success:', res.data.success))
.catch(err => console.error(err.response ? err.response.data : err.message));

Interactive API Explorer