Hey hey y'all! Today, I want to discuss FX cancellations and how they work within the API space for global payments. It's a common frustration among Neobanks and payment companies when integrating new FX and global payment APIs into their products for their users.
Here's a common scenario: A user in Mexico needs to pay an invoice to a supplier in Europe. They use their banking or payment service app to create a payment to convert their 369,420 pesos into 19,600 euros. After a few hours, they realize they actually need to send 40,000 more pesos. So, they contact the bank to cancel the payment, and to their disbelief, their app says it will cost them $2700 pesos to cancel because the FX rate has changed since they initiated the payment. This leads to massive customer frustration.
The big question these platforms/apps have is, "Why do FX cancellations have to work like this?" It's such a terrible experience for their customers. Can't we just cancel without charging them more money? Well, the good news is yes, you can improve the experience. The bad news is that not every provider or integration will be the same, which poses a difficult product challenge.
So, why do some FX companies charge you money for a cancellation? It's either:
A. They are double-dipping (taking an FX spread on both sides of the transaction).
B. The spread you are being charged is not high enough, and the FX rates have fundamentally changed to your/their detriment.
C. You need to renegotiate your contracts.
To explain point A better, a sneaky practice in FX is double-dipping. When you create a payment on an FX platform, you are locking in a rate for a currency. FX companies add a spread to that rate, let's say 0.75% over the market rate for the payment. So, a $1000 payment would actually cost you $7.50.
Now, let's say your customer decides to cancel. This means that the FX company needs to sell the currency they just bought and buy the original source currency back. When they make that sell, they may charge you an additional 0.75%. This is what we call a double-dip and it's super shady.
Now, let's talk about B. Instead of charging you a large spread in reverse, some FX companies will charge a small 0.01-0.04%. They will deduct this from the 0.75% that was originally charged on the payment so that you or the customer will not have to pay any additional money. However, if your spread is not large enough (e.g., it's only 0.05%, which is an incredible rate), and the market rate has changed by more than 0.05%, they will ask you to pay the difference, which you then pass to your customer. There's not much you can do about that, so it's crucial to have a sufficient spread to cover such situations.
Lastly, there's option C: renegotiating your contracts. Personally, I believe that if an FX payment is canceled, you or your customer should get the entire payment amount back, minus the actual market change in the FX rate. In other words, if $1000 was sent, and your FX provider collected 0.75% or $7.50, they should book the reverse trade for the full amount, including the $7.50, and only charge you or your customer for the difference in the rate. This way, no one is making any extra money on a service that was theoretically never provided.
To achieve this, I recommend discussing this with your FX providers and getting it included in your contract terms. Unfortunately, this is not yet standard across the industry, but it should be.
So there you have it! Now you are an expert in FX payment cancellations.
At Routefusion, we strive to be as transparent as possible throughout this entire process. It can be an uphill battle at times, but our goal is to provide the best experiences for you or your customers no matter what.
Feel free to reach out if you need assistance with embedded FX payments or global accounts. Ciao for now!