Source: https://www.revvly.ai/docs/guides/multi-currency

Guide

# Multi-currency *billing*.

Sell in local currencies while keeping a single reporting currency. Seven steps from setup to analytics — exchange rates are handled automatically.

## Choose your reporting currency

Go to Settings → General Settings and set the currency all dashboards and analytics roll up to — typically USD or EUR. This is a tenant-wide setting and is the single currency in which MRR, ARR, NRR, and churn figures are expressed.

- [Tenant concept ›](https://www.revvly.ai/docs/concepts/tenant)

## Create a Region per market

Go to Catalog → Regions and add one Region for each currency market you sell into. Give each a short code (e.g. "EU"), a display name ("Europe"), and a default currency (EUR). You can also list additional accepted currencies on the same region — for example, a "Europe" region may accept EUR and CHF.

- [Region concept ›](https://www.revvly.ai/docs/concepts/region)

## Publish Variable Component Prices per currency

For each Variable Component in your catalog, publish a Global default price row listing every currency you sell in — USD: $5, EUR: €4.50, GBP: £4. Optionally override at the Bundle or Module scope when a specific plan should price the component differently. When a subscription is created in EUR, Revvly walks the scopes and picks the first row containing EUR; if none of the more-specific scopes carry EUR, the Global default applies.

- [Variable Component Price concept ›](https://www.revvly.ai/docs/concepts/variableComponentPrice)

## Assign each Client to their Region

When creating or editing a Client, set their Region. Their default billing currency is inherited from that region. If a customer in your EU region signs up, their subscription and invoices default to EUR — no per-subscription currency selection needed.

- [Client concept ›](https://www.revvly.ai/docs/concepts/client)

## Exchange rates sync automatically

Revvly fetches daily rates from Fixer and stores them once for the whole platform, shared by every workspace. When a subscription is created, the rate active on that date is recorded on the subscription record for historical accuracy. You never need to manage rates manually, and there is no screen for editing them.

- [Exchange Rate concept ›](https://www.revvly.ai/docs/concepts/exchangeRate)

## Analytics roll up to your reporting currency

MRR, ARR, NRR, and all dashboard figures appear in your reporting currency regardless of what individual subscriptions bill in. Lifecycle Events store both the native currency amount and the converted reporting-currency amount, so historical analytics remain accurate even if FX rates shift later.

From local currency to one report

1. Client has a RegionBilling currency is inherited from it.
2. Subscription bills locallyInvoices are in the native currency, such as EUR.
3. Lifecycle EventStores the native and the converted amount.
4. Reporting currencyDefault view: converted and summed.orBy currencyOpen invoices shown per currency, unconverted.

Each subscription bills in its own currency while analytics and finance can read one reporting currency.

- [Lifecycle Event concept ›](https://www.revvly.ai/docs/concepts/lifecycleEvent)

## Finance shows both views

The Invoices & Billing page defaults to "Reporting Currency" — receivables, pending, overdue, and this-week amounts are all FX-converted and summed into a single figure. Use the "By currency" toggle to switch to a per-currency breakdown, where each currency's open invoices are displayed separately without conversion.

- [Invoice concept ›](https://www.revvly.ai/docs/concepts/invoice)

