Telnyx Messaging: RCS — Full Documentation
Complete page content for RCS (Messaging section) of the Telnyx developer docs (https://developers.telnyx.com). Root index: https://developers.telnyx.com/llms.txt · Lightweight index for this subsection: https://developers.telnyx.com/development/llms/messaging-rcs-llms-txt.md
Getting Started
RCS Getting Started
Source: https://developers.telnyx.com/docs/messaging/messages/rcs-getting-started.mdSend rich, interactive messages with RCS (Rich Communication Services). This guide covers the setup process, approval timeline, and how to send your first RCS message.
What is RCS?
RCS is a messaging protocol that delivers app-like experiences in the native messaging app—no app download required. Unlike SMS/MMS, RCS supports:- Rich cards with images, titles, and action buttons
- Carousels for product showcases
- Suggested replies for quick responses
- Read receipts and typing indicators
- High-resolution media (images, video, files)
Prerequisites
Approval process
RCS requires agent registration and carrier approval before you can send messages to the general public. The process is similar to short code approval: Contact sales to start the onboarding process. Provide your brand details, use case, and sample message content. Once submitted, Telnyx moves your agent into a testing stage. During this phase, you can invite beta test numbers using the API to test your integration while waiting for carrier approval. Carriers review and approve your agent. This process typically takes 4-6 weeks, similar to short code approval. Once approved, your RCS Agent can send messages to any RCS-capable device. Testing during approval: You don’t have to wait for full carrier approval to start testing. Once your agent is in testing stage, you can add beta numbers and send test messages via the API.1. Create a Messaging Profile
Navigate to Messaging in the portal. Click Add new profile, give it a name (e.g., “RCS Profile”), and click Save. Copy the Messaging Profile ID—you’ll need it when sending messages.2. Get your API key
Go to API Keys and copy your API key (or create one if needed).3. Send an RCS message
Once your RCS Agent is in testing stage (or fully approved), you can send messages to your beta test numbers or approved destinations. Send a simple text message via RCS:curl
Node
Python
Ruby
Go
Java
.NET
PHP
curl
Node
Python
curl
Node
Python
Response
A successful response looks like this:4. Handle incoming messages
Set up a webhook to receive customer replies. See Receiving RCS Webhooks for details.RCS vs SMS comparison
Next steps
Add AI-powered responses to your RCS agent Handle incoming RCS messages Check if a number supports RCS Explore all RCS parametersRCS with AI Assistant
Source: https://developers.telnyx.com/docs/messaging/messages/rcs-ai-assistant.mdBuild an AI-powered RCS agent that answers customer questions automatically. By connecting your RCS agent to Telnyx AI Assistant, you get intelligent responses powered by your knowledge base—no custom backend code required.
Why RCS + AI Assistant?
Combining RCS with AI Assistant solves two problems:- RCS carrier onboarding is complex — Carriers require functional agents before approval. AI Assistant gives your agent real functionality instantly.
- Building conversational AI is hard — Instead of coding your own NLP/LLM integration, AI Assistant handles it with your knowledge sources.
How it works
The key integration point is the Messaging Profile, which links your RCS Agent to an AI Assistant via theai_assistant_id field.
Prerequisites
- A Telnyx account
- An approved RCS Agent (or one in the approval process)
- Content for your AI Assistant (FAQs, docs, or knowledge base)
1. Create an AI Assistant
Navigate to AI Assistants in the portal. Click Create Assistant and give it a name (e.g., “Support Bot”). Write instructions that define your assistant’s behavior:- Documents: Upload PDFs, text files, or markdown
- Websites: Crawl your help center or documentation
- Custom: Connect via API for dynamic content
Save your assistant and copy the Assistant ID (e.g.,
assistant-11deda65-f3f0-457a-9946-ec021622b061).
2. Create a Messaging Profile with AI
Navigate to Messaging in the portal. Click Add new profile and name it (e.g., “RCS AI Profile”). In the profile settings, find AI Assistant and select your assistant from the dropdown (or enter the Assistant ID). Save the profile and copy the Messaging Profile ID.3. Link your RCS Agent to the AI-enabled profile
Once your RCS Agent is approved by carriers, link it to your AI-enabled messaging profile. If you already have an approved RCS Agent, update it to use your AI-enabled messaging profile:curl
Node
Python
- Your AI Assistant ID
- Your Messaging Profile ID
- Your RCS Agent details
4. Test your AI-powered RCS agent
Once your RCS Agent is approved (or using test numbers), send a message to trigger the AI:curl
Node
Python
- Receives the inbound message via the messaging profile
- Processes it with your configured LLM and knowledge base
- Sends an intelligent response back via RCS
Best practices
RCS messages display on mobile devices. Configure your AI to:- Keep responses concise (under 160 characters when possible)
- Use bullet points for lists
- Avoid long paragraphs
- Check your support ticket history
- Review FAQ page analytics
- Test edge cases and ambiguous questions
Monitoring and analytics
Track your AI Assistant’s performance in the portal:- Conversation logs: Review AI responses and customer satisfaction
- Knowledge gaps: Identify questions the AI couldn’t answer
- Response times: Monitor latency and throughput
Pricing
AI Assistant charges are based on tokens processed. Simple Q&A conversations typically cost fractions of a cent per exchange.
Try it yourself
Experience RCS + AI Assistant firsthand by chatting with our demo bot. Requirements: US phone number and RCS-enabled device (Android with Google Messages, or iOS 18+) {/* Deeplink URL from /v2/messages/rcs/deeplinks API - sms: scheme with @rbm.goog is the Google RCS standard */} Tap to open a conversation with our AI-powered support agent This demo uses an RCS deeplink to start the conversation. The deeplink URL is generated by the Telnyx API and uses the standard Google RCSsms: scheme with an @rbm.goog address:
- Telnyx AI Assistant for natural language understanding
- Knowledge retrieval from our documentation
- RCS rich messaging for a native chat experience
Next steps
Deep dive into AI Assistant configuration Learn RCS fundamentals Send interactive rich cards Create deeplinks for your own agentsSending Messages
Send RCS Messages
Source: https://developers.telnyx.com/docs/messaging/messages/send-an-rcs-message.mdSend rich, interactive messages using RCS (Rich Communication Services). This guide covers sending text, rich cards, carousels, and configuring SMS fallback for non-RCS devices. New to RCS? Start with the RCS Getting Started guide to set up your RCS agent and get approved by Google.
Prerequisites
- A verified RCS agent approved by Google
- A messaging profile with RCS enabled
- Your agent ID (from the RCS agent setup)
Send a text message
The simplest RCS message — plain text with optional suggested replies:curl
Python
Node
Ruby
Go
PHP
Send a rich card
Rich cards display media, text, and action buttons in an interactive format:curl
Python
Node
Card options
Send a carousel
Display multiple cards in a swipeable carousel — ideal for product listings:curl
card_width.
Add suggested actions
Suggestions appear as tappable buttons below your message: Quick reply buttons that send a predefined response back to your webhook:SMS fallback
Not all devices support RCS. Configure automatic SMS fallback for non-RCS recipients:curl
Python
Node
fallback.from number must be a Telnyx number on your messaging profile with SMS capability. The fallback message is plain text only — rich card content is not included.
RCS vs. SMS/MMS comparison
Related resources
Set up your RCS agent and get approved by Google. Check device RCS capability before sending. Handle inbound RCS messages and delivery events. Full API reference for RCS messaging.Capabilities & Deeplinks
Source: https://developers.telnyx.com/docs/messaging/messages/rcs-capabilities.mdCheck whether a recipient’s device supports RCS — and which features it supports — before sending. This lets you adapt your message format (rich card vs. plain text) and fall back to SMS when needed.
Query single number
Check RCS capabilities for a single phone number:curl
Python
Node
Ruby
Go
PHP
Response examples
Feature reference
Bulk capability query
Check up to 100 numbers at once to efficiently segment your audience:curl
Python
Node
Send with automatic fallback
Use capability queries to send the best possible message format:Python
RCS Deeplinks
Deeplinks let users start an RCS conversation from a website, email, or QR code — without having your number saved.Generate a deeplink
curl
Python
Node
Response
Use deeplinks
Embed the deeplink in an HTML button or link. The URL won’t open directly in a browser — it must be an “ tag or button click:Requirements
Related resources
Send text, rich cards, carousels, and suggested actions. Handle inbound RCS messages and delivery events. Set up your RCS agent and get approved. Full API reference for RCS messaging.RCS Deeplinks
Source: https://developers.telnyx.com/docs/messaging/messages/rcs-deeplinks.mdRCS Deeplinks content has been consolidated into the RCS Capabilities & Deeplinks guide. See the RCS Deeplinks section for full documentation including SDK examples and usage patterns.
Quick reference
Generate a deeplink to start an RCS conversation:Receiving Messages
RCS Webhooks
Source: https://developers.telnyx.com/docs/messaging/messages/receiving-rcs-webhooks.mdTelnyx 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
- A Telnyx account with an RCS Agent
- A publicly accessible HTTPS endpoint (or ngrok for local development)
- Your API key and public key (for signature verification)
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
Ifwebhook_url and webhook_failover_url are provided in the send request body, those are used.
If the messaging profile has webhook URLs configured, those are used.
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 — amessage.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)
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 amessage.received webhook to the URL configured on your RCS Agent.
Inbound message types
RCS supports richer inbound message types than SMS/MMS:payload.media[], RCS file attachments are nested under payload.body.user_file with both a full-resolution payload and a thumbnail.
postback_data for programmatic routing and text for the user-visible label.
SDK webhook handling examples
Handle RCS webhooks in your application with proper event routing, signature verification, and message type detection.Python
Node
Ruby
Java
.NET
PHP
Go
Building a unified SMS + RCS webhook handler
If your application handles both SMS/MMS and RCS, you need to normalize the different payload structures:Python
Node
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 theevent.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 rich cards, carousels, and suggested actions via RCS. Check device support and RCS feature availability. Compare with the SMS/MMS webhook handling guide. Set up your RCS Agent and start messaging.API Reference (RCS)
RCS
- Send an RCS message
- List all RCS agents
- Retrieve an RCS agent
- Modify an RCS agent
- Check RCS capabilities (batch)
- Check RCS capabilities
- Add RCS test number: Adds a test phone number to an RCS agent for testing purposes.
- Generate RCS deeplink: Generate a deeplink URL that can be used to start an RCS conversation with a specific agent.