Skip to main content

Overview of multi-currency contracts

Zuora

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.

image-multi-currency.png

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.