Skip to main content
Telnyx sends webhooks to notify your application about RCS messaging events — delivery status updates, inbound messages, read receipts, and suggestion responses. This guide covers RCS-specific webhook payloads, how they differ from SMS/MMS, and how to handle them in your application.

Prerequisites


RCS vs SMS/MMS webhooks

RCS webhooks have significant structural differences from SMS/MMS. Understanding these is critical when building a multi-channel messaging application.
For SMS/MMS webhook handling, see Receiving Webhooks for Messaging.

Webhook URL configuration

RCS webhook routing differs from SMS/MMS:

URL priority for outbound status

1

Per-request URLs

If webhook_url and webhook_failover_url are provided in the send request body, those are used.
2

Messaging profile URLs

If the messaging profile has webhook URLs configured, those are used.
3

No webhook

If neither is configured, no webhook is delivered. Events are still logged in Message Detail Records.

Webhook event types


Delivery status webhooks

When you send an RCS message, Telnyx notifies you as the message progresses through each status.

Delivery status flow

Status reference

Example: Delivery receipt payload


Read receipts

RCS uniquely supports read receipts — a message.read event is sent when the recipient opens and views your message. This is not available with SMS/MMS.

Example: Read receipt payload

Handling read receipts

Use read receipts to:
  • Track engagement — Know which messages were actually read vs. just delivered
  • Trigger follow-ups — Send a follow-up if a message was delivered but not read after a threshold
  • Analytics — Calculate read rates for different message types or campaigns
  • UI updates — Show “read” indicators in your chat interface (like blue checkmarks)
Not all devices or carriers support read receipts. A missing message.read event doesn’t necessarily mean the message wasn’t read — the user may have disabled read receipts on their device.

Inbound message webhooks

When someone sends an RCS message to your agent, Telnyx delivers a message.received webhook to the URL configured on your RCS Agent.

Inbound message types

RCS supports richer inbound message types than SMS/MMS:

SDK webhook handling examples

Handle RCS webhooks in your application with proper event routing, signature verification, and message type detection.

Building a unified SMS + RCS webhook handler

If your application handles both SMS/MMS and RCS, you need to normalize the different payload structures:

Webhook IP allowlist

If your server uses a firewall or ACL, allowlist the Telnyx webhook source subnet:

Best practices

Process webhooks asynchronously. Acknowledge receipt immediately and handle the event in a background job. If your server doesn’t respond within 2 seconds, Telnyx retries the webhook.
The same webhook may be delivered multiple times (up to 3 attempts). Use the event.data.id as a deduplication key to avoid processing the same event twice.
Validate the telnyx-signature-ed25519 and telnyx-timestamp headers using your account’s public key. See webhook security for implementation details.
When an RCS message fails (delivery_failed status), automatically fall back to SMS to ensure message delivery. Check the to[].status field in message.finalized events.
Read receipts provide valuable engagement data but aren’t guaranteed. Don’t make critical business logic dependent on receiving a message.read event — some users disable read receipts.

Next steps

Send RCS Messages

Send rich cards, carousels, and suggested actions via RCS.

RCS Capabilities

Check device support and RCS feature availability.

SMS/MMS Webhooks

Compare with the SMS/MMS webhook handling guide.

RCS Getting Started

Set up your RCS Agent and start messaging.