In my final paycheck, my company paid me 500$ more than they should. That was 3 months ago. I didn't notice and now they want the money back. I understand that mistakes happen. The problem is that I don't have the money in that country anymore, and I have paid quite a lot of fees to transfer the money to my home country (plus the currency exchange fees). If I just send the money back, I would need to pay those fees again. Who is responsible for those fees?
I don't think you're going to find a consensus on here.
Legally we can't really tell, since you're now in a different country and we don't know which countries are involved, you'd need a really specialised lawyer who knows about cross-border wage disputes to tell you the answer I think.
Ethically, we're not all going to agree on this forum who's fault this is. But you have an advantage. $500 is a relatively small amount and given that you're in different countries, it's unlikely that they'll chase you legally. You don't work for them any more, so they have no hold over you.
So consider two things:
Your own honesty.
Whether you care about getting a reference from them or "burning bridges"
If you're going to pay them back, I would explain to them the situation with the fees. They may be willing to take the hit themselves, and admit to their mistake. After all, something is better than nothing. Be assertive talking to them, and don't accept from them, "Well you should have been checking your wages", remember they made the mistake and given the situation, should be glad to be getting it back.
Most jurisdictions require you to pay back overpayment of wages, so you are going to have to send the money back, and in a reasonably timely fashion. However I don't believe you are required to do so immediately. The company didn't spot this mistake for a few months, so they can reasonably wait a little longer.
I would contact the company and tell that you you fully intend to pay the money back, but that it will take some time since you are no longer in the country.
Next, go and find out what a reasonably cheap way of getting the money back to them is. Something like an international money order is relatively cheap, although it might take a week or two. Likewise a cashier's cheque (denominated in the company's currency). Investigate the costs of electronic transfers. Don't worry about how much it cost you to transfer the money in the first place, only how much it will cost to get it back to the company.
Once you've priced these, tell the company what your preferred method of transfer is, and how long it will take. If the cost is more than you are willing to pay out of goodwill, ask if they would be OK with you deducting the cost of the transfer from then amount returned. If it's not very large they will probably be OK. If they insist on a faster, more expensive route, it's pretty reasonable to expect them to cover the cost. It was their mistake after all.
Once you've reached an agreement, do what you said and everything should be OK.
It wasn't your error, so legality aside I would just ignore them. Three months is a long time, you don't have the money there, it's a substantial amount, hard luck.
It's too small a sum for them to chase someone in a different country over their error after a period of 3 months. The OP isn't responsible for their incompetence. Ignoring is the best thing, opening any channel of communication legitimises their claim somewhat, ignoring it doesn't.
This doesn't "burn bridges" - you're not telling them you're ignoring them, for all they know they're sending to wrong address or email is going in to spam. (And you're not lying because you're ignoring them and don't explain this).
Employers don't drag ex employees through court for pittances because they also have rep to lose.
And if they do, deal with it then.