While travelling two months ago I made a purchase in a store abroad with a card, everything went smoothly. Today I received a call from my bank saying that only yesterday the transaction went through and because of the change in the exchange rate there is an overdraft on my account (I terminated the contract for that card, so my balance was 0).
The bank proposed either to pay this overdraft sum or to write a cancel request for the transaction. But since I received the purchased goods in the store, I don't think I have a right to ask for cancellation.
So, my question is if the merchant has the right to delay the transaction that much? I paid with my card knowing the exchange rate at the moment, but if they actually charge me two months later, the rate can differ drastically. Is there anything I can do about it, except just paying the overdraft?
Details: the card (Visa) was issued by a Russian bank, the account is in RUB, the payment was in France in EUR.