# RCS

Send branded, verified RCS messages with rich cards, carousels and buttons from your own RCS agent, with SMS fallback for phones without RCS.

import { PlatformCapabilities } from '@/components/platform-capabilities';

RCS (Rich Communication Services) is the upgrade to SMS built into Google Messages and, from iOS 18, iPhone Messages.

Instead of a phone number, messages come from a verified business profile (name, logo, banner, verified tick). They support:

- rich cards
- swipeable carousels
- tappable buttons
- read receipts

## Quick reference

<PlatformCapabilities rows={[
  { property: 'Sender', value: 'Your RCS agent: name, logo, banner, colour and a verified tick' },
  { property: 'Message types', value: 'Text, media, rich card, carousel, plus up to 11 buttons' },
  { property: 'Buttons', value: 'Reply, open URL, dial, view location, share location, add to calendar' },
  { property: 'Replies', value: 'Thread into the inbox as platform rcs; message.received webhook' },
  { property: 'Receipts', value: 'message.delivered, message.read and message.failed' },
  { property: 'Fallback', value: 'Plain SMS from one of your SMS-enabled numbers' },
  { property: 'Idempotency', value: 'Idempotency-Key header' },
]} />

## Before you start

Phones that cannot receive RCS can get the same message as plain SMS from one of your numbers.

RCS requires usage-based billing with a card on file, on a plan that includes the inbox. Accounts without the inbox get `403`.

Carriers approve every agent before it sends. In the US that takes 4 to 6 weeks, so register early.

## Brand and agent

Two things get approved by the carriers:

- **Brand**: the legal company behind the messages (legal name, tax ID, address, a contact at the business). One brand can back several agents.
- **Agent**: the sender people see in their messaging app (display name, description, logo, banner, colour, contact buttons). Every agent belongs to one profile and gets its own inbox account once it exists with the carriers.

You create both in one call. We review the details before anything is filed, so nothing is charged until a correct request is submitted.

## Countries and carriers

The launch market is the country of the brand's address.

| Country | Carriers |
|---|---|
| United States | Verizon, T-Mobile, AT&T, US Cellular, Dish Wireless, C-Spire, Google Fi, Spectrum, Tracfone |
| United Kingdom | EE/BT, Sky, Virgin Mobile (O2), Lycamobile, Three, Vodafone |
| Austria | A1, Three, T-Mobile Austria |
| Bangladesh | Robi |
| Brazil | Claro, TIM, Vivo |
| DR Congo | Orange |
| France | Bouygues, Coriolis, Free Mobile, Lycamobile, NRJ, Orange, SFR |
| Germany | Telekom, O2 (Telefonica), Vodafone, 1&1 |
| India | Vodafone Idea, Airtel, BSNL, Reliance Jio |
| Italy | Iliad, TIM, Wind, Vodafone |
| Mexico | Altan, AT&T, Movistar, Telcel |
| Netherlands | KPN, Odido, Vodafone |
| Nigeria | 9mobile, Airtel, Glo, MTN |
| Norway | Telia, Telenor |
| Portugal | MEO, NOS, Vodafone |
| Singapore | M1, Simba, Singtel, StarHub |
| South Africa | Cell C, Telkom, Vodacom |
| Spain | Digi, Orange, Telefonica, Vodafone, MasMovil |
| Sweden | Telia, Tele2, Telenor |

<Callout type="warn">
Spain is accepted, but launches there are paused by the carriers while a new sender regulation is clarified. We file Spanish agents as soon as they reopen.
</Callout>

## Lifecycle and timing

Every agent moves through these statuses, and each change fires the `rcs.agent.status_updated` webhook.

**United States**. Carrier review usually takes 4 to 6 weeks.

1. `requested` (our review)
2. `brand_vetting`
3. `agent_review`
4. `testing` (you try it on your own phones)
5. `launch_review` (our review of the launch details)
6. `launching` (carrier review)
7. `live`

**Other markets**. You send the launch details together with the request.

1. `requested` (our review)
2. `brand_vetting` (filed with the carriers by our team)
3. `launching`
4. `live`

Side exits: `changes_requested` (we need something fixed), `rejected` and `deactivated`.

## Pricing

| | United States | Other markets |
|---|---|---|
| Setup, when we submit the agent | $150 | $150 |
| On carrier approval | $750 | None |
| Monthly, from the day it goes live | $160 | $75 |
| Rich text messages, sent and received | From $0.0098 | By destination |
| Rich media messages, sent and received | From $0.024 | By destination |

Monthly billing is month to month and never runs while the agent is in review.

On the prepaid balance, requesting an agent needs its fees up to launch in the balance ($1,060 in the US, $225 elsewhere), unless auto top-up can refill it.

They stay set aside until billed, or until the agent is rejected.

[All RCS rates](/pricing/phone#rcs).

## In this section

<PlatformPages platform="rcs" />

## Related

- [SMS](/platforms/sms): the fallback channel and its US carrier registration.
- [Inbox webhooks](/webhooks/inbox): `message.received`, `message.delivered`, `message.read` and `message.failed`.
- [Idempotency](/guides/idempotency) and [error handling](/guides/error-handling).