The use of XE.com for calculating foreign currency PayPal transactions is really a compromise. We’ve posted about this in the past and it’s something we discussed when we recently added support for multi-currency in PayPal.
The problem with PayPal is that they calculate exchange rates 2-3 days after the event, so this information is not available to us when lodging the payment to a given invoice. So rather than simple avoiding foreign currency payments altogether (which we had done previously), we infer the rate from XE.com. Obviously using this approach will result in an accrued difference that will need to be periodically journalled to “currency charges”.
It’s not a perfect solution but it was one of the few ways in which we could support multi-currency in PayPal.