Cross-border agent payments deal with currency conversion at multiple points: charging in user's currency, paying merchants in theirs, recording in your accounting currency. Each conversion has a rate, a timing, and a margin — and getting any wrong introduces silent revenue loss.
Where conversions happen
Card processing: card issuer converts if charging currency differs from card currency. Marketplace payout: platform converts if paying merchant in different currency than collected. Internal accounting: convert at month-end to functional currency. Three conversion events; three margins.
Rate sources and timing
Processor's rate is rarely the mid-market rate; they take a margin (0.5-2%). Track the rate spread for visibility. Lock rates at charge time, not at settlement; otherwise FX volatility eats margin.
Float exposure
Time between charge and merchant payout: you're holding money in one currency, owe it in another. If currency moves 1% in that window: 1% of float lost (or gained). Hedge for large floats; ignore for small.
Multi-currency pricing
Display prices in user's currency. Charge in user's currency. Settle in platform's accounting currency. Means publishing rate tables per currency. Tools (Stripe Tax, Adyen) handle this; rolling your own is harder than it looks.
Edge cases
Refunds across currency: original charge at rate R1, refund at rate R2. Customer sees a different refund amount than original. Make this visible in receipts — surprises cause support tickets.