A practical character limit I recommend for an SMS QR code is under 160 characters. Keeping the message short ensures it loads quickly, stays clear and readable when the messaging app opens, and doesn't overwhelm the user. Short messages are more likely to be sent as intended and make the action feel easy rather than like extra work.
Don't put more than 160 characters in a QR code. While almost any QR code standard can accommodate thousands, real-world success comes from real-world density. Once you've slipped the 160-char GSM-7 SMS headlock, you've put too many modules in your QR code. The density's too high and the phone's scan will fail. In our engineering delivery work, high-density QR codes cause the worst scan friction. Smaller modules require sharp focus, improved lighting, and in the field you can't control for either. Encoding no more than 160 characters together means your code remains at a version a mid-range smartphone can snap easily. If your message is too complex for such a short string, do yourself a favor and encode a short URL that does a web-based flow, not a complex SMS payload. It's easy to forget that the worst camera in your user's pocket is going to be the limiting factor, not the best.