Send 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)
RCS is currently supported on Android devices. Apple announced RCS support in iOS 18.
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:
Submit your RCS Agent
Contact sales to start the onboarding process. Provide your brand details, use case, and sample message content.
Testing stage
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.
Carrier approval
Carriers review and approve your agent. This process typically takes 4-6 weeks , similar to short code approval.
Go live
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
Create a profile
Click Add new profile , give it a name (e.g., “RCS Profile”), and click Save .
Note your profile ID
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.
Text Message
Rich Card
Suggested Replies
Send a simple text message via RCS: curl
Node
Python
Ruby
Go
Java
.NET
PHP
curl -X POST https://api.telnyx.com/v2/messages/rcs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"agent_id": "your_rcs_agent_id",
"to": "+15559876543",
"messaging_profile_id": "your_messaging_profile_id",
"agent_message": {
"content_message": {
"text": "Hello from Telnyx RCS!"
}
}
}'
Send a rich card with an image and action button: curl -X POST https://api.telnyx.com/v2/messages/rcs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"agent_id": "your_rcs_agent_id",
"to": "+15559876543",
"messaging_profile_id": "your_messaging_profile_id",
"agent_message": {
"content_message": {
"rich_card": {
"standalone_card": {
"card_orientation": "VERTICAL",
"thumbnail_image_alignment": "LEFT",
"card_content": {
"title": "Welcome to Telnyx",
"description": "Experience rich messaging with RCS",
"media": {
"height": "MEDIUM",
"content_info": {
"file_url": "https://example.com/image.jpg"
}
},
"suggestions": [
{
"action": {
"text": "Learn More",
"postback_data": "learn_more_clicked",
"open_url_action": {
"url": "https://telnyx.com"
}
}
}
]
}
}
}
}
}
}'
Media URLs must be publicly accessible. Supported formats include JPEG, PNG, and GIF for images.
Add suggested reply buttons for quick customer responses: curl -X POST https://api.telnyx.com/v2/messages/rcs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"agent_id": "your_rcs_agent_id",
"to": "+15559876543",
"messaging_profile_id": "your_messaging_profile_id",
"agent_message": {
"content_message": {
"text": "How would you rate your experience?",
"suggestions": [
{
"reply": {
"text": "Great!",
"postback_data": "rating_great"
}
},
{
"reply": {
"text": "Good",
"postback_data": "rating_good"
}
},
{
"reply": {
"text": "Could be better",
"postback_data": "rating_poor"
}
}
]
}
}
}'
Response
A successful response looks like this:
{
"data" : {
"record_type" : "message" ,
"direction" : "outbound" ,
"id" : "40319c33-f083-4d2a-a433-a91983b41be5" ,
"type" : "RCS" ,
"messaging_profile_id" : "400199c4-6145-43d2-a471-4c459220fcae" ,
"from" : {
"agent_id" : "your_rcs_agent_id" ,
"carrier" : "Telnyx" ,
"agent_name" : "Your Brand"
},
"to" : [
{
"phone_number" : "+15559876543" ,
"status" : "queued" ,
"carrier" : "T-MOBILE USA, INC." ,
"line_type" : "Wireless"
}
],
"encoding" : "utf-8" ,
"parts" : 1 ,
"rcs_message_category" : "basic_message"
}
}
4. Handle incoming messages
Set up a webhook to receive customer replies. See Receiving RCS Webhooks for details.
RCS vs SMS comparison
Feature RCS SMS Rich media ✅ Images, video, files ❌ Text only (MMS for media) Interactive buttons ✅ Suggested replies & actions ❌ Read receipts ✅ ❌ Typing indicators ✅ ❌ Branding ✅ Logo, colors, verified sender ❌ Character limit None 160 (GSM-7) Carrier registration Required 10DLC/Toll-free required
Next steps