1
3 Comments

Who actually owns FX logic inside a product?

Curious question for SaaS and app builders.

When your product deals with multiple currencies, who owns exchange rate behavior long-term?

Do you handle FX logic inside the product because it affects UX, trust, or business logic?

Or do you push it to finance/accounting?

Or avoid it entirely by letting users enter rates / using UI-only conversions?

I’m noticing teams are very split on this, and the decision seems to have long-term consequences.

Would love to hear how you handle it and why.

on January 5, 2026
  1. 2

    Building accounting tools, I've landed on: product owns the FX logic, but make it transparent and overridable.

    The problem with pushing it to finance/accounting is that by the time they're involved, the rates are already baked into transaction records. And those records need to be consistent for audit trails.

    What's worked for me: fetch rates from a reliable API (we use exchangeratesapi), show the rate and timestamp clearly in the UI, but always let users override if their bank gave them a different rate. Store both the system rate and the user-entered rate if different.

    The long-term consequence you're noticing is real. Teams that avoid it early end up with data integrity issues when they eventually need proper multi-currency reporting. Better to own it upfront even if the initial implementation is simple.

    1. 1

      This is super insightful, especially the point about rates being “baked into” transaction records and audit trails.

      Quick follow-up: when users override rates, is that mostly for reconciliation / accounting alignment, or does it ever affect user-visible balances and refunds? I’m trying to understand where override flexibility matters most.

      1. 1

        Good question. In my experience, it's almost always reconciliation/accounting alignment.

        The scenario that comes up constantly: user's bank shows a transfer of £412.37 on Monday, but the bank's actual FX rate that day was slightly different from the API rate, so the transaction in your system shows £411.95. Now the books don't match the bank statement, and someone has to manually hunt down that £0.42 difference.

        That's why I ended up building reconciliation tooling (ReconcileIQ at bankreconciler.app) - FX discrepancies are one of the most common pain points. When you're comparing thousands of transactions across systems, even tiny rate differences compound into hours of detective work.

        User-visible balances and refunds tend to be more forgiving because customers generally accept "approximately £X" - but accounting teams need exact matches. The override matters most at the point where your data feeds into their reconciliation process.

Trending on Indie Hackers
5 days post-launch: Top 50 on Product Hunt, zero signups, and why I think that's actually fine User Avatar 136 comments The feature you're most sure about is the one you should question first User Avatar 124 comments I built an AI fitness coach, then realized AI was only solving half my funnel User Avatar 73 comments 641 downloads, 2 sales, and I still don't know why User Avatar 51 comments I let 3 LLMs argue on the famous AI "Car wash: Walk or Drive" problem to prove a point. User Avatar 51 comments I built a macOS app to make mobile E2E testing less awful User Avatar 46 comments