When building two-way SMS on Bird, do not assume STOP handling is automatic. A recipient's STOP text arrives as a plain sms.received event, and your handler must detect it and suppress future sends to that number. Subscribe to sms.received for inbound traffic and add the opt-out branch yourself, or you will keep messaging people who opted out.

Context: MessageBird's own bird-ai changelog, version 0.18.0: subscribe to sms.received to be pushed inbound SMS instead of polling, and a STOP arrives as an ordinary received message and is yours to act on. The payload carries the body, segment breakdown, both numbers, and the sending operator where the carrier reports one, but opt-out enforcement is the integrator's job, not the platform's.