Ordering foreign currency online is never the cheapest way to get it. You’ll always do better using your ATM card on arrival in the country you’re traveling to. That way you will get a bank’s foreign currency conversion rate. Ideally you would even have an ATM card from a bank that doesn’t charge you to use ‘out-of-network’ ATMs.
I use BankDirect, the checking account that awards you American Airlines miles for your average balance each month. (I get 100 miles for every $1000 average balance, and there’s a $12 per month fee for the account that isn’t waived). They not only don’t charge a fee to use ATMs that aren’t theirs, they rebate the fees that the ATM’s owner charges (up to $2.50 each time, four times per month). Since there’s an additional 1000 miles as an account signup bonus if you’re referred by an existing customer (the referrer gets 1000 miles as well), I frequently get e-mails from folks looking for a referral. Unfortunately I no longer have any to offer. I suggesting folks contact Deals We Like for that.
In the back of my mind I remember reading that the reimbursement of ATM charges didn’t apply outside the United States, but that’s never been my experience, here’s an example of seeing the fee rebated on a cash withdrawal I made in Singapore:
You’ll also likely do better just changing cash at your destination, outside of the major tourist spots.
But there are plenty of people who like to have cash in hand when they land. It’s useful for paying for a taxi or other transportation from the airport. And lots of folks prefer not to mess with getting cash on arrival after an 8 or 14 hour transoceanic flight. So they’re willing to pay a premium in order to have that convenience.
Personally, I pay for most things by credit card, my go-to is the Chase Sapphire Preferred because not only are there no foreign currency transaction fees but they also give double points on travel and dining which are what most of my foreign spend tends to consist of.
In no case will I allow someone to charge me in my ‘home currency’ of dollars, I always want to be charged in the local currency — my credit card company will give me a better exchange rate, and if I didn’t have a no foreign currency transaction fee card then the card company would still charge the same 3% even on the transaction in U.S. dollars because it took place outside the U.S.
I also have an American Express Platinum, Hyatt Visa, and British Airways Visa in my wallet, and these do not add foreign currency transaction fees to purchases outside the United States either.
And for cash, I’m well-traveled enough that I’ve changed plenty of currency. I used to get rid of foreign currency by paying down my hotel bill with whatever was left before leaving the country (in many countries you can also add it to your Starbucks card). But if it’s a country I’m likely to return to I’ll now just keep the cash so I have it available when I land next time. I’ll usually have a stash of Euros, Baht, Hong Kong and Singapore dollars at least.
If you do want the convenience of cash ahead of time, having it shipped to you in advance is a convenience. If you pay with a credit card you won’t get as good a rate as with an eCheck, and credit card companies will usually hit you with a cash advance fee as well.
(Note that links to credit cards in this post offer referral credit to me. The links are to the best-available offers I’m aware of for each card, though if you’re ever aware of a better one please let me know. I very much appreciate your support in choosing to use my links for your application.)
Update: Joe Brancatelli’s column last week confirms what I alluded to in the comments, that you generally can’t open a foreign transaction fee-free account with Capital One anymore. He reminds that Charles Schwab brokerage accounts, though, provide such a service.