If your schools' cafeteria is anything like the ones I'm familiar with they do not have the ability to give your son 30 cents in change. Most parents pay several dollars for several lunches. They just do not give change.
I don't know but I would talk with the cafeteria manager, if she's the one who takes money and ask how you can make this work. It's such a waste of energy trying to sort it out and getting upset without talking directly to the one in charge.
If you don't want him to have breakfast or snacks then you need to teach him to not get them. At 5 he's probably supervised by his teacher or an aid while in the cafeteria. Tell them that he's not to get bf or snacks. It's students serving up the food. They aren't able to distinguish between who does and who doesn't.
Direct communication is the way to resolve this issue. Find out what the cafeteria can and can't do and change the way you handle it to fit their system.
My granddaughter eats the cafeteria lunch part of the time. Her folks send $20 to school which is put on a card. She swipes the card when she enters the line to pick up food. A person does not handle money. The students dish out the food. There is one cafeteria worked in the kitchen with them supervising. I don't think that they even take cash. The student has to go into the cafeteria before school and put money on their account.
I suggest you're getting the messages, automatically, computer generated because he has no money on his account.