Currency Exchange (FX) Rate Management
Introduction
This article details how the AppXite Platform supports multi-tier currency conversion, enabling Partners at each level to specify exchange rates. Vendor-specific FX rates can also be configured, allowing Partners to apply different rates based on Vendor contracts. This article also describes the process for configuring, editing, and deleting currency exchange rates within an Organization's system.
In this article:
- Support for any Currency
- Custom Provider for FX Rate
- Dynamic Currency Pricing Updates
- Calculation Scenarios
- Configured vs. Default Exchange Rates
- Fixed FX rate rule
- Editing Currency Exchange Rates
- Deleting Currency Exchange Rate Configurations
- FAQ
For example, a Distributor can set a foreign exchange rate between the Distributor and Seller. The Seller, on their level, can also set the foreign exchange rate between the Seller and Customer and have the ability to invoice the Customer in a different currency than the Invoice provided by the Distributor. If Vendor-specific rates are configured, these will take priority over the default rate.
Currency conversion is applied to both: Cost Price and Suggested Retail Price. If Distributor has configured prices based on Cost Price while Seller has configured prices based on Suggested Retail Price full currency conversion chain is done for both prices.
The starting point will always be the contract currency between the Vendor and the direct billing Partner. For example, if a Distributor or direct Seller has an agreement with Microsoft in SEK, the system will calculate the incoming Invoice in SEK currency. The user can now configure a specific rate for a Vendor, and if no Vendor-specific rate exists, the default rate will be used. In the next step, if the Distributor or direct Seller wants to invoice their Partners in a different currency, they can specify the exchange rate under settings between SEK and any other currency, and the system will use that rate for Invoice calculation and display in the catalog.
Support for any Currency
Currency exchange rate management includes the ability to use available currencies provided by provider, as an example:
Users can select from a dropdown list of Vendors where a contract exists for the Organization. Users can configure foreign exchange (FX) rates for all Vendors or specify custom rates for individual Vendors. Before configuring a Vendor-specific FX rate, "All" rate must first be created. The Platform will display an error message if a user tries to add a Vendor-specific rate without configuring an "All" rate first:
"Please create first currency rate configuration for All Vendors for the selected currency pair."
If a user attempts to delete an "All" configuration before adding Vendor-specific rates, an error message will appear:
"Sorry, not possible to delete before same currency pair exists for specific Vendor."
In case the required currency is not available under Custom currency source it can be requested to AppXite support by sending email to support@appxite.com.
| Source | Update type | Update frequency | In effect | Available currencies |
|---|---|---|---|---|
| ECB | Automatic | Daily | Immediately | Limited |
| Currencylayer | Automatic | Daily | Immediately | All |
| Custom | Manual or API | Any | Immediately | All |
Custom Provider for FX Rate
Sellers can integrate their own FX rate provider of choice using AppXite Partner API. Alternatively, it is possible to simply send the seller's own custom currency exchange rates from the seller's other system using the same API.
1. Select the "Settings" tab, on this page, select Currency & Payments -> Currency
2. Select the "Add" button from the bottom
3. Select the "Custom" option from the dropdown
Dynamic Currency Pricing Updates
Dynamic price update for ECB and Currency Layer:
In case ECB or Currency Layer is used as a source for currency rate, it will update the Price in catalog daily. This is useful functionality for Partners who are exposed to substantial currency fluctuation and thus can hedge their exchange rate exposure. In case the Partner requires a fixed rate for a month then Custom rate source should be used. Custom rate source is manually updated by Partner and thus not subject to dynamic update.
Vendor-specific FX rates are now included in these dynamic pricing updates. Vendor-specific rates are also factored into Invoice, Billing, Subscription, Catalog, and quote calculations, providing additional flexibility when dealing with multiple contracts.
Currency Layer rates are updated once daily at the start of the day, custom rates are immediately updated after editing on the UI, and ECB rates are updated once daily at 16:00 Central European Time.
Currency rate fixed term:
In case the currency exchange rate is updated it will be applied to UI and Invoice calculation.
To lock the exchange rate to the Subscription start date or renewal date, the fixed FX rate rule can be configured per Organization. See Fixed FX rate rule for details.
In case Custom Rate source will be updated it will be used for Invoice calculation and Price display in Product catalog.
Small discrepancies in invoices and shown prices for subscription:
In some cases currency exchange chain can cause small discrepancies in Invoices and displayed prices.
For example: Price in pricelists is 100 USD and there are no mark-ups applied in the chain. Vendor to Distributor contract currency is in USD, Distributor invoices Seller in ZAR and Seller invoices the Customer in USD. In this case, Invoice contract chain would be USD -> ZAR -> USD.
If currently Price for Subscription for Customer is 100 USD, then Price for Subscription for Customer is calculated from USD to ZAR and then again to USD. In such cases result can have small difference because of rounding e.g., 99.8 or 100.2 USD.
When currency exchange rate is not configured:
In case currency exchange rates are not configured, but Invoice contract chain requires a currency conversion system will use Currency Layer foreign exchange rate as a default option.
Corrections from the past period:
If Invoice contract currency is changed it will affect corrections. Corrections for invoiced amount from past period will now be calculated in the updated currency.
Currency Code in Seller onboarding form:
In Seller onboarding form Partners have available field "Currency Code". Updating this field does not change Invoice contract currency. Seller will inherit Invoice contract currency from the parent contract which is between Vendor and direct bill Partner.
Taking expired Pricing Plan if correct one is not found:
Platform requests latest pricing plan, in case there has been an error with pricing plan insert system logic is to take pricing plan from the last period where it exists. This is only as a fallback option in case there has been a bug with Price insert.
Adding and deleting currency exchange rate configurations:
If you add currency exchange rate configuration it will affect prices in catalogue.
If you delete the exchange rate configuration, it will be applied until next day.
Calculation Scenarios
Example 1
Vendor (USD) –> Distributor (BRL) –> Seller (USD) –> Customer Calculation: What will be the Price charged for 100 USD of Product to the end Customer, assuming a Markup between Distributor and Seller is 5% and between Seller and end Customer 3%. The rate for the currency pair USD to BRL is 4.9, 5.25, 5.5, and 4.8 depending on the Vendor.
Vendor 1 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 4.9 (exchange rate) × ( 1 + 0.05 ) (Markup) = 514.50 BRL
- Seller to Customer: 514.50 BRL × ( 1 + 0.03 ) (Markup) = 529.94 BRL
Vendor 2 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 5.25 (exchange rate) × ( 1 + 0.05 ) (Markup) = 551.25 BRL
- Seller to Customer: 551.25 BRL × ( 1 + 0.03 ) (Markup) = 567.79 BRL
Vendor 3 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 5.5 (exchange rate) × ( 1 + 0.05 ) (Markup) = 577.50 BRL
- Seller to Customer: 577.50 BRL × ( 1 + 0.03 ) (Markup) = 594.83 BRL
Vendor 4 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 4.8 (exchange rate) × ( 1 + 0.05 ) (Markup) = 504 BRL
- Seller to Customer: 504 BRL × ( 1 + 0.03 ) (Markup) = 519.12 BRL
Vendor 5 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 4.8 (exchange rate) × ( 1 + 0.05 ) (Markup) = 504 BRL
- Seller to Customer: 504 BRL × ( 1 + 0.03 ) (Markup) = 519.12 BRL
Example 2
Using the example above for Vendor 4 and Vendor 5, if the Seller wants to set his own exchange rate that will be used to invoice Customers, let's look at the example if the Seller wants to invoice the Customer in USD with Vendor-specific rates of 0.20 for Vendor 4 offers and using the general rate of 0.21 for Vendor 5 offers.
Vendor 4 (USD) -> Distributor (BRL rate general 4.8) -> Seller (USD rate 0.20) -> Customer Vendor 5 (USD) -> Distributor (BRL rate general 4.8) -> Seller (USD rate general 0.21) -> Customer
Same as for the Distributor, the Seller first needs to add a line in the exchange rates table for Vendor – General BRL – USD, and only afterwards can add a line for the same currency pair BRL to USD for the specific Vendor. In this case, the Seller will add a line BRL to USD Vendor All - rate 0.21 and line BRL to USD specific Vendor 4 - rate 0.20. The calculations are as follows:
Calculation:
Vendor 4 to Distributor 100 USD
- Distributor to Seller: 100 USD * 4.8(exchange rate) * (1+5%) (Markup) = 504 BRL
- Seller to Customer: 504 BRL 0.2(exchange rate)(1+3%) (Markup) = 103.82 USD
Vendor 5 to Distributor 100 USD
- Distributor to Seller: 100 USD * 4.8(exchange rate) * (1+5%) (Markup) = 504 BRL
- Seller to Customer: 504 BRL 0.21(exchange rate)(1+3%) (Markup) = 109.02 USD
Configured vs. Default Exchange Rates
If exchange rate was configured by Organization - the configured FX rate will return, in this case EUR to USD. If exchange rate wasn't configured - default exchange rate will return. For example: USD to EUR couple wasn't configured and it will return 1.02345 FX rate.
If user would like to have configured EUR to USD and USD to EUR couple - user should add two configurations:
- EUR to USD
- USD to EUR
Using "Add" button prompts following:
- From - is editable and should have Organization's default currency
- To - is editable and should be the first currency in the list that wasn't configured yet
- Source - is editable and should have CurrencyLayer by default
- Base rate - read only by default, but if "Custom" source is selected, then "Base rate" is editable. If "ECB" or Currency Layer is selected - we show here rate from the selected "Source"
- Surcharge - editable and by default has 0 value
- Final rate - read only
- Seller Contracts - read only
- Customers - read only
- Add button - invisible
Fixed FX rate rule
By default, the Platform calculates the foreign exchange rate based on the relevant date at the time of invoicing (referred to as the variable method). Organizations can configure a fixed FX rate rule to lock the exchange rate to the Subscription start date or renewal date instead.
The fixed FX rate rule is available for the following Organization types: Distributor, Two-Tier Seller, and One-Tier Seller.
How the fixed FX rate rule works
The fixed FX rate rule is applied per Organization and affects all Subscriptions belonging to that Organization. The rule behaves as follows:
- Fixed rule configured — the Platform requests the FX rate on the Subscription start date or renewal date for all Subscriptions under that Organization.
- No rule configured (default, variable) — the Platform requests the FX rate using the existing date logic (charge start date, Invoice date, etc.) as described in the FAQ section.
The fixed rate resets on Subscription renewal. When a Subscription renews, the Platform requests a new FX rate based on the new renewal date, which then remains fixed for the duration of the new Billing Cycle.
Important behaviors
Markup and Quantity changes do not affect the FX rate method. If the fixed rule is configured, the rate remains fixed until the next renewal regardless of changes to Markup or Quantity.
Scheduled orders — Orders use the Subscription start date as the rate reference date, not the Order creation date.
Upgrades — new Subscriptions created as part of an upgrade use the new Subscription start date as the rate reference. Subscriptions merged into an existing Subscription inherit the rate reference date of the target Subscription.
Historical subscriptions — the fixed FX rate rule applies retroactively. Subscriptions that existed before the rule was configured will use their original start date rate for future Invoices.
Fixed FX rate rule in the contract chain
Each level in the contract chain is configured independently. This means each Organization can apply a different FX rate rule for their own level, affecting only the conversion between themselves and the next party in the contract chain. The fixed FX rate rule can be configured at both levels of the contract chain:
- Distributor → Seller — the Distributor can configure the fixed FX rate rule for the Seller, locking the conversion rate between the Distributor and Seller to the Subscription start date or renewal date.
- Seller → Customer — the Seller can configure the fixed FX rate rule for the Customer, locking the conversion rate between the Seller and Customer to the Subscription start date or renewal date. This also affects the Preferred Currency functionality — if a Customer has a Preferred Currency configured, the fixed FX rate rule determines the exchange rate used for converting the Seller's platform currency into the Customer's Preferred Currency on all Invoices.
The following scenarios illustrate how this works:
Fixed rule configured at one level only (for example, Seller A has fixed rule configured):
Vendor A → Distributor A (EUR) → Seller A (USD, fixed) → Customer A (CZK)
Resulting Price calculation:
- EUR → USD conversion uses the FX rate on the Subscription start date or renewal date (fixed)
- USD → CZK conversion uses the FX rate on the usual variable date (no rule configured for Customer A)
Fixed rule configured at all levels:
Vendor A → Distributor A (EUR) → Seller A (USD, fixed) → Customer A (CZK, fixed)
Resulting Price calculation:
- EUR → USD conversion uses the FX rate on the Subscription start date or renewal date (fixed)
- USD → CZK conversion uses the FX rate on the Subscription start date or renewal date (fixed)
Example
A Distributor configures the fixed FX rate rule for Customer A on 10.08. Customer A has two Subscriptions:
- Office 365 — bought on 01.06., before the fixed rule was configured. For the Invoice calculated on 01.11., the Platform takes the latest available FX rate, because the Subscription started when no fixed rule was in effect.
- Dynamics Business Central — bought on 15.09., after the fixed rule was configured. For the Invoice calculated on 01.11., the Platform takes the FX rate from 15.09. (the Subscription start date).
Editing Currency Exchange Rates
If user has default currency NOK and they edit currency rate NOK to USD, the following will be prompted:
- From - read only
- To - read only
- Source - editable
- Base rate - if "Custom" source is selected, then "Base rate" is editable, other way "Base rate" is read only. If ECB or "CurrencyLayer" is selected - we show here rate from the selected "Source"
- Surcharge - editable
- Final rate - read only
- Seller Contracts - read only
- Customers - read only
Deleting Currency Exchange Rate Configurations
If delete currency rate configuration is chosen, the following actions will happen:
- If Distributor/Seller has no contracts and Customers that are using such currency configuration - the confirmation dialog "Are you sure you want to delete EUR to CHF exchange configuration?" will be prompted and delete configuration if the deletion is confirmed.
- If Distributor/Seller has no contracts with such currency configuration but has some Customers who are using such currency configuration - confirmation dialog - "1 Customers are using the currencies you deselected. Are you sure you want to disable them? Note: affected Customers will be notified by email and invoiced in your default currency." will be prompted and delete configuration if the deletion is confirmed.
- If Distributor/Seller has contracts with such currency configuration - it will be restricted to delete such currency couple and show an explanation dialog.
FAQ
What exchange rate is used for issuing invoices?
Currency rate date:
- For Usage-Based Subscriptions Platform uses foreign exchange rate: Invoice Date -1 day.
- For License-Based Subscriptions Platform uses foreign exchange rate: If charge start date > Subscription start date = charge start date. Otherwise, Subscription start date.
- For legacy Vendor Products (SkyKick, Bittitan, Printix) with calculation based on billing engine Platform uses foreign exchange rate based on charge start date + 1 day.
Can I use my own exchange rate source to automatically update rates?
Yes, your own exchange rate source can be connected by choosing 'Custom' source and connecting via API.
What exchange rate is used if no rate is setup on the platform?
If no exchange rate is setup is configured default foreign exchange rate is used provided by Currency Layer.
Limitations
Please wait 2-3 seconds before saving the changes than click 'Save'. Portal will need that time to record all updates that have been made.
Summary
Currency Exchange (FX) Rate Management in the AppXite Platform provides comprehensive multi-tier currency conversion capabilities. Partners at each level can specify exchange rates, with Vendor-specific FX rates taking priority when configured. The system supports multiple currency sources including ECB, Currency Layer, and Custom sources, with dynamic pricing updates available for automated sources. Users can configure, edit, and delete currency exchange rates through the interface, with built-in validations and error handling to ensure proper configuration sequences.
Related content
- Difference between In price and Retail Price
- Currency & Payments
- Payments on the Platform
- Preferred Currency
Add comment
Please sign in to leave a comment.