Skip to main content

Supporting Multiple Currencies

Overview

Web Billing (formerly RevenueCat Billing) supports multiple currencies for your web subscriptions.

App setup

In the setup of the Web Billing app, you can select the default currency for the app. This currency will be used for customers whose location is not supported by any of the currencies you have configured, or when the customer's location is undetermined.

App configuration page

Product setup

When creating a new product in the RevenueCat dashboard, you can set the price for each currency you want to support. Each product can have only one price per currency. You can add additional currencies to a product by editing it, but you can't change the currency of an existing price or remove a currency.

New product configuration page

Minimum price per currency

To ensure a consistent customer experience across regions, RevenueCat enforces a minimum price per currency. These minimums are based on an approximate equivalent of $0.99 USD, rounded to a price that makes sense in the local market. If you set a price below the minimum for a given currency, you'll receive a validation error when saving the product.

CurrencyMinimum Price
USD$0.99
EUR€0.99
JPY¥99
GBP£0.79
AUD$0.99
CAD$0.99
BRLR$4.99
KRW₩999
CNY¥9.99
MXN$19.99
SEK9.99-kr.
PLN3,99 zł
AED3.49 د.إ
BGN1,49 лв
CHF0.99 Fr
CLP$899
COP$3,999
CRC₡499
CZK19,99 Kč
DKK5,99 kr.
GEL2.49 GEL
HKDHK$7.49
HUF299 Ft
IDRRp15.999
ILS₪3.49
IQD999 د.ع
JOD0.99 د.أ
KESKSh 99
KZT499 ₸
MAD8.99 د.م.
MYRRM3.99
NOK9,99 kr
NZD$1.49
PENS/ 3.49
PHP₱54.49
QAR3.49 ر.ق
RON3,99 lei
RSD99 дин.
SAR3.49 ر.س
SGD$0.99
THB฿29.99
TWDNT$29.99
TZSTSh 1,999
VND24.999₫
ZARR17.49

Making a purchase

When a customer makes a purchase, RevenueCat will automatically select the price in the currency that best matches the customer's location. This happens regardless of whether the purchase is made through the Web SDK or a Web Purchase Link. If the customer's currency is not supported, RevenueCat will default to the default currency.

Specifying a currency manually

Web SDK

If you want to specify a currency manually, you can do so by passing the currency parameter when calling the getOfferings method of the Web SDK. This will override the automatic currency selection.

    try {
// Specify the currency to get offerings for
const offerings = await Purchases.getSharedInstance().getOfferings({
currency: "EUR",
});
if (
offerings.current !== null &&
offerings.current.availablePackages.length !== 0
) {
// Display packages for sale
displayPackages(offerings.current.availablePackages);
}
} catch (e) {
// Handle errors
}

When generating a Web Purchase Link, you can specify the currency by appending the currency query parameter to the URL. This will override the automatic currency selection.

Example:

https://pay.rev.cat/<paywall_ID>/<app_user_ID>?currency=EUR

Differentiating prices in the same currency

Given that each product can have only one price per currency, if you want to offer different prices for the same product in the same currency, you will need to create a new product with a different identifier. You can then use targeting to show the correct product to the customer based on their location or other criteria.