FX Markup Functionality
Automate your profit margins by choosing between universal markup or high-precision, trade-by-trade dynamic markup pricing
๐ฑ FX Markup Functionality
Automate your platform's profit margins by dynamically marking up currency spreads.
The FX Markup API empowers Partners to effortlessly automate revenue sharing. By applying a structured margin to the base Verto exchange rate for your Sub-Accounts, you gain programmatic control over your profitability.
We offer three robust integration paths to accommodate your exact commercial model:
- Universal Markup Model: Set a static margin percentage across all remote transactions statefully.
- Dynamic Margin Model (
currency_pair): Inject custom spreads per individual currency route statefully. - Trade-by-Trade Execution: Pass an explicit markup object dynamically per transaction payload for absolute precision.
๐ก Core Value Proposition
- Automated Profitability: Systematically capture the spread without delayed manual reconciliation.
- Absolute Flexibility: Switch between continuous state models and trade-by-trade overrides instantly.
- Real-Time Calculation: Client Rates are instantly generated upon request, guaranteeing zero latency.
๐ How Markup Revenue is Calculated
When a margin is applied to a currency exchange, a new Client Rate is dynamically executed.
| Component | Description |
|---|---|
| The Base Buy Rate | The raw wholesale exchange rate cost provided by VertoFX. |
| The Margin Spread | The exact fractional difference between the Verto Buy Rate and your finalized Client Rate. |
| Your Net Profit | You are paid a direct share of this spread based strictly on your partnership agreement. |
๐ Prerequisites
Before integrating the FX Markup endpoints, ensure you possess:
- An active Atlas for Platforms production account.
- A valid, secure
API Keyprovisioned withMarkup Controlscoping.
๐ฐ๏ธ The Suggested Implementation Workflow
To ensure your customers see consistent pricing, we recommend this two-step "Quote-to-Execution" pattern:
- The Quote Stage: Call the
Get Rate (New)API to fetch the authoritative Verto rate token. On your own system, calculate your final "Client Rate" by adding your desired margin to the Verto rate, then display it in your checkout UI. - The Execution Stage: Pass that same
fxMarkuppercentage into the/fx/paymentsexecution call. Verto will perform the same calculation on our backend, ensuring the final settled amount matches exactly what your customer was shown.
๐ ๏ธ Step-by-Step Implementation
All API requests require robust Bearer authentication using your generated credentials.
Option 1: Stateful Universal & Dynamic Configurations
Ideal for standard marketplace deployments. You push a configuration payload to the /fx/markup/config endpoint, and Verto automatically pads every sub-account foreign exchange request behind the scenes.
curl --request POST \
--url https://api-exchange-now-sandbox.vertofx.com/fx/markup/config \
--header 'Authorization: Bearer <SECURE_REDACTED_API_TOKEN>' \
--header 'content-type: application/json' \
--data '
{
"markupType": "universal",
"markupPerc": 1.5
}'Option 2: Trade-by-Trade Execution (Granular Overrides)
Ideal for high-precision brokerage. You can dynamically execute custom markups at the exact moment of execution by passing an explicit fxMarkup object directly inside your /fx/payments execution payload.
curl --request POST \
--url https://api-exchange-now-sandbox.vertofx.com/fx/payments \
--header 'Authorization: Bearer <SECURE_REDACTED_API_TOKEN>' \
--header 'content-type: application/json' \
--data '
{
"paymentType": "convertWalletPayout",
"sourceWalletId": 11435,
"sourceAmount": 4800,
"vfxToken": "<YOUR_VFX_TOKEN>",
"targetAccountId": 23181,
"fxMarkup": {
"markupType": "currency_pair",
"markupPerc": 2.5
}
}'๐๏ธ Controlling the "Fix Side" (Buy vs. Sell)
The New Exchange Service API handles "Fixing" based purely on which volume parameter you populate in the payload:
- To Fix Source (Fix Sell): Populate
sourceAmount. You define what you want to spend; the recipient receives the remainder after fees and markup. - To Fix Target (Fix Buy): Populate
targetAmount. The API ensures the recipient receives exactly this volume (e.g., exactly 1,000 EUR) and calculates the necessary wallet deduction accordingly.
๐จ Markup Hierarchy & Precedence
To ensure absolute flexibility, Verto uses a "Specific-Wins" logic:
- Global/Corridor Levels: Used as the DEFAULT base for all sub-account trades.
- Trade-Level Override: If you pass an
fxMarkupobject in your/fx/paymentscall, it overrides any existing defaults. This allows you to differentiate pricing for specific high-value trades or promotional cohorts.
โ
Verifying Transaction Margins
Once a trade is created, the 200 OK response from the Create FX Trade endpoint includes clear auditing fields to simplify your reconciliation.
| Key Field | Description |
|---|---|
fxMarkupPerc | The explicit fractional percentage (e.g., 2.5) applied to this trade. |
PRPreFXMarkupRate | The original wholesale Verto rate before your margin was added. |
amountFrom & amountTo | The final executed volumes on both ends of the transaction. |
โญ๏ธ Next Configuration Steps
| Set Markup Configuration | Generate Custom FX Trade |
|---|---|
| Review technical specifications for stateful POST configs. | Review endpoint details for the dynamic fxMarkup payload. |
Updated 2 months ago
