I have a software platform I developed.
I am in the United States, one of my customers is in Kuwait.
They charge 40 KWD for each of their customers, but we do the credit card processing through our system and add a convenience fee, of let's say, $0.36 USD.
The total of each transaction would be something like 41.11 KWD.
That 41.11 would be charged for each customer, roughly 500 times per day, so 20,555 KWD, respectively.
Exchange rates change constantly, so the customer in Kuwait expects that his service charge will always be 41.11 KWD to the customer, however, by the time it gets to my account in the US, the daily fluctuation would cause the following issue:
Monday - $20,555 Tuesday - $20,356 Wednesday - $20,520 Thursday - $20,432 Friday - $20,683
When the customer batches out and wants to be paid for those 500 transactions per day at 40 KWD (his rate minus the service charge), he is expecting: $100,000
We took in $102,546 from him with service charges, which means if we pay him $100,000 we keep $2,545, however, in no way does that translate out to the $0.36 USD service fee we intended. Sometimes it'll be higher, sometimes lower.
How can we remove the gamble? The customer expects to receive his money exactly as if he were handed cash. We expect to get our service fee exactly.
How can we, with respect to the exchange rate, make sure everyone is paid correctly and fairly at any time?