Skip to Content
Public APISend RCS Message

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/send

Headers

HeaderValue
AuthorizationBasic YOUR_API_KEY
Content-Typeapplication/json

Common fields

Every request carries these. bot_name is not required — it is injected automatically from your RCS account.

FieldRequiredNotes
toyesRecipient phone number in E.164 format (e.g. 919876543210)
typeyestext, media, card, or multiple_cards
ttlnoSeconds the message stays valid before expiring
expire_timenoAbsolute expiry, YYYY-MM-DD HH:MM:SS
fallback_textnoSMS fallback shown if the handset can’t receive RCS
extranoFree-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" } ] }
FieldRequiredNotes
textyesThe message body
suggestionsnoTappable 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" } ] }
FieldRequiredNotes
urlyeshttps:// URL of the image / video / PDF
thumbnail_urlnohttps:// thumbnail URL
suggestionsnoSee 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 typeFieldsPurpose
reply / messagetext, postbackA quick-reply button
urltext, url, postbackOpens a web page
dialtext, call_to, postbackStarts a phone call
calendartext, start, end, title, description, postback”Save to calendar”
locationtext, latitude, longitude, postbackShares / 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" }
FieldNotes
rcs_message_idThe provider message id — correlates with delivery webhooks
message_idYour Splashify Pro message id
conversation_idThe RCS conversation this message belongs to

To send a stored, approved template instead of a raw message, use Send RCS Template.

Errors

StatusMeaning
400to and type are required, or type is unsupported
401Missing or invalid API key
402Insufficient wallet balance
403RCS is not enabled for your account
429Rate limit exceeded
502The RCS provider rejected the message
{ "success": false, "message": "the RCS send endpoint requires a Route Mobile RCS account" }