The official bank exchange rate, bank fees and limit restrictions were a deterrent for us to use the ATMs. Fortunately, we (Canadians) brought enough USD so if we weren't paying with credit card, we paid in USD and received pesos in change. In this way we saved a lot of money on banking fees (limit was 1000 pesos per transaction) and exchange (6 pesos per USD). We found restaurants willing to pay 10.50 pesos per USD! Some establishments post their exchange in the window or a the till so keep your eyes open. Money exchange on the street is minimum $100 USD and they have to take you somewhere off the street as this is not a legal transaction. Much more risky than the alternative or just paying in USD and getting pesos in change.