Multi-currency commissions and international partner payouts via Stripe Connect
Most affiliate platforms either ignore currency entirely (you pay everyone in USD, partners eat the FX) or wrap their own payment rail around it (you pay the platform, the platform pays partners, the spread goes somewhere). Here's how OpenPartner handles cross-border commissions on Stripe Connect.
Once a partner program crosses borders, currency stops being a footnote. A creator in Brazil takes a 4% hit if you pay them in USD and they convert through their bank. A European partner gets paid less than agreed if the platform’s payout rail does FX at a spread. And if your billing is multi-currency to begin with — Stripe customers in EUR, GBP, AUD — the question of what currency the commission accrues in becomes a real decision, not a default.
This post walks through how OpenPartner handles multi-currency at each step: the commission rule, the accrual, the payout, and the partner’s view.
Step 1: commission rules can be denominated per program
A campaign’s commission rule includes type, value, and currency. The relevant shapes:
- Percentage rules —
15% of GMV, no currency on the rule itself; the commission’s currency is whatever currency the underlying conversion was billed in. - Fixed-value rules —
$50 one-timeor€30 recurring. Currency is part of the rule.
What this means in practice: if you bill customers in EUR, GBP, and USD, a percentage rule generates EUR commissions on EUR conversions, GBP on GBP, USD on USD. The rule follows the conversion’s currency. We don’t normalize to a single reporting currency at accrual time.
This is the right shape for most programs. The brand isn’t taking FX risk on a per-sale basis — the commission’s denominated in the same currency they collected.
For programs that want a single reporting currency (e.g., USD-denominated partner contracts regardless of customer billing), the admin lets you pin the rule’s currency explicitly. The conversion is FX-converted at accrual using mid-market rates from the event timestamp. Trade-off: cleaner reporting, slight drift between accrued and actual.
Step 2: the commission ledger is currency-aware
Every Commission row carries amount, currency, and a snapshot of the rule that
generated it. Currencies don’t get summed across — the partner’s earnings view shows
each currency as its own line:
Total earned (May 2026): USD 1,240.00 EUR 480.00 GBP 210.00That’s deliberate. Mixing currencies into a single total is either lossy (FX rate as of when?) or misleading. Show them separately, let the partner see exactly what they earned in each.
Step 3: payouts run via Stripe Connect
OpenPartner pays partners through Stripe Connect Standard transfers. The partner connects their own Stripe account during onboarding; the brand’s Stripe account transfers funds directly to the partner’s; Stripe handles KYC, tax docs, and the rails.
The currency rules at this step:
- Brand’s payout currency = partner’s payout currency. A transfer goes through in the brand’s source currency. The partner’s connected Stripe account either accepts that currency directly (if the partner’s bank supports it) or converts it on the partner’s side using Stripe’s FX.
- Stripe’s FX is at mid-market + ~2%. That’s not free, but it’s competitive with consumer wires and dramatically better than most aggregator-style payout platforms.
- Partner-side bank deposit currency is whatever the partner’s local bank supports, controlled by the partner in their Stripe Express dashboard.
The brand chooses the source currency at the program level (typically their own operating currency). Partners see the source currency in commission notifications and can plan accordingly.
Step 4: what the partner sees
The partner portal shows:
- Earned commissions, separated by currency
- Pending vs approved vs paid breakdowns per currency
- The exact
amount + currencyof each upcoming payout
When a payout posts, the partner gets an email with the source amount, the source currency, and a link to their Stripe dashboard for the deposited amount in their bank’s currency. No surprises, no hidden conversions.
Country and currency coverage
The set of countries OpenPartner can pay partners in tracks Stripe Connect’s country support — currently 47+ countries across North America, EU, UK, Australia, New Zealand, parts of LATAM and APAC.
Some honest limits:
- Stripe Connect doesn’t operate in every country. If your partner is in a country Stripe doesn’t support (parts of Africa, parts of MENA, some of South America), they can’t receive payouts via the default rail. We’re working on alternative rails (wire, Wise) for these cases; today the answer is usually “the partner needs an account in a Stripe-supported country.”
- Crypto payouts. Not supported. Not on the roadmap.
- PayPal-as-fallback. Not supported in the default flow. Self-host instances can integrate their own out-of-band payout workflow against the commission ledger if needed.
If your partner mix is heavily concentrated in countries Stripe doesn’t reach, OpenPartner isn’t the right platform yet. Affiliate-marketing programs with partners across the global south are better-served today by platforms with PayPal or aggregator rails. We’d rather tell you that than push you into a workaround.
How this compares to consolidated-payout platforms
Some affiliate platforms (Affonso, PartnerStack, Impact) consolidate partner payouts through their own rail. The brand pays the platform; the platform pays the partner. This is more convenient if you want hands-off operations and have lots of partners across many countries.
The trade-off: there’s a third party in the money flow with their own economics. Sometimes that’s a flat fee, sometimes a percentage, sometimes an FX spread, sometimes all three. The partner’s actual deposit can drift from the commission they earned in ways that aren’t always transparent.
OpenPartner’s bet is that direct Stripe Connect transfers are the right primitive: the brand’s gross commission equals the partner’s source-currency receipt, and Stripe’s FX + deposit fees are the only thing between that and the partner’s bank balance. No extra cut, no opaque rail.
For most Stripe-billing SaaS with partners in Stripe-supported countries, that’s a better deal for both the brand and the partner. For programs that need broader rail coverage, the consolidated-payout shape is the right shape.
The full payout architecture is at /docs/partners/payouts. Currency is configurable per program; the defaults are pragmatic for most Stripe-billing brands.