RCS Business Messaging
RCS (Rich Communication Services) is the carrier-native upgrade to SMS. Instead of a plain grey text bubble, your messages arrive in the recipient's default messages app from a branded, verified sender — with your business name, logo and a verified checkmark — and can include rich cards, images and video, suggested replies, and suggested actions like "Call", "Open link" or "Share location". RCS works in the native messaging app on Android (and on supported iPhones). There is no automatic fallback to SMS: if a recipient's device or carrier doesn't support RCS, the message fails with rcs_not_reachable and you decide whether to reach that contact on another channel.
Compared with SMS, RCS gives you:
- A branded, verified sender — your business name and logo instead of a short code or number.
- Rich content — images, video, audio and documents, delivered inside styled cards.
- Interactivity — suggested replies and suggested actions (open a URL, dial a number, share a location) that render as tappable chips.
- Rich carousels — 2–10 scrollable cards in a single message.
- Delivery signals — read receipts and typing indicators, so conversations feel real-time.
RCS on SendSeven is available in Germany only, to accounts whose billing country is DE.
You request your own RCS agent on the RCS request page in the app (Settings > Channels > RCS) or with the agent request endpoints. The SendSeven team then verifies your business with Google and the carriers, and sets up and manages the RCS channel for you. If your billing country is not Germany but you have a reason to message recipients in Germany, contact [email protected]; we can grant an exception.
Eligibility at a glance
| Requirement | Detail |
|---|---|
| Region | Germany only |
| Eligibility | The billing account's billing country is DE, or SendSeven has granted an exception |
| Business status | Must be a verified business (checked during the agent review) |
| Pricing | Prepaid RCS wallet, list prices per unit; see GET /rcs/agent-requests/pricing-overview |
| Onboarding | Agent request in the app or API; channel setup by the SendSeven team |
What eligibility gates
An account that is not eligible can read everything (channels, prices, the pricing overview, wallet balance, statements), but these calls answer 403 with code rcs_not_available:
| Area | Refused when not eligible |
|---|---|
| Agent requests | Create, edit, file upload and submit (cancel is always allowed) |
| RCS wallet | POST /billing/rcs-wallet/topups, GET /billing/rcs-wallet/bank-transfer, POST /billing/rcs-wallet/auto-topup/setup-intent, and PUT /billing/rcs-wallet/auto-topup with "enabled": true (turning it off is always allowed) |
| Campaigns | POST /campaigns and PUT /campaigns/{campaign_id} when the campaign targets RCS (through selected_channel_ids, channel_filter or RCS content in channel_content), POST /campaigns/{campaign_id}/send, POST /campaigns/{campaign_id}/schedule, POST /campaigns/{campaign_id}/resume for a campaign that has not started sending yet, GET /campaigns/{campaign_id}/estimate-cost when the estimate includes RCS, and GET /campaigns/{campaign_id}/rcs-estimate when it has RCS recipients |
Not gated: charging of delivered messages, sends already in flight, pausing, cancelling and resuming a campaign that is already sending, and messages sent through an existing RCS channel.
A campaign scheduled on RCS for an account that is not eligible is not sent at its scheduled time. It moves to status paused with throttle_reason rcs_not_available, and the creator is notified. It does not resume by itself. To send it, remove RCS from its targeting with PUT /campaigns/{campaign_id} (allowed while no recipients have been prepared yet), then call POST /campaigns/{campaign_id}/resume.
Capabilities
Once your RCS channel is live, it behaves like any other channel in the unified API, with a rich feature set:
| Feature | Supported | Notes |
|---|---|---|
| Text | Yes | Up to 3,072 characters — longer text auto-splits into ordered messages |
| Images | Yes | Delivered in a rich card |
| Video | Yes | Delivered in a rich card |
| Audio | Yes | Delivered in a rich card |
| Documents | Yes | PDF, in a rich card |
| Rich cards | Yes | Title + description + media + suggestions |
| Carousels | Yes | 2–10 scrollable cards (campaigns) |
| Suggested replies | Yes | Tappable reply chips |
| Suggested actions | Yes | Open URL / dial number / share location |
| Reactions | Yes | Emoji reactions |
| Read receipts | Yes | |
| Typing indicators | Yes |
Suggestion budget: Suggested replies and suggested actions share a single budget of up to 11 suggestions per message, and a maximum of 4 suggestions per card. Design your chips within that limit so nothing is dropped.
For the full side-by-side comparison of message types, length limits and media size caps across every channel, see Channel Capabilities & Limits.
Delivery model
RCS is more flexible than WhatsApp — there is no template approval process and no 24-hour messaging window. Once a contact is opted in, you can message them at any time.
That flexibility comes with responsibility:
- Consent and opt-out are the sender's responsibility. You must have a lawful basis to message each recipient and honour opt-out/STOP requests promptly. German consumer-protection law (UWG) applies — treat RCS like SMS marketing, not like a channel with a platform-enforced window.
- Reachability depends on the recipient's device and carrier. RCS is only delivered when the recipient's device and mobile network support it. Where RCS isn't available, the message is marked
failedwitherror_codercs_not_reachableand is not charged. SendSeven does not fall back to SMS automatically; send to that contact on SMS or another channel yourself if you want to reach them. - RCS keys on the phone number in E.164 format (
+491701234567), the same identity as SMS and WhatsApp. Conversations still stay per-channel, so an RCS thread is distinct from that contact's SMS or WhatsApp thread even though the phone number matches.
| Channel property | RCS |
|---|---|
| Template approval | Not required |
| 24-hour window | None — send anytime to opted-in contacts |
| Contact identity | Phone number (E.164) |
| Consent / opt-out | Sender's responsibility (UWG applies) |
| Fallback | None automatic -- unreachable recipients fail with rcs_not_reachable |
Required Scopes
| Scope | Purpose |
|---|---|
channels:read | View channel details and capabilities |
messages:create | Send messages through the channel |
RCS channels are set up and managed by SendSeven, so you don't create or configure them via the API. Customer writes to RCS channels answer
403with codercs_managed_by_sendseven:POST /channelswith typercs, aPUT /channels/{channel_id}that changesidentifierorconfigon an RCS channel (renaming andis_activestill work), and every RCS-specific channel write (connect, credentials, testers, launch state, agent profile). The check runs after the scope check and before the request body is validated.
Sending messages on RCS
After our team has provisioned your RCS channel, sending is identical to any other channel: use the same unified messaging endpoints and pass your RCS channel_id. There is nothing RCS-specific in the request shape.
curl -X POST "https://api.sendseven.com/api/v1/messages" \
-H "Authorization: Bearer s7_api_a1b2c3d4e5f6789012345678abcdef00" \
-H "Content-Type: application/json" \
-d '{
"contact_id": "contact_xyz789",
"channel_id": "ch_rcs_001",
"text": "Your order has shipped! Track it here: https://track.example.com/12345",
"message_type": "text"
}'
From there, reach for the shared messaging guides that work on RCS:
- Text — Send Text Messages
- Media (image / video / audio / document) — Send Media Messages
- Reactions — Reactions
Rich cards with suggested replies or actions, and carousels of 2–10 cards, are sent from RCS campaigns. The one-to-one endpoints POST /messages/send/interactive and POST /messages/send/carousel do not support RCS and return 400.
Unlike WhatsApp, RCS has no messaging window and no approved-template requirement — you can send free-form rich messages to opted-in contacts anytime. Make sure you have consent and honour opt-outs, since that responsibility sits with you, not the platform.
Billing
RCS messages are paid from a prepaid RCS wallet on your billing account, shared by all its workspaces. The wallet is separate from your plan's message pool. On conversational and non-conversational agents, each RCS message also counts as a SendSeven message on your plan (included pool first, then your plan's message price), like any other channel. Newsletter agents have no SendSeven message fee.
-
You top up the wallet by card or bank transfer. The first top-up is at least 100 EUR net and activates the wallet; unused balance is refundable.
-
Each send reserves its expected charge. You are charged only when the carrier confirms delivery; messages that expire undelivered are free.
-
Delivered messages are charged per unit, depending on the agent type: non-conversational agents charge
basic(plain text up to 160 characters, no suggestions) orsingle(any other message); conversational agents charge the same units and turn an exchange into asessionwhen the recipient replies; newsletter agents charge once per recipient per month (mau: EUR 0.19 net by default, all newsletters to that recipient in the month included). Messages from your contacts are free. -
Per-message RCS sends (conversational and non-conversational agents) also carry your plan's SendSeven message fee and use the included message pool. Newsletter agents carry no SendSeven message fee.
-
Current prices, fees, the welcome offer and a WhatsApp reference price for the in-app calculator:
GET /rcs/agent-requests/pricing-overview(see Pricing overview). -
When the balance is too low, direct sends are refused with
insufficient_rcs_balance(402onPOST /messagesfor API tokens) and campaigns pause, then continue automatically after a top-up. -
Check what a campaign will cost before sending with
GET /campaigns/{campaign_id}/rcs-estimate. -
Your own RCS agent is requested with an agent request, which starts as an editable draft; the SendSeven team submits it for verification once the request is complete and the first top-up is credited. Besides the brand profile, logo, banner and commercial register extract, it needs a signed brand authorization letter, which you upload once per billing account. The SendSeven team writes the compliance texts and newsletter details for the carrier review.
See RCS Wallet & Billing for the wallet endpoints, prices, warnings, automatic top-up and all RCS billing error codes.
Next Steps
- Channel Capabilities & Limits -- the full cross-channel matrix, including RCS limits
- Send Media Messages -- images, video and documents in rich cards
- Messaging Campaigns -- RCS rich cards, suggestions and carousels
- Webhook Events -- receive incoming RCS messages and delivery/read receipts
- RCS Wallet & Billing -- prepaid wallet, charges and RCS billing error codes