I have travelled to Thailand many times since the past 10 years or so. In the past, when I make short trips, I tend to estimate the amount I needed and would bring sufficient amount to use. At first, I used to change into Thai baht before arriving.
But after I know of a good moneychanger (located in Bangkok Chinatown), I would bring my local currency and change to Thai baht upon arrival. Since I travel to Thailand few times a year, I would usually keep extra Thai baht to take back home. When I come back to Thailand, the additional amount would enable me to use pending when I visit the moneychanger.
However if I am travelling for a longer duration like more than a month (on tourist visa), I do not find it viable to bring lots of cash while travelling. I would then use my debit card to perform the withdrawal which it deducts the savings account in my home country.
I am from Malaysia. Few years ago, there was a huge migration whereby all ATM/debit cards are required to be changed to a new pin and chip debit card. By default, overseas withdrawal is not enabled in this card. The customer usually need to inform the bank staff during issuance or enable the service on his/her own via the ATM machines in Malaysia (by inserting the physical card at the ATM machine of the bank, then key in pin and then select to enable the overseas ATM facility). Most of the banks also allow you to enable the service via their online banking.
All new pin and chip Debit cards come enabled with either Visa or Mastercard service which enable wordwide withdrawal at any machines that have the Visa/MasterCard facility…. but again for Malaysian issued Debit cards, the cards need to be first changed to comply with the regulation AND the overseas withdrawal facility must be enabled. If you forgot to enable the service, your Debit card would not be usable overseas!
And I do not put all my eggs in one basket- I would bring more than 1 debit card… meaning I would have funds deposited in a few local bank accounts to use.
Charges when performing a cash withdrawal using an ATM/Debit card:

IMPORTANT: I am referring about Debit Card which differs from Credit Card. As much as possible, AVOID performing cash withdrawal using a credit card unless it is an emergency and you have no other choice ….because you would incur high charges which compromises of a cash advance fee/charges (usually 5% or 10% of the withdrawal amount, subjected to a minimum amount) AND daily interest charges until the day you fully settle the entire cash balance. This is because using credit card, you are using the bank’s money. Whereas Debit card, it is your own money.
When you use your Debit/ATM card issued from another country to withdraw via an ATM machine in Thailand, generally you would incur 3 types of fees/charges:
1. Service charge by the bank in Thailand (between 200 to 250 baht)
2. Service charge by your original bank (in your country) (you need to check with your issuing bank as the charges varies)
3. Unfavourable exchange rate (if you withdraw via the Visa/Master network, it follows their exchange rate which is always higher than money changer…. but it is understandable because you pay for the convenience of the facility)
The service charges (1 & 2) are charged PER WITHDRAWAL. Most ATM machines in Thailand can dispense maximum up to 20000 – 25000 baht each time. And the charges is fixed each time the machine dispenses cash. Hence, you pay the same charges regardless of whether you are withdrawing 1000 bath or 20000 baht for one duration in that ATM machine.
Therefore if I were to do withdrawal from the ATM machine, I would tend to withdraw maximum. Minimize the number of withdrawal and maximum the amount. In the past, some of my friends made the mistake of withdrawing about 3000 baht and then got a shock when they reach their home country and saw the charges in their bank statement.
Note: Banks like Citibank would charge a low or no service charge when you are withdrawing cash using your Citibank Debit card at a Citibank Thailand ATM machine. But do note that Citibank is also not widely available in Thailand and if the transport cost of getting to a Citibank branch does not warrant the savings in service charge, then you might as well withdraw from other banks.
How about other services like Western Union?
I find the service charges in Western Union to be very high compared to using ATM withdrawal. No doubt, before coming you can send the money to yourself for withdrawal via Western Union in Thailand if the service charge in your home country is reasonable. But I do not use that method because of the high charges.
Once, a friend of mine sent about RM5000 (ringgit) to Thailand and paid about RM500 service charges! Another thing is that it is also subjected to exchange rate which is generally not as favourable as money changers. Moneygram may be a cheaper option if you choose to send money. Another thing is that Western Union and Moneygram offices are not widely available in Thailand as compared to the wide array of ATM machine riding on Visa/Master network.