Overview of multi-currency contracts
Multi-currency contracts involve more than one transaction currency in a revenue contract, thus allowing your customers to pay in their local cash.
System configuration
Depending on the system-level value of the MULTI_CURR_FV_REPORT_LEVEL profile, you can use the functional or reporting currency for allocations or calculations in multi-currency revenue contracts. You can set the profile value to one of the following:
-
Lowest Common Currency
-
Reporting Currency
When you set the MULTI_CURR_FV_REPORT_LEVEL profile to the Lowest Common Currency, all the lines within the revenue contract will have the same functional currency, and Zuora Revenue will execute calculations in the functional currency. In all other circumstances, Zuora Revenue will use the reporting currency specified by the REPORTING_CURRENCY profile to do the calculations.
Multi-currency contract in Workbench
You can view the multi-currency contracts in M following the revenue contract number in the contract header, as shown in the following graphic.
The Overview tab of the Revenue Contract Detail page also indicates the allocation currency on the right pane. In the above graphic, allocations of contract RC10725 happen in the Reporting Currency (USD). On the left pane, values are displayed only in the reporting currency.
If the allocation happens in the transaction currency, values are displayed in the transaction currency, functional currency, and reporting currency. If the allocation happens in the functional currency, values are displayed in the functional and reporting currencies.
Examples of currency determination
The underlying examples help you understand how the allocation currency is determined for the multi-currency contracts eligible for allocations in Zuora Revenue. The same logic also applies to multi-currency contracts that are not eligible for allocation.
The column headers are abbreviated in the example tables as follows:
- T.Curr: Transaction currency
- F.Curr: Functional currency, which is the book currency.
- G.Curr: Reporting currency.
- F.Ex.Rate: Functional exchange rate is the exchange rate from the transaction currency to the functional currency.
- G.Ex.Rate: Reporting exchange rate, which is the exchange rate from the functional currency to the reporting currency.
Example 1 - Allocation in transaction currency
In the following example, the transaction currencies of all the lines are the same, which is GBP. The reporting currency, according to the REPORTING_CURRENCY profile, is USD.
This revenue contract is not a multi-currency contract; the transaction currency (GBP) is used for allocations. The exchange rate used to post the allocations from the transaction currency to the other two currencies (functional and reporting) is determined based on the earliest Sales Order Book Date. In this example, the earliest Sales Order Book Date is 01/01/2019, so the exchange rate from the transactional currency to the functional currency is 1.1 and from the functional currency to the reporting currency is 0.90.
Line No |
SO Book Date |
Company Code |
Amount |
T.Curr |
F.Ex.Rate |
F.Ex.Date |
F.Curr |
G.Ex.Rate |
G.Ex.Date |
G.Curr |
---|---|---|---|---|---|---|---|---|---|---|
1 |
01/01/2019 |
100 |
1000 |
GBP |
1.1 |
01/01/2019 |
EUR |
0.90 |
01/01/2019 |
USD |
2 |
01/02/2019 |
100 |
2000 |
GBP |
1.2 |
01/02/2019 |
EUR |
0.88 |
01/02/2019 |
USD |
3 |
01/03/2019 |
100 |
3000 |
GBP |
1.3 |
01/03/2019 |
EUR |
0.85 |
01/03/2019 |
USD |
4 |
01/04/2019 |
100 |
4000 |
GBP |
1.4 |
01/04/2019 |
EUR |
0.82 |
01/04/2019 |
USD |
Example 2 - Allocation in functional currency
In the following example, the different transaction currencies depict a multi-currency contract. The reporting currency is USD, according to the REPORTING_CURRENCY profile. The MULTI_CURR_FV_REPORT_LEVEL profile is set to the Lowest Common Currency.
Line No |
SO Book Date |
Company Code |
Amount |
T.Curr |
F.Ex.Rate |
F.Ex.Date |
F.Curr |
G.Ex.Rate |
G.Ex.Date |
G.Curr |
---|---|---|---|---|---|---|---|---|---|---|
1 |
01/01/2019 |
100 |
1000 |
EUR |
1.0 |
01/01/2019 |
EUR |
0.90 |
01/01/2019 |
USD |
2 |
01/02/2019 |
100 |
2000 |
GBP |
1.2 |
01/02/2019 |
EUR |
0.88 |
01/02/2019 |
USD |
3 |
01/03/2019 |
100 |
3000 |
USD |
1.3 |
01/03/2019 |
EUR |
0.85 |
01/03/2019 |
USD |
4 |
01/04/2019 |
100 |
4000 |
GBP |
1.4 |
01/04/2019 |
EUR |
0.82 |
01/04/2019 |
USD |
In this multi-currency contract, all the lines have the same functional currency, so the allocations happen in the functional currency (EUR). The functional exchange rate, which is used to calculate the allocations, is based on the line-level exchange rates. The reporting exchange rate for posting allocations is determined based on the minimum Sales Order Book Date of 01/01/2019 in this example, so the reporting exchange rate is 0.90.
Example 3 - Allocation in reporting currency
In the following example, the different transaction currencies depict a multi-currency contract. The reporting currency is USD, according to the REPORTING_CURRENCY profile. The MULTI_CURR_FV_REPORT_LEVEL profile is set to Lowest Common Currency.
Line No |
SO Book Date |
Company Code |
Amount |
T.Curr |
F.Ex.Rate |
F.Ex.Date |
F.Curr |
G.Ex.Rate |
G.Ex.Date |
G.Curr |
---|---|---|---|---|---|---|---|---|---|---|
1 |
01/01/2019 |
100 |
1000 |
EUR |
1.0 |
01/01/2019 |
EUR |
.80 |
01/01/2019 |
USD |
2 |
01/02/2019 |
200 |
2000 |
GBP |
1.0 |
01/02/2019 |
GBP |
.70 |
01/02/2019 |
USD |
3 |
01/03/2019 |
300 |
3000 |
USD |
1.0 |
01/03/2019 |
USD |
1.0 |
01/03/2019 |
USD |
4 |
01/04/2019 |
400 |
4000 |
GBP |
1.0 |
01/04/2019 |
GBP |
.72 |
01/04/2019 |
USD |
The functional currencies of all the lines are different, so allocations happen in the reporting currency (USD). The reporting exchange rate, used to calculate allocations, is based on the line-level exchange rates. When allocations are posted, Zuora Revenue derives the functional exchange rate based on the 1/reporting exchange rate at the line level. The reporting currency exchange rate for posting is the line-level reporting exchange rate.
Example 4 - Allocation in reporting currency with functional currency being the same
In the following example, the different transaction currencies depict a multi-currency contract. The reporting currency is USD, according to the REPORTING_CURRENCY profile. The MULTI_CURR_FV_REPORT_LEVEL profile is set to Reporting Currency.
Line No |
SO Book Date |
Company Code |
Amount |
T.Curr |
F.Ex.Rate |
F.Ex.Date |
F.Curr |
G.Ex.Rate |
G.Ex.Date |
G.Curr |
---|---|---|---|---|---|---|---|---|---|---|
1 |
01/01/2019 |
100 |
1000 |
EUR |
1.0 |
01/01/2019 |
EUR |
.90 |
01/01/2019 |
USD |
2 |
01/02/2019 |
100 |
2000 |
GBP |
1.2 |
01/02/2019 |
EUR |
.88 |
01/02/2019 |
USD |
3 |
01/03/2019 |
100 |
3000 |
USD |
1.3 |
01/03/2019 |
EUR |
.85 |
01/03/2019 |
USD |
4 |
01/04/2019 |
100 |
4000 |
GBP |
1.4 |
01/04/2019 |
EUR |
.82 |
01/04/2019 |
USD |
Although the functional currencies for all lines are the same, allocations happen in the reporting currency (USD) as specified by the MULTI_CURR_FV_REPORT_LEVEL profile. The reporting exchange rate, used to calculate allocations, is based on the line-level exchange rates. When allocations are posted, Zuora Revenue derives the functional exchange rate based on the 1/reporting exchange rate at the line level. The reporting currency exchange rate for posting is the line-level reporting exchange rate.
Related articles
An example is provided to explain how the carve amount is calculated after the allocation currency is determined for a multi-currency contract. See Derivation of carve amount.
To understand how the linking and delinking operations can impact the allocation currency, see the examples provided in Impact of linking and delinking.