Here’s a picture: You buy a nice bottle of wine from me for $50 (What can I say, you like wine and I sell some serious gourmet Brunello.) I’m just a broker so I’ll have the wine shipped to you and you’ll send the payment directly to my supplier… The catch is, all I know about this supplier is that the guy’s name is “Giovanni’s Vinos”, in Milan Italy, and that he has a Bank of America account somewhere in New York City. So now, I expect you to transfer $50 into Giovanni’s account at BofA based solely on this information. Sorry, dude.
In the world of Foreign Exchange (FX) Trading, it’s called Fund FX, and that’s exactly what I’ve been trying to implement for one of our Japanese clients for the last several months. Yeah, fun stuff.
On the interface, I need to extract settlement information from an imcoming MT202 SWIFT message. This message contains antiquated pseudo-cryptic character sequences clearly conceived by twisted alien creatures with pasty white faces to keep track of where we keep our pieces of green paper. A SWIFT MT202 Message is used to order the movement of funds (Your $50) to the Bank of America account of ‘Giovanni’s Vinos.’ It would look something like this:
:57D:BANK OF AMERICANEW YORK
I need to interpret these instructions as soon as they come in the system and match them against transfers and issue settlement instructions to BofA in New York. So now I’ve got to figure out a way to identify Giovanni’s account at BofA… Granted, in real-life the bank name would allow me to uniquely identify it, and all I really need to do is locate its SWIFT code and, with the recent introduction of Continuous Linked Settlement (CLS), all this has gotten a lot easier. The thing gets to be a real nightmare, though, if you’re trying to implement an interface to both Fund FX and CLS at the same time. What came first, the chicken or the egg?
What really irks me, though, is that both CLS and Fund FX are brand-spanking new services. Don’t you think they could at least have opted for a less arcane protocol than SWIFT? I fully understand the ubiquitous presence of SWIFT in the world of foreign exchange settlements. Still, If I’m architecting a new system, I’d much rather use XML and SOAP to communicate and let people generate their own SWIFT, if they need to. Apparently though, that’s just me…