RCS is what SMS became on Android. You send from a verified brand instead of
a short string, and you can send things SMS has no way to express: images, cards,
carousels, and buttons the user can tap.
There is one send endpoint, and you never pick a transport. It follows from what
you asked to send.
How the split works
Send content on its own and it goes out as plain text.
Send a richCard, a carousel or suggestions and it goes out
over the rich path instead, because there is no way to put a card, an image or
a button on the plain-text one.
Supply both and you get the rich form. Dropping your card silently would deliver
something you did not ask for.
This matters for one reason: rich messages need an RBM agent mapped to your
sender, and plain text does not. A sender with no agent is refused with 400
before anything is billed. See Sender IDs.
The senderId has to be registered to your account and approved. Not
registered, or registered and still pending, is a 400.
The recipient must not have opted out of that brand. Someone who replied
STOP is suppressed, and the send is refused rather than billed for a message
the platform would have blocked anyway.
Opt-out is per (number, brand). Unsubscribing from one brand does not
unsubscribe them from every brand you send.
RCS reaches Google Messages on Android. Some handsets, some networks and some
users do not have it. Plan for a recipient who simply cannot receive an RCS
message — check the delivery report and fall back to
SMS when it comes back Undelivered.