Rekomi Docs
For brands
Brands

Multi-currency

HomeCurrency, FX normalization, per-currency payouts, and how the IRS 1099-NEC handles non-USD earnings.

If your affiliates sell in more than one currency (or you sell in EUR but report in USD), Rekomi handles the conversion math for you. Conversions are always stored in the currency they came in as. Your dashboards normalize everything to a single home currency so a "$120,400 this quarter" KPI tile means the same thing whether your sales came in USD, EUR, or JPY.

What is HomeCurrency

HomeCurrency is your organization's reporting currency. It defaults to USD for every new account. It affects:

  • The total on dashboard KPI tiles (summary cards, leaderboards, time series charts).
  • The "home" column in tables that also show the native amount (e.g. a $99 USD row and a 89 EUR row both appear with a converted home-currency value next to them).
  • Reports + CSV exports: a summary row in your home currency, plus per-row native amounts so nothing is lost in translation.

What it does not affect:

  • The currency of any existing conversion. A 89 EUR sale stays a 89 EUR sale on disk.
  • The currency of any existing payout. Payouts are batched per-currency (see below) and keep the currency they were created in.

Changing HomeCurrency is a display recomputation, not a data migration.

How to change it

/dashboard/settings/billing has a Home currency card under the Currency tab.

The Home currency card in billing settings

  • Pro or Enterprise plan required. Starter and Growth workspaces stay on the USD default. Workspaces trialing the Pro plan can change it during the trial; Starter and Growth trials cannot.
  • Only workspace owners and admins can change the home currency.
  • Pick from the supported currency list. Save. The dashboard re-renders against the new home currency on next page load.
  • Changes are audit-logged (who, when, old → new) under Settings > Audit Log.
  • The change re-renders all dashboard rollups, past and future, in the new home currency; each conversion is still valued at the ECB rate on its own date, never at today's rate. Historical conversions keep their original native currency.

FX rates and refresh cadence

  • Source: European Central Bank via the free Frankfurter API. No API key, no rate limits we hit at any plausible scale.
  • Refresh: daily at 06:00 UTC via a background job. The full matrix of supported currencies is stored locally so the dashboard never has to call out to FX on a page render.
  • Rate used for a conversion: the ECB rate on the conversion's CreatedAt date. This is stable: re-loading a six-month-old dashboard view shows the same converted total it showed six months ago.
  • Stale-cache fallback: if the daily refresh fails (a rate-provider outage, our job error), the previous day's rates are used and an alert fires to Rekomi's on-call. Your dashboard keeps working.

Supported currencies

31 currencies are supported in v1. This covers every Stripe-supported market that the ECB publishes a daily rate for.

CodeCurrencySymbol
🇺🇸USDUS Dollar$
🇪🇺EUREuro
🇬🇧GBPPound Sterling£
🇨🇦CADCanadian DollarCA$
🇦🇺AUDAustralian DollarA$
🇯🇵JPYJapanese Yen¥
🇨🇭CHFSwiss FrancCHF
🇸🇪SEKSwedish Kronakr
🇳🇴NOKNorwegian Kronekr
🇩🇰DKKDanish Kronekr
🇳🇿NZDNew Zealand DollarNZ$
🇸🇬SGDSingapore DollarS$
🇭🇰HKDHong Kong DollarHK$
🇲🇽MXNMexican PesoMX$
🇧🇷BRLBrazilian RealR$
🇮🇳INRIndian Rupee
🇿🇦ZARSouth African RandR
🇵🇱PLNPolish Zloty
🇨🇿CZKCzech Koruna
🇭🇺HUFHungarian ForintFt
🇷🇴RONRomanian Leulei
🇮🇱ILSIsraeli Shekel
🇹🇷TRYTurkish Lira
🇰🇷KRWSouth Korean Won
🇵🇭PHPPhilippine Peso
🇹🇭THBThai Baht฿
🇲🇾MYRMalaysian RinggitRM
🇮🇩IDRIndonesian RupiahRp
🇦🇪AEDUAE Dirhamد.إ
🇸🇦SARSaudi Riyal
🇨🇳CNYChinese YuanCN¥

Conversions sent through the API in any other currency are rejected at ingest (see the developer docs). Stripe-driven conversions arrive in whatever currency Stripe charged and are stored as-is in that currency.

How payouts work in multi-currency

Rekomi batches payouts per (affiliate, currency), and payout runs are per currency: an affiliate with both USD and EUR earnings receives a USD payout from your USD run and a EUR payout from your EUR run. The run dialog lets you switch between currency batches, and there is no automatic conversion between currencies on a payout. Reasoning:

  1. The affiliate gets paid in the currency they earned in (usually their preference).
  2. Stripe Express, bank deposits, and PayPal settle in a specific currency. Mixing currencies in one payout would force us to convert at our rate, which is worse for the affiliate than letting their bank do it.
  3. FX timing is removed from the equation: a 1,000 EUR commission moves as 1,000 EUR.

In the dashboard you'll see the per-currency split on the Payouts page. Your home currency total on the KPI strip aggregates them at the ECB rate on each conversion's date.

Creator deals and proposals in multi-currency

Deal and proposal amounts can be quoted in any supported currency. The quote is what both sides see everywhere (the proposal page, the emails, and the invoice); settlement is always in USD. The conversion locks at the moment you fund the escrow, using that day's rate, and the invoice records the quoted amount, the USD amount, and the locked rate. The $50 to $50,000 deal bounds apply to the USD value.

Tax forms in multi-currency

U.S. tax law (IRS 1099-NEC) requires reporting in USD regardless of the currency a payment was actually made in. Rekomi's 1099-NEC candidates export works in USD terms:

  • Non-USD earnings count toward an affiliate's USD-equivalent total using the ECB rate on each conversion's date (not the payout date, not today's rate).
  • The candidates export reports year-to-date totals in USD.
  • If an affiliate's USD-equivalent total crosses the $600 candidate threshold, they appear in the export regardless of which currency their conversions came in as.

See Tax forms for the full export flow.

When to change HomeCurrency

The honest answer: most brands never need to. USD is a fine reporting currency even for non-U.S. businesses because every comparable benchmark (PartnerStack, Rewardful, your own SaaS metrics) is reported in USD too.

Change it when:

  • You report financials to investors in a non-USD currency.
  • Your primary cost base is in a non-USD currency and you want the affiliate program P&L to match the rest of the business.
  • You acquired a brand whose ledger is in another currency and you're consolidating.

Otherwise, the per-row native amount is shown everywhere it matters, so a USD home currency does not hide your non-USD revenue from you.

Limits and edge cases

  • Exactly 3 letters, exactly the 31 supported codes. No crypto. No legacy codes (e.g. ZWL, VEF). No currency-substitute tokens.
  • JPY and KRW have no minor unit. Rekomi still stores minor units internally but treats the math correctly on display (a 1,000 JPY conversion shows as 1,000 JPY, not as 10.00 JPY).
  • Per-currency unconvertible amount. If we somehow have a balance in a currency we don't have a rate for (rare; would mean a code reached storage that wasn't in the allowlist at the time of FX refresh), you'll see a warning in the run-payout dialog with the per-currency breakdown, so nothing is silently swept under the rug.