Ran into this on a cross-border order: card authorized in EUR, capture fires four days later once the item ships, settlement currency is USD. Between those two events the EUR/USD rate moved about 1.1%. The captured amount came back higher than the number shown at checkout, and the customer's statement didn't match the order confirmation.
Turns out card networks only guarantee the authorization hold in the cardholder's currency for a window that varies by processor, usually somewhere between 24 and 72 hours. Past that window, some acquirers recalculate the conversion at capture time using the current rate instead of the one quoted at authorization. Nothing in the API response flags this. You just get a captured amount that's a few cents or a few dollars off from what you authorized, and your reconciliation job either silently absorbs it or throws a false mismatch alert depending on your tolerance threshold.
We ended up capturing the FX rate at auth time ourselves and comparing it against the settlement report line by line, then eating small drifts under a fixed cap and flagging anything above it for manual review.
For anyone running delayed capture across currencies: do you reprice at capture, refund the delta, or just absorb it below a threshold?
Top comments (0)