Telnyx Messaging: RCS — Full Documentation
Complete page content for RCS (Messaging section) of the Telnyx developer docs (https://developers.telnyx.com). This file: https://developers.telnyx.com/docs/development/llms/messaging-rcs-llms-full-txt.md · Root index: https://developers.telnyx.com/llms.txt
Getting Started
Agent Registration Quickstart
Source: https://developers.telnyx.com/docs/messaging/rcs/agent-registration.md
Register an RCS agent
This quickstart takes an RCS agent from brand registration to carrier launch. The process has two stages, allowing the agent to be created and tested before all carrier launch information is available. The first stage registers the brand, creates the agent, submits its basic configuration, and adds test devices. The second stage provides the campaign and testing evidence needed for carrier review.Prerequisites
Before starting, gather:- A Telnyx account with an API key
- A Messaging Profile ID
- Business registration details, including the legal name, EIN, address, website, and contact
- Public HTTPS URLs for the agent logo, hero image, privacy policy, and terms and conditions
Stage 1: Create and test the agent
Create a brand
A brand represents the legal business operating the RCS agent.brand_id. A brand can be updated while its status is CREATED. After submission, its registration fields are locked.
Submit the brand
202 Accepted. Poll the brand until its status becomes VERIFIED:
VERIFIED. REJECTED and FAILED are terminal states that require investigation before creating another registration.
Create the agent basics
Create the agent with only the information needed for the first stage. TheIdempotency-Key is required. Reuse the same key and request body when retrying an uncertain response.
agent_id. Agent fields can be updated while the status is CREATED.
Using an existing idempotency key with a different request returns a conflict. Do not generate a new key for a retry of the same logical agent creation.
Submit the agent basics
basics_status is SUBMITTED or APPROVED, the agent can remain in this stage during testing and while carrier launch information is gathered. There is no requirement to begin the second stage immediately.
Add a test device
After the basic submission completes, add an RCS-capable phone number in E.164 format:Stage 2: Submit the agent for launch
Start this stage after gathering the campaign, consent, and testing information needed for carrier review. Thetesting.test_url must point to a publicly accessible video that demonstrates START, STOP, and HELP behavior and an example interaction with the agent.
202 Accepted. Telnyx submits the campaign and testing sections in the order required by the provider, then tracks external review and launch.
Monitor launch status
Retrieve the agent untilstatus becomes LIVE:
Once the agent is
LIVE, continue with Send an RCS message.
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: Create and submit the legal business behind the agent. Telnyx tracks the external brand review until verification completes. Create the agent with its basic configuration, submit it, and add test devices. The agent can remain in this stage while campaign and carrier launch information is collected. When ready, provide the campaign, consent, message examples, and testing evidence. Telnyx submits each section in the provider’s required order. Telnyx tracks external verification and carrier launch until the agent is live. Review duration depends on the brand, use case, and carriers. Once approved, your RCS Agent can send messages to any RCS-capable device. Follow the RCS agent registration quickstart for the complete API workflow. Testing during approval: Testing can begin before full carrier approval. Once the agent reaches the testing stage, add test devices and send test messages through 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 the RCS agent reaches the testing stage or is fully approved, send messages to its test devices 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+) 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<a> 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 Brands
- Create an RCS brand: Creates an editable RCS brand draft. Creating the draft does not begin external review.
- List RCS brands: Lists RCS brands owned by the authenticated organization.
- Retrieve an RCS brand: Retrieves an RCS brand and its current lifecycle status.
- Update an RCS brand: Updates one or more fields on a brand while its status is
CREATED. Submitted brands cannot be changed. - Submit an RCS brand: Starts asynchronous provider provisioning and external review for a brand. Repeating this request for an in-progress brand returns its current state without cr…
RCS Agents
- Create an RCS agent: Creates an editable RCS agent draft under a brand. The
Idempotency-Keyis scoped to the authenticated organization. Reusing the key with the same request ret… - List RCS agents: Lists RCS agents owned by the authenticated organization, optionally filtered by brand.
- Retrieve an RCS agent: Retrieves an RCS agent, section statuses, test devices, carrier approvals, and provider capabilities.
- Update an RCS agent: Updates one or more fields on an agent while its status is
CREATED. Submitted agents cannot be changed through this endpoint. - Submit RCS agent basics: Starts asynchronous provider provisioning and submits the agent’s basic configuration. The brand must be
VERIFIED. Repeating this request for an in-progress… - Submit an RCS agent for launch: Adds the campaign and testing configuration, then starts asynchronous carrier launch. Agent basics must already be submitted. Repeating a launch that is alread…
- Add an RCS agent test device: Adds an RCS-capable test number after provider agent creation. Repeating the request for a number already attached to the agent returns the existing test devic…
- List RCS agent test devices: Lists test devices attached to an RCS agent.
- Remove an RCS agent test device: Removes a test device from an RCS agent and its provider registration.
- List RCS agent carrier approvals: Lists carrier approval records for an RCS agent. The provider may expose per-carrier, hub-level, or bot-level approval status.
RCS
- Send an RCS message: Queues an outbound RCS message through the selected RCS agent. Check recipient capabilities before sending features that require RCS support.
- List all RCS agents: Returns RCS agents available to the authenticated account.
- Retrieve an RCS agent: Returns the configuration and current state of the specified RCS agent.
- Modify an RCS agent: Updates the supplied configuration fields on the specified RCS agent.
- Check RCS capabilities (batch): Returns RCS capability information for multiple recipients in one request.
- Check RCS capabilities: Returns the RCS features supported by the specified recipient for the selected agent.
- 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.