Exchange Rates & Administration

Published by Dave Stephens on December 12th, 2006.

A few days ago I checked in an initial cut at multicurrency support for Coupa eProcurement. It’s based somewhat on Tobias Luetke’s Money gem, but with currency & exchange rate info pulled out into tables and amounts stored as floats for subcent pricing, among other changes. It’s available in SVN, of course, but it still needs more polishing and testing before it’ll make it into a release.

One of the main challenges in adding this support, and in extending the application in general, is to keep complexity optional and necessary maintenance to a bare minimum. Exchange rates are a good example of why this can be tricky, since they always need to be reasonably up-to-date, but companies get them from all sorts of different places and in different formats. The application integration side of the problem has even spawned aggregation & normalization businesses like Cloanto’s Currency System. While we shouldn’t rely on a particular commercial service for bringing in data, we also don’t want to leave the integration as an exercise for the implementor, as is done with many ERP implementations, so this is an area where I’d like to do more work. So far we have a CSV file loader that can import rates in the same way as all of our other loaders, but that’s not very interesting. I’ve also implemented (but not exposed) a SOAP callout to the Federal Reserve Bank of New York to automatically populate a number of rates, and that’s far more promising. Going forward I’d like to support a number of different web service-based rate sources, starting with the free/governmental ones, and let the admins configure what gets pulled in when, with the goal of enabling one-time setup and free data for all but the most demanding customers, with easy integration of commercial services for the rest. Ideas? Send ‘em to david at coupa.com.

Leave a Reply