Most of payments in Bulgaria are made with cards. Payment with a card is the best option, since no fees are retained. In large shopping malls, supermarkets and cafes, almost everywhere, there are terminals. Even in ordinary small shops you can pay with a card, but not on the market, transport and street stalls. Therefore, you will always need a certain amount of cash. You may need to use public transport, buy a souvenir or something in the machine that accepts cash only, and the like. Cash payment is also expected for apartment rent, but if you're staying in a hotel, payment with a card is most likely.
Bulgaria is the EU member state, but it is not accepted to Schengen area so far.
Most of the payments are made in the local currency BGN. With the usual European card you can withdraw money without problem. The bank will transfer your currency in BGN at the current rate. Of course, you’ll lose part of the amount, but these are inevitable losses during the cash withdrawal. In Bulgaria you can withdraw money from any ATM. Most of the banks take 1% of the amount for this service. If you are the card owner of one of the world's bank, which has representation in Bulgaria, you can withdraw cash from its ATM without overpayment. UniCredit Bank’s debit card is served in all ATMs without commission, as well as everywhere in the world.