What is RCS on Notifique?
It’s the channel for rich mobile messages (Rich Communication Services). The destination is still an international phone number (E.164, no+), like SMS, but content can go beyond plain text.
You can:
- Send text (BASIC), image cards with buttons (CARD), carousels (CAROUSEL), or files via URL (FILE)
- Dispatch to 1 to 500 numbers per call (one message per number)
- Use branded agents via RCS instances — logo, name, and your brand sender
- Schedule sends for a future date and time
- Query status of each send by id
- Receive replies (MO) and link them to the original outbound
- Cancel while queued or scheduled
- Track short-link or button clicks via webhook
Sender: shared or instance
On send, pass
from to use a specific agent. If omitted, the platform uses the workspace default instance (if ACTIVE) or the shared sender.
Create and provision instances: RCS instances guide. List agents:
GET /v1/rcs/instances.When to use it?
Works great for campaigns with images and buttons, promotional alerts, and better conversion than plain SMS for RCS-capable recipients. For OTP that must reach any phone, prefer SMS. Not every device delivers RCS; have a plan B (SMS, WhatsApp, or email) when delivery must be guaranteed.Message types
- BASIC — text only (
payload.message) - CARD — image, title, description, and buttons (
cardImage,cardTitle,cardMessage,buttons) - CAROUSEL — multiple cards in one message (
payload.cards[]) - FILE — file via public URL + name (
file,fileName,message)
On CARD and CAROUSEL,
payload.message is not shown to the recipient. Use cardMessage on each card for descriptive text.How it works in practice
- Create an API Key with
rcs:send(andrcs:read/rcs:cancelto query or cancel) - (Optional) Provision an RCS agent and wait for ACTIVE status
- Send with
POST /v1/rcs/messages,toas an array,type,payload, andfrom(agent id or name) when applicable - The platform queues, sends, and updates status; your backend gets alerts if you configured webhooks
Each API Key belongs to one workspace. On v1 do not send
x-workspace-id.Message lifecycle
After send, RCS moves through statuses likeQUEUED, SCHEDULED, PROCESSING, SENT, DELIVERED, READ, CLICKED, RESPONDED, FAILED, or CANCELLED. API cancellation works while status is QUEUED or SCHEDULED.
POST /v1/rcs/messages returns 202 with messageIds and status — it does not echo the payload. To see what was sent, use GET /v1/rcs/messages/:id or GET /v1/rcs/messages (each item includes payload, messageType, and refer).CLICKED, webhook rcs.clicked.
Inbound replies
Query MO messages withGET /v1/rcs/inbound. When a customer replies to your send, the inbound may include relatedRcsLogId and, in detail, relatedRcsLog with the same detail level as GET /v1/rcs/messages/:id (status, payload, messageType, and timestamps).
What you can do
- Send to 1 to 500 numbers per call (140 BASIC credits; 200 CARD/CAROUSEL/FILE)
- Schedule with
schedule.sendAt - Query one send by returned id
- List history with status, destination, and date filters
- Cancel while queued or scheduled
- Idempotency with
Idempotency-Keyheader - Per-send webhook in
options.webhook(that batch only)
Localization and variables
localizationandi18ntranslate RCS card/text content per contact language.- The 202 response may include
data.localization.
After your first send
- Track delivery, clicks, and failures via webhooks (
rcs.sent,rcs.delivered,rcs.clicked,rcs.failed) - Handle
FAILEDwith SMS or another channel when the network does not deliver RCS - Test in Sandbox with
sk_test_...before production
Next steps
- Quick Start: first BASIC send
- RCS instances: create branded agent
- API Key scopes: permissions
- Webhook events: what hits your URL
- Get started: general platform integration

