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.
In this article:
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: In-Price and Retail Price. If Distributor has configured prices based on In-Price while Seller has configured prices based on 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
1.Currency exchange rate management includes the ability to use available currencies provided by provider, as an example:
2. In case a specific currency is required Custom source can be used:
3. 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 |
Dynamic Currency Pricing Update
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. Currently, there is no possibility to lock in a set exchange rate for a fixed period. In case Custom Rate source will be updated it will be used for invoice calculation and price display in offer 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
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 100USD×4.9(exchange rate)×(1+0.05)(markup)=514.50BRL
- Seller to Customer: 514.50 BRL × ( 1 + 0.03 ) (markup) = 529.94 BRL 514.50BRL×(1+0.03)(markup)=529.94BRL
Vendor 2 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 5.25 (exchange rate) × ( 1 + 0.05 ) (markup) = 551.25 BRL100USD×5.25(exchange rate)×(1+0.05)(markup)=551.25BRL
- Seller to Customer: 551.25 BRL × ( 1 + 0.03 ) (markup) = 567.79 BRL 551.25BRL×(1+0.03)(markup)=567.79BRL
Vendor 3 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 5.5 (exchange rate) × ( 1 + 0.05 ) (markup) = 577.50 BRL 100USD×5.5(exchange rate)×(1+0.05)(markup)=577.50BRL
- Seller to Customer: 577.50 BRL × ( 1 + 0.03 ) (markup) = 594.83 BRL 577.50BRL×(1+0.03)(markup)=594.83BRL
Vendor 4 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 4.8 (exchange rate) × ( 1 + 0.05 ) (markup) = 504 BRL 100USD×4.8(exchange rate)×(1+0.05)(markup)=504BRL
- Seller to Customer: 504 BRL × ( 1 + 0.03 ) (markup) = 519.12 BRL 504BRL×(1+0.03)(markup)=519.12BRL
Vendor 5 to Distributor: 100 USD
- Distributor to Seller: 100 USD × 4.8 (exchange rate) × ( 1 + 0.05 ) (markup) = 504 BRL 100USD×4.8(exchange rate)×(1+0.05)(markup)=504BRL
- Seller to Customer: 504 BRL × ( 1 + 0.03 ) (markup) = 519.12 BRL 504BRL×(1+0.03)(markup)=519.12BRL
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
FAQ
What exchange rate is used for issuing invoices?
Currency rate date:
1. For usage-based subscriptions platform uses foreign exchange rate: Invoice date -1 day.
2. For license-based subscriptions platform uses foreign exchange rate: If charge start date > subscription start date = charge start date. Otherwise, subscription start date.
3. For legacy Vendor offers (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.
To explore more see Use Case
Add comment
Please sign in to leave a comment.