Rekomi Docs
For brands
Brands

Multi-currency

HomeCurrency, FX normalization, USD-settled 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 settle in USD (see below); already-created payouts keep the currency they were created in.

Changing HomeCurrency is a display recomputation, not a data migration, with one guard: per-click rewards, per-lead bounties and campaign budgets are stored in your home currency, so the change is refused while any active campaign carries one of them. Clear those amounts (or archive the campaign), change the currency, then set them again in the new currency.

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 to change it. New workspaces start on USD. Starter and Growth workspaces cannot pick a non-USD home currency; a workspace that set one while on Pro keeps it after a downgrade and needs Pro again to change it. 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 reference rate on its own date, never at today's rate. Historical conversions keep their original native currency.

FX rates and refresh cadence

  • Sources: the European Central Bank and Xe. Major currencies use the ECB's published daily reference rates (via the Frankfurter API); every other supported currency uses mid-market rates from Xe, the same class of no-spread reference rate.
  • 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 dates: each stored rate carries the date its source published it. The ECB fixes its rates in the afternoon (CET) and the next 06:00 UTC refresh picks them up, so the newest ECB rate available on any given day is dated the previous business day (or the Friday before, over a weekend); Xe rates carry the day they were locked in. Wherever Rekomi records a rate date, that recorded date is the one that governs.
  • Rate used for a conversion: the reference 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. A rate is served for at most 7 days past its publication date; beyond that, affected amounts are held out of the home-currency totals rather than being valued at old math, and listed per currency in their native amounts under the Reports KPI tiles, on Insights (revenue and commission separately), in the campaign budget card, and in the run-payout dialog; they return to the totals automatically when rates resume.
  • No spread, no fee. These are published mid-market reference rates, used exactly as published: Rekomi adds no margin to the rate and charges nothing for the conversion math. This normalization is reporting-only and never moves real money. Where an actual currency conversion happens in the money flow, it is the payment processor's own cost, never Rekomi's: an international funding debit and a bank-deposit payout arriving in the affiliate's local currency are passed through at cost and itemized, and a Stripe Express or PayPal recipient who converts the USD they receive pays that provider's own rate and conversion charge on their side; see funding your payouts and the affiliate withdrawal fee.

Supported currencies

135+ currencies are supported: every currency Stripe can present a price in, plus the three-decimal Gulf currencies (BHD, JOD, KWD, OMR, TND) common on other gateways. The full list, with each currency's flag, code, name, symbol, and decimal places:

137 of 137 currencies
CodeCurrencySymbolDecimals
AEDUAE Dirhamد.إ2
AFNAfghan Afghani؋2
ALLAlbanian LekL2
AMDArmenian Dram֏2
AOAAngolan KwanzaKz2
ARSArgentine PesoAR$2
AUDAustralian DollarA$2
AWGAruban Florinƒ2
AZNAzerbaijani Manat₼2
BAMBosnia-Herzegovina Convertible MarkKM2
BBDBarbadian DollarBds$2
BDTBangladeshi Taka৳2
BHDBahraini Dinar.د.ب3
BIFBurundian FrancFBu0
BMDBermudian DollarBD$2
BNDBrunei DollarB$2
BOBBolivian BolivianoBs2
BRLBrazilian RealR$2
BSDBahamian DollarB$2
BWPBotswanan PulaP2
BYNBelarusian RubleBr2
BZDBelize DollarBZ$2
CADCanadian DollarCA$2
CDFCongolese FrancFC2
CHFSwiss FrancCHF2
CLPChilean PesoCL$0
CNYChinese YuanCN¥2
COPColombian PesoCO$2
CRCCosta Rican Colon₡2
CVECape Verdean EscudoEsc2
CZKCzech KorunaKč2
DJFDjiboutian FrancFdj0
DKKDanish Kronekr2
DOPDominican PesoRD$2
DZDAlgerian Dinarد.ج2
EGPEgyptian PoundE£2
ETBEthiopian BirrBr2
EUREuro€2
FJDFijian DollarFJ$2
FKPFalkland Islands Pound£2
GBPPound Sterling£2
GELGeorgian Lari₾2
GIPGibraltar Pound£2
GMDGambian DalasiD2
GNFGuinean FrancFG0
GTQGuatemalan QuetzalQ2
GYDGuyanese DollarG$2
HKDHong Kong DollarHK$2
HNLHonduran LempiraL2
HTGHaitian GourdeG2
HUFHungarian ForintFt2
IDRIndonesian RupiahRp2
ILSIsraeli New Shekel₪2
INRIndian Rupee₹2
ISKIcelandic Kronakr0
JMDJamaican DollarJ$2
JODJordanian Dinarد.ا3
JPYJapanese Yen¥0
KESKenyan ShillingKSh2
KGSKyrgystani Somс2
KHRCambodian Riel៛2
KMFComorian FrancCF0
KRWSouth Korean Won₩0
KWDKuwaiti Dinarد.ك3
KYDCayman Islands DollarCI$2
KZTKazakhstani Tenge₸2
LAKLaotian Kip₭2
LBPLebanese Poundل.ل2
LKRSri Lankan RupeeRs2
LRDLiberian DollarL$2
LSLLesotho LotiL2
MADMoroccan Dirhamد.م.2
MDLMoldovan LeuL2
MGAMalagasy AriaryAr2
MKDMacedonian Denarден2
MMKMyanmar KyatK2
MNTMongolian Tugrik₮2
MOPMacanese PatacaMOP$2
MURMauritian RupeeRs2
MVRMaldivian RufiyaaRf2
MWKMalawian KwachaMK2
MXNMexican PesoMX$2
MYRMalaysian RinggitRM2
MZNMozambican MeticalMT2
NADNamibian DollarN$2
NGNNigerian Naira₦2
NIONicaraguan CordobaC$2
NOKNorwegian Kronekr2
NPRNepalese RupeeRs2
NZDNew Zealand DollarNZ$2
OMROmani Rialر.ع.3
PABPanamanian BalboaB/.2
PENPeruvian SolS/2
PGKPapua New Guinean KinaK2
PHPPhilippine Peso₱2
PKRPakistani RupeeRs2
PLNPolish Zlotyzł2
PYGParaguayan Guarani₲0
QARQatari Riyalر.ق2
RONRomanian Leulei2
RSDSerbian Dinardin2
RUBRussian Ruble₽2
RWFRwandan FrancFRw0
SARSaudi Riyal﷼2
SBDSolomon Islands DollarSI$2
SCRSeychellois RupeeRs2
SEKSwedish Kronakr2
SGDSingapore DollarS$2
SHPSt. Helena Pound£2
SLESierra Leonean LeoneLe2
SOSSomali ShillingSh2
SRDSurinamese Dollar$2
SZLSwazi LilangeniE2
THBThai Baht฿2
TJSTajikistani SomoniSM2
TNDTunisian Dinarد.ت3
TOPTongan Pa'angaT$2
TRYTurkish Lira₺2
TTDTrinidad & Tobago DollarTT$2
TWDNew Taiwan DollarNT$2
TZSTanzanian ShillingTSh2
UAHUkrainian Hryvnia₴2
UGXUgandan ShillingUSh0
USDUS Dollar$2
UYUUruguayan Peso$U2
UZSUzbekistani Somso'm2
VNDVietnamese Dong₫0
VUVVanuatu VatuVT0
WSTSamoan TalaWS$2
XAFCentral African CFA FrancFCFA0
XCDEast Caribbean DollarEC$2
XCGCaribbean GuilderCg2
XOFWest African CFA FrancCFA0
XPFCFP Franc₣0
YERYemeni Rial﷼2
ZARSouth African RandR2
ZMWZambian KwachaZK2

The CFA franc zones (XAF, XOF), the East Caribbean dollar (XCD), and the CFP franc (XPF) each serve several countries; the flag shown is the seat of the issuing central bank.

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. One transitional alias: amounts arriving in ANG (the retiring Netherlands Antillean guilder) are recorded as XCG, its one-to-one successor.

How payouts work in multi-currency

Earnings accrue per (affiliate, currency) in the currency each sale came in, and the run dialog shows you those native balances per currency. Payouts themselves settle in USD: when a batch runs, each non-USD commission converts to USD at the most recent published mid-market reference rate available when the payout runs (never more than seven days old), with no Rekomi markup, and the payout records the native amount, the applied rate, and the rate's publication date on every line, so the conversion is fully auditable. This mirrors how creator deals have always settled (quote in any currency, settle in USD at a disclosed rate) and is what makes every balance payable through a single funded run:

  1. The affiliate sees exactly what they earned (native amounts stay on every commission and payout line) and exactly what rate applied.
  2. One USD run funds everything. There is no per-currency funding, so a EUR or JPY balance never waits for its own batch.
  3. The rate is the same mid-market reference used across reporting: the most recent published rate available when the run happens, disclosed with its date on every line, never a spread.

A currency with no fresh exchange rate is held out of the run automatically (the dialog tells you) and becomes payable again when rates resume. What arrives on the affiliate's side then follows their payout method as usual: Stripe Express receives USD (if their bank is in another currency, Stripe converts on receipt at Stripe's own rate and conversion charge), bank deposits convert to their local currency at send as part of the disclosed at-cost withdrawal fee, and PayPal receives USD to their balance (any conversion from there is at PayPal's own rate and charge).

In the dashboard you'll see the per-currency split on the Payouts page. Your home currency total on the KPI strip aggregates conversions at the reference 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 reference rate on each conversion's date (never today's rate; payments are valued separately, see below).
  • The candidates export reports year-to-date totals in USD. Rows without a USD reference rate for their date are left out of those totals rather than guessed; the export counts them and names the currencies in a # NOTE line at the bottom of the CSV, and the same warning is flagged on the tax page, so the totals can understate until FX coverage is restored.
  • Payments made during the year count separately, at the USD amount actually paid. Because payouts settle in USD, that is the rate locked on each payout line (see How payouts work above), which can differ from the conversion-date rate used for earnings.
  • An affiliate appears on the worksheet when either total crosses the $600 candidate threshold, regardless of which currency their conversions came in as. The CSV carries both figures, year_to_date_cents (earned, conversion-date rate) and paid_ytd_cents (paid, rate locked at payout), so the two can be reconciled.

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 supported codes above. No crypto. No legacy codes (e.g. ZWL, VEF). No currency-substitute tokens.
  • Minor units follow each currency's real exponent. JPY, KRW, VND and the other zero-decimal currencies display whole amounts (a 1,000 JPY conversion shows as 1,000 JPY, not 10.00 JPY); the Gulf three-decimal currencies (BHD, JOD, KWD, OMR, TND) keep all three decimals.
  • Per-currency unconvertible amount. If we have a balance in a currency with no usable rate (a rate more than 7 days stale, or, rarely, a code that reached storage before it was on the allowlist at the time of FX refresh), you'll see a warning in the run-payout dialog with the per-currency breakdown, and the same per-currency marker appears under the Reports overview tiles, on Insights (revenue and commission separately), and in the campaign budget card, so nothing is silently swept under the rug.