Local Billing, Base-Currency Settlement
Recurso supports billing in multiple currencies, allowing you to charge customers in their local currency while tracking revenue and settling funds in your base currency. Currency is specified at the plan, invoice, and ledger level, giving you full control over international billing.Key Concepts
All monetary amounts in the Recurso API are expressed in minor units (e.g., cents, paise). An amount of
4999 in INR represents ₹49.99. An amount of 5999 in USD represents $59.99.Setting Your Base Currency
Configure your base currency during tenant setup. This is the currency used for financial reporting and ledger balances.Creating Multi-Currency Plans
Plans can include prices in multiple currencies. When a subscription is created, Recurso selects the appropriate price based on the customer’s currency. A plan’s flat price is one currency. Sell a tier in several currencies with per-currency plan codes — the smart router then picks the gateway per currency (₹ → Razorpay, $/€/£ → Stripe by default):Currency on Subscriptions
When creating a subscription, the currency is determined by the customer’s configured currency or can be explicitly specified:Currency on Invoices
Invoices inherit the currency from the subscription. All line items, taxes, and totals are expressed in the presentment currency.How FX Rates Work
When payments in foreign currencies are received, Recurso records the exchange rate for ledger entries and reporting.Rate Determination
Recurso supports multiple approaches for exchange rates:Configuring FX Rate Source
The FX rate source (live provider vs. fixed rates) is a deployment setting, not a runtime API — configure it via environment / dashboard, not a/v1 call. FX affects reporting only: invoices always bill in the
subscription’s own currency, and MRR/revenue normalize to your reporting
currency at read time.
Currency Conversion in the Ledger
The ledger posts each entry once, in the invoice’s own currency’s minor units — a €49.99 payment posts4999, exactly as billed. There are no
duplicate base-currency entries and no per-currency account balances:
currency normalization happens in reporting (MRR, revenue analytics),
which converts to your reporting currency at read time.
Example: EUR Payment
A customer pays €49.99 for a subscription:Keep an eye on currency exponents: JPY has none (¥500 posts as
500),
KWD/BHD have three. Recurso stores every amount in the currency’s own
minor units.