What is the difference between one-way and two-way SMS?

One-way SMS sends messages without accepting replies; two-way SMS also receives messages from the recipient.

A sender's shape determines whether replies have an address. An eligible SMS number can receive a message; an alphanumeric name cannot.

The distinction sounds like a feature you switch on. It is closer to a physical property of what you sent from, with a per-country policy layered over it.

What makes a sender one-way?

Having no address behind it.

A reply is a message addressed to whoever sent the last one. Where the sender was a number, that address exists and a handset can use it. Where the sender was an alphanumeric sender ID, there is no number to address, and Bird's own model records that absence directly: such a sender's country code is null, described as "the country of the number this sender sends from", and it carries no number id because "an alphanumeric sender has no number behind it".

So the first cut is structural. Long codes, toll-free numbers and short codes can receive. An alphanumeric sender cannot, in any country, under any registration.

The second cut is per country. Each sender type a destination carries reports a direction of one_way or two_way, so a number type that takes replies in one destination may be send-only in another. The country's SMS policy also carries an is_two_way_supported flag of its own. Both are per-destination values that move, so they are published on SMS destinations rather than listed here; each destination page states whether two-way messaging is supported.

How does a reply reach my application?

As an event, pushed to you, with the message already stored.

When a subscriber texts one of your numbers, Bird stores the message alongside your sends and emits sms.received. The payload carries the body, the segment breakdown, both numbers, and the operator where the carrier reports one. There is nothing to poll.

For an automatic SMS response in Bird, use Automations with an Incoming SMS trigger and a Send SMS step. Map the reply to the incoming sender and choose an eligible outbound sender. Your workspace permissions control which actions you can take.

Bird also evaluates the reply against the keyword rules for that number. A supported stop keyword records a sender-and-subscriber suppression and sends the opt-out confirmation, and it still emits sms.received. Do not assume that keyword handling has finished when your workflow receives the event.

Exclude applicable keyword texts from a general acknowledgement, whether you use an Automation trigger filter or your own handler. Otherwise, the acknowledgement can race the opt-out handler and reach someone who asked to stop. The applicable STOP keywords vary by country.

Which sender do I answer from?

Use the number the person contacted when it remains eligible, so the reply stays recognisable. Your application sends through the public SMS endpoint with the usual sender, destination and recipient checks.

Bird's built-in keyword acknowledgements have a separate internal reply context. That context is not a field your API request can claim. It does not allow a conversational response or a campaign to bypass registration, destination access or a person's opt-out.

Before replying, classify the incoming message. A STOP or help request should follow its applicable handling flow, rather than triggering an unrelated automated response. Sender requirements and keyword handling describe the relevant checks.

What does two-way cost me that one-way does not?

Plan how you will process incoming messages, choose reply-capable numbers, and handle requests from recipients.

  1. A workflow for incoming messages. Use Automations for a native workflow. For a custom application, configure an endpoint that verifies and processes events reliably, including retries and duplicate deliveries. Webhook handling covers signatures, retries and replay. The event's identity is in the webhook-id header, outside the body. Use its value as your deduplication key.
  2. A number in every destination that needs one. An alphanumeric sender cannot be part of a two-way programme, so a campaign that mixes them needs a plan for the destinations where only the name is available. Going one-way is not a way out of the obligation either: a regime that grants a right to opt out can require a one-way sender to disclose that replies do not work and to offer another route, which what is the TCPA sets out.
  3. Handling the messages you did not design for. People reply to notifications. Some of those replies are questions, some are opt-outs, and some are neither.
  4. Reading the inbound side of your own numbers. Bird reports inbound volume separately from outbound, so a two-way programme has a second set of numbers to watch.

If none of those apply, one-way is not a downgrade. It is the smaller commitment, and an alphanumeric sender buys you a recognisable name in the from field in the destinations that carry it. Which sender type should I use has the trade in full, and two-way SMS covers what Bird ships for the reply side.

In short

  1. One-way is a property of the sender, not a setting.

    A name has no address, so nothing can be sent back to it. A numeric sender still needs SMS capability and an inbound route; an alphanumeric sender cannot receive replies.

  2. A destination can be one-way for a type it otherwise carries.

    Each sender type a country carries reports its own direction, so the same number type can be two-way in one destination and one-way in another.

  3. A reply arrives as an event, not as a poll.

    Bird stores the inbound message and emits sms.received with the body, the segment breakdown, both numbers and the operator when the carrier reports one.

  4. Your API reply is a send with its own checks.

    Use an eligible sender and honour the recipient’s request. Internal keyword acknowledgements do not grant your application a registration or suppression exemption.

Put it into practice.

Continue with the documentation, guides and examples for this topic.

Get an implementation brief

Build on the same network.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Start building with Bird in minutes.