Send RCS Message
A single endpoint sends every RCS message type — plain text, media, a rich card, or a carousel of cards — each with optional tappable suggestions. The type field in the body selects the format.
Note: RCS messaging requires a Route Mobile RCS account enabled on your account. If RCS isn’t enabled this endpoint returns
403. Unlike WhatsApp, RCS has no 24-hour window — you can message a customer at any time.
Endpoint
POST https://apis.splashifypro.com/api/v1/public/rcs/sendHeaders
| Header | Value |
|---|---|
Authorization | Basic YOUR_API_KEY |
Content-Type | application/json |
Common fields
Every request carries these. bot_name is not required — it is injected automatically from your RCS account.
| Field | Required | Notes |
|---|---|---|
to | yes | Recipient phone number in E.164 format (e.g. 919876543210) |
type | yes | text, media, card, or multiple_cards |
ttl | no | Seconds the message stays valid before expiring |
expire_time | no | Absolute expiry, YYYY-MM-DD HH:MM:SS |
fallback_text | no | SMS fallback shown if the handset can’t receive RCS |
extra | no | Free-form tracking value, echoed back in webhooks |
type: "text"
{
"to": "919876543210",
"type": "text",
"text": "Your order #4821 has shipped 🎉",
"suggestions": [
{ "type": "reply", "text": "Track order", "postback": "track_4821" }
]
}| Field | Required | Notes |
|---|---|---|
text | yes | The message body |
suggestions | no | Tappable chips — see Suggestions |
type: "media"
Sends an image, video (mp4), or PDF.
{
"to": "919876543210",
"type": "media",
"url": "https://cdn.example.com/promo.jpg",
"thumbnail_url": "https://cdn.example.com/promo-thumb.jpg",
"suggestions": [
{ "type": "url", "text": "Shop now", "url": "https://shop.example.com", "postback": "shop" }
]
}| Field | Required | Notes |
|---|---|---|
url | yes | https:// URL of the image / video / PDF |
thumbnail_url | no | https:// thumbnail URL |
suggestions | no | See Suggestions |
type: "card"
A single rich card — title, description, media, and buttons.
{
"to": "919876543210",
"type": "card",
"card": {
"title": "Weekend Sale",
"description": "Flat 30% off everything until Sunday.",
"url": "https://cdn.example.com/sale.jpg",
"thumbnail_url": "https://cdn.example.com/sale-thumb.jpg",
"suggestions": [
{ "type": "url", "text": "Browse", "url": "https://shop.example.com", "postback": "browse" }
]
}
}type: "multiple_cards"
A horizontally-scrollable carousel. Each entry in cards wraps one card.
{
"to": "919876543210",
"type": "multiple_cards",
"cards": [
{ "card": { "title": "Sneakers", "description": "₹2,999", "url": "https://cdn.example.com/1.jpg",
"suggestions": [ { "type": "message", "text": "Buy", "postback": "buy_sneakers" } ] } },
{ "card": { "title": "Backpack", "description": "₹1,499", "url": "https://cdn.example.com/2.jpg",
"suggestions": [ { "type": "dial", "text": "Call us", "call_to": "+919046615888", "postback": "call" } ] } }
]
}Suggestions
Each entry in a suggestions array is a tappable chip. The fields used depend on type:
Suggestion type | Fields | Purpose |
|---|---|---|
reply / message | text, postback | A quick-reply button |
url | text, url, postback | Opens a web page |
dial | text, call_to, postback | Starts a phone call |
calendar | text, start, end, title, description, postback | ”Save to calendar” |
| location | text, latitude, longitude, postback | Shares / shows a location |
When a customer taps a suggestion you receive a button_clicked webhook with button_id (the postback) and button_text.
Example
curl -X POST https://apis.splashifypro.com/api/v1/public/rcs/send \
-H "Authorization: Basic YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "919876543210",
"type": "text",
"text": "Your order #4821 has shipped 🎉",
"suggestions": [
{ "type": "reply", "text": "Track order", "postback": "track_4821" }
]
}'Successful response — 200 OK
{
"success": true,
"rcs_message_id": "a1b2c3d4-...",
"message_id": "d58aeff7-a81c-47a7-9b67-f381e13f6c4e",
"conversation_id": "ee64970d-0539-4eb0-859d-2147859a604d"
}| Field | Notes |
|---|---|
rcs_message_id | The provider message id — correlates with delivery webhooks |
message_id | Your Splashify Pro message id |
conversation_id | The RCS conversation this message belongs to |
To send a stored, approved template instead of a raw message, use Send RCS Template.
Errors
| Status | Meaning |
|---|---|
400 | to and type are required, or type is unsupported |
401 | Missing or invalid API key |
402 | Insufficient wallet balance |
403 | RCS is not enabled for your account |
429 | Rate limit exceeded |
502 | The RCS provider rejected the message |
{
"success": false,
"message": "the RCS send endpoint requires a Route Mobile RCS account"
}