Hassan Zaidi
February 5, 2026

Managing money across multiple currencies is now standard for modern businesses. Companies hold balances in different currencies to pay suppliers, run international operations, and reduce FX friction. However, without built-in foreign exchange, teams often need to manually fund the correct account before making a payment. This adds unnecessary steps, increases operational risk, and slows down treasury workflows.
To solve this, we introduced Spot FX at Round, allowing customers to convert between currencies using existing balances. The goal was simple: help finance and treasury teams move faster, without introducing complexity or surprises.In this post, we share how we built Spot FX, the challenges we ran into along the way, and how we think about the future of FX in modern treasury operations.
Before launching Spot FX, Round already supported:
This meant the core FX rails and user interface were already in place. What we needed to build was custom handling for FX on top of our existing payments infrastructure.
Rather than over-engineering from day one, we set ourselves a two-week deadline to ship a minimal version of FX. The goal was to get the product into customers’ hands quickly and iterate based on real-world feedback.
To keep scope tight, we defined a single base case: FX between two Round business accounts. This allowed us to focus on the fundamentals that matter most in FX execution, including accurate quote presentation, settlement cut-off timeline management, and transparent execution.
FX only works if customers can trust what they see.
At Round, FX quotes are valid for 45 seconds. Quote windows inherently carry the risk of windowing effects, where market movements during that window could result in execution at a different rate from the one originally shown.
To avoid this, we made a clear product decision. Any FX trade that could result in a mismatch between the quoted rate and the executed rate fails outright. While this is conservative, it ensures customers never see unexpected outcomes in their account balances.
Accuracy and trust were prioritised over forced execution.
Early designs supported fixing both the buy and sell sides of an FX trade. As we built this out, it became clear that fixing the buy side required significantly more complexity due to the abstractions used in our payments engine.
We could have forced this into the system, but that would have increased technical debt. Instead, we made the decision to validate the core FX experience first and intentionally descoped fixed buy-side handling for the initial launch.
This allowed us to move faster while keeping the system clean and extensible.
For every FX trade, Round charges a markup for facilitating the exchange. Our initial idea was to invoice these fees at the end of the month. However, this approach created confusion.
If the dashboard shows an FX fee immediately, but the money is charged later, customers are left unsure whether the fee has already been deducted or is still pending. This also meant statements did not reflect real account balances.
To solve this, we used existing payment rails to charge FX fees as soon as the trade settles. This ensures that:
At Round, Fridays are reserved for trying to break the system while sharing pizza. For Spot FX, we ran a dedicated bug-bash session with the entire team. Within an hour, we uncovered a long list of usability issues and edge cases, all of which were resolved in the following week.
This process significantly improved the quality of the final release.
Spot FX is now live and being actively used by customers. Since launch, we have continued to iterate based on real usage and feedback from finance and treasury teams and have an incredible series of enhancements, including automations, scheduling (and more) planned.
As businesses become more global, we believe FX should feel invisible. It should work seamlessly where money already lives, without manual steps, delays, or reconciliation headaches. Spot FX is an important step toward that vision.
