The banking system in Serbia is a bit under-developed. I do prefer banking in Georgia, and that's saying something since I don't like banking in Georgia.
I tried a couple different banks but many of them aren't easily accessible to foreigners. Two that are are Raiffeisen and Mobi Banka. I opened accounts with them both. Raiffeisen is pretty easy to open an account with, but I didn't like the experience overall. They weren't transparent about fees and the English of the banker I had was not very good. Mobi Banka I think was easier to open an account with, and the banker spoke very good English.
I only played around with my Raiffeisen account for about a day before I decided to close it. I think their accounts are basically useless. I don't mind paying fees but with Raiffeisen you pay fees for very little functionality. Mobi Banka provides more functionality (as in, you can actually use your money by doing things like sending wires, which Raiffeisen didn't let me do), has better online banking, better customer support and a better app. Overall the experience with Mobi Banka is better, plus their STARTER account has no fees. The only annoyance about Mobi Banka is there is just one branch in the country, and that's in New Belgrade. Considering they're an online-
first bank though it's not so bad. Their ATMs accept RSD and EUR deposits and are quite common to find around Belgrade.
For opening an account you need a "white card" that you get when you register your accommodation at a police station or at a hotel (you're legally supposed to do this anyway whenever you enter Serbia, but many tourists don't). With a white card and your passport you can open accounts at both Raiffeisen and Mobi Banka.
One thing to note about opening accounts is that you have to have an address in the country of your passport. I had issues opening an account because I wanted to use a real address. I do not live (or have ties) to the country of the passport I used to open a
bank account (and you have to use the passport you entered Serbia with). The bankers did not seem to understand that you can live in a different country than your passport. They kept insisting that I had to have an address in the country of my passport, and I kept insisting that I had no such address. They did not accept my Serbian address. They then told me to use my last address in the country of my passport, but again that didn't work for me since I don't have an address in the country of my passport. After a bit of back and forth I asked them point blank if I could just make up an address in the country of my passport. They agreed. So I went on Google Maps and picked a random address, and now that is associated with my bank account(s). There is no way to change the address to be an address I have actual ties to. From a
privacy perspective this may actually be beneficial to some people.
In Serbia there are resident and non-resident accounts. To have a resident account you have to be in the country for more than one year or have a visa for more than one year. Serbia only issues first-time visas for up to exactly one year, so this means it's practically impossible to open a resident account until after you've lived in Serbia for over one year.
There are many differences between resident and non-resident accounts. The biggest difference is that non-resident accounts do not have access to the RSD payment system. Non-residents can deposit RSD
cash into their accounts and spend RSD using a DinaCard, but cannot send RSD to a resident account. Non-residents can send RSD to non-residents using SWIFT, but cannot send using the cheaper local bank transfer system. Receiving RSD is also a little more tricky. Basically a non-resident account works well as a foreign deposit account but doesn't work well actually within Serbia. If you want to send money to another Serbian bank account, for example, the money has to use SWIFT and go outside of Serbia (via an intermediary bank) and back into Serbia. Non-residents cannot pay any local Serbian bills (to pay bills you need to use cash and pay at a post office, exchange office or a bank).
From my experience, wire transfers costs around 30 EUR. If you're going to bank in Serbia, I'd recommend going with Mobi Banka and getting the PROGRESIV account. This costs 300 RSD a month and gives you a MasterCard. You can pair that MasterCard with
Revolut or
TransferWise to move money out of the country. This gives you more freedom since otherwise you have to give documentation to the bank for every wire transfer you initiate. I got rejected on a few wires despite giving documentation, so they're fairly strict on who you can and cannot send wires to. For example, there is a rule where you have to transfer money into a savings account first and then back into your deposit account before you are allowed to wire the money to another bank account in your name outside of Serbia. There are lots of silly little banking rules like this in Serbia. There are no restrictions on using the MasterCard. Sending money from my Mobi Banka account using my MasterCard via TransferWise costs a lot less than the wire transfer fees they charge too (at least for small amounts, I haven't tried with larger amounts).
I like that I can deposit money into the account without questions, and I can move money out of the account without questions using TransferWise. Overall though I don't think Serbia is a great place for banking. I feel that I have more freedom with a Georgian bank account. Mobi Banka is probably more remote-friendly though than any bank I have experience with in Georgia (in Georgia they always seem to want me to come into the branch). As long as you know what you're getting into though it's not a bad place to bank.