English uses “can” for two different things and lets context sort it out. Indonesian separates them, and the separation is not optional.
Bisa is ability. Is it possible, am I able. Boleh is permission. Am I allowed.
Ability
Saya bisa bahasa Indonesia sedikit. ‘I can speak a little Indonesian.’
Bisa lebih murah? ‘Can you go lower?’
Saya tidak bisa datang besok. ‘I can’t come tomorrow.’
That middle one is the bargaining question from the money lesson. It asks whether a lower price is possible, not whether the seller is permitted to offer one.
Permission
Boleh masuk? ‘May I come in?’
Boleh foto? ‘Is it okay to take a photo?’
Tidak boleh merokok di sini. ‘Smoking is not allowed here.’
Where the difference bites
Tidak bisa means it is impossible. Tidak boleh means it is forbidden.
Telling someone tidak boleh when you meant tidak bisa turns “I’m not able to” into “you are not permitted to”, which is a very different sentence to be on the receiving end of.
Boleh on its own means yes
This is worth knowing before you hear it. Asked whether something is possible, an Indonesian will often answer with a single boleh, meaning sure, go ahead, no problem.
Boleh lihat? ‘Can I have a look?’
Boleh. ‘Go ahead.’
It is warm and casual, and it is one of the most useful single words you can add to your own speech.
Asking permission gently
Add ya at the end and the question softens considerably.
Boleh tanya, ya? ‘Mind if I ask something?’
Combined with maaf from the politeness lesson, this is how you open a conversation with a stranger without sounding abrupt.