{"slug":"rcs-messaging","title":"RCS Messaging — RBM, Google Business Messages, Apple RCS","tags":["rcs","rbm","business-messaging","google","apple","messaging"],"agent_summary":"RCS (Rich Communication Services) is the GSMA-standardized SMS successor. Supports rich media, suggested replies, branded sender, read receipts, and typing indicators. Business-to-consumer RCS in the US is delivered via Google's RBM (RCS Business Messaging) platform. Apple began native RCS support in iOS 18 (2024-09). Carrier rollout still in progress; treat RCS as a fallback-enhanced channel, not a replacement for SMS/MMS.","trigger_phrases":["RCS messaging","RBM Google","rich communication services","branded business messaging","RCS Business Messaging","Apple RCS iOS 18","RCS vs SMS"],"runnable":false,"markdown":"\n# RCS Messaging\n\nRCS (Rich Communication Services) is the GSMA-standardized successor to SMS/MMS. It's IP-based, supports rich media up to 100 MB, branded sender display, suggested replies, carousels, and read receipts. Business-to-consumer RCS in the US is delivered through Google's RCS Business Messaging (RBM) platform. Apple shipped native RCS support in iOS 18 (released 2024-09).\n\n## RCS vs SMS/MMS — what's different\n\n| Feature | SMS | MMS | RCS |\n|---|---|---|---|\n| Text length | 160 chars / segment | 160 chars + media | Up to 8,000 chars |\n| Media size | None | ~600 KB (carrier-dependent) | Up to 100 MB |\n| Sender display | Phone number | Phone number | Verified brand name + logo |\n| Read receipts | No | No | Yes |\n| Typing indicators | No | No | Yes |\n| Suggested replies | No | No | Yes (up to 11 chips) |\n| Carousels | No | No | Yes (up to 10 cards) |\n| Encryption | None | None | End-to-end (Google-to-Google) |\n| Carrier dependency | Universal | Universal | Carrier + device must support |\n| Fallback | None | None | Auto-falls back to SMS/MMS |\n\n## Where RCS works today (US)\n\n- **Android devices** with Google Messages app — RCS works carrier-side via Jibe (Google's hosted RCS platform). Coverage is universal across major US carriers as of 2023.\n- **iOS 18+** — Apple added native RCS support. Works on all iPhones running iOS 18.0+ when paired with a carrier that has activated RCS for iPhone (T-Mobile, AT&T, Verizon all enabled by late 2024).\n- **Older Android (no Google Messages)** — RCS not available, falls back to SMS.\n- **Older iOS (< 18)** — Falls back to MMS for media, SMS for text.\n\nFor business messaging, assume 50-70% RCS reach in 2026 with rapid growth.\n\n## Two RCS flavors for business\n\n### Carrier RCS / Universal Profile\n\nPerson-to-person RCS, also accessible to businesses via specific carrier integrations. Limited business features, no branded sender. Rare in the US — Google's RBM is dominant.\n\n### Google RCS Business Messaging (RBM)\n\nThe dominant US business RCS channel. Verified by Google, supports branded sender, all rich features. Requires:\n\n- A verified Google Business Profile or registered RBM Agent\n- Brand verification through a Verified Sender process\n- Subscription to RBM via Google or a partner (Twilio, Sinch, Infobip, etc.)\n\nSignalWire does not currently offer first-party RBM. Production RBM today goes through aggregators (Twilio, Sinch, Infobip). When SignalWire ships RBM, it will plug into the same SWML messaging APIs.\n\n## What an RBM message looks like\n\n```json\n{\n  \"messageId\": \"msg-12345\",\n  \"agent\": \"brands/acme-plumbing\",\n  \"to\": \"+13105551234\",\n  \"richCard\": {\n    \"standaloneCard\": {\n      \"cardOrientation\": \"VERTICAL\",\n      \"thumbnailImageAlignment\": \"RIGHT\",\n      \"cardContent\": {\n        \"title\": \"Your appointment is confirmed\",\n        \"description\": \"Acme Plumbing — Wednesday at 2 PM\",\n        \"media\": {\n          \"height\": \"MEDIUM\",\n          \"contentInfo\": {\n            \"fileUrl\": \"https://cdn.example.com/confirmation.jpg\",\n            \"forceRefresh\": false\n          }\n        },\n        \"suggestions\": [\n          { \"reply\": { \"text\": \"Reschedule\", \"postbackData\": \"reschedule\" } },\n          { \"reply\": { \"text\": \"Cancel\", \"postbackData\": \"cancel\" } },\n          { \"action\": { \"text\": \"Call us\", \"postbackData\": \"call\", \"dialAction\": { \"phoneNumber\": \"+12125551111\" } } }\n        ]\n      }\n    }\n  }\n}\n```\n\nSuggestions render as tap chips below the message. Postback data fires a webhook to your backend when tapped, similar to a webhook from a button click in an interactive Messenger-style chat.\n\n## Brand verification for RBM\n\nTo send RCS as a verified business, the brand must pass Google's verification:\n\n1. Register the business via Google Business Profile or an RBM partner.\n2. Provide a logo (1024×1024 PNG), brand color, and short description.\n3. Submit a sample message flow showing legitimate use case.\n4. Add DNS-based domain verification on the brand's website.\n5. Wait 3-10 business days for Google approval.\n\nVerified brands get a checkmark icon, branded color in the chat header, and prominent logo. Unverified brands send as plain RCS without branding — still RCS-capable but visually similar to a regular SMS thread.\n\n## Apple RCS specifics\n\nApple's iOS 18 RCS implementation uses the Universal Profile 2.4 specification. Differences from Google RBM:\n\n- No native support for verified business sender branding (as of iOS 18.2)\n- Suggested replies render but with iOS-specific chip styling\n- End-to-end encryption uses Apple's PQ3 protocol (Google uses MLS)\n- Read receipts and typing indicators work cross-platform between iOS and Android RCS\n\niPhone-to-iPhone messages continue to prefer iMessage. RCS kicks in only when the recipient is Android-on-RCS or iMessage is unavailable.\n\n## Fallback behavior\n\nSend to a number that doesn't support RCS and the message auto-falls back:\n\n- Text-only RCS → falls back to SMS\n- RCS with media → falls back to MMS\n- RCS with rich card → falls back to MMS with the title text + image\n- RCS with suggested replies → falls back to MMS, replies become inline text\n\nThis means **never send RCS that depends on a tap-chip for the recipient to take action**. Always include enough information in the text body for SMS-fallback recipients to understand and respond.\n\n## Cost model\n\nRCS pricing through aggregators (typical 2025):\n\n| Message type | Cost per message |\n|---|---|\n| Simple text RCS | $0.008 - $0.015 |\n| Rich card RCS (with media) | $0.015 - $0.025 |\n| Carousel RCS | $0.025 - $0.040 |\n| Inbound RCS (replies) | $0.005 - $0.010 |\n\nMore expensive than SMS but with higher engagement — RCS open rates run 75-90% vs 95% for SMS, but click-through is typically 5-10x higher on RCS.\n\n## When to choose RCS over SMS/MMS\n\n| Use case | RCS | SMS/MMS |\n|---|---|---|\n| OTP / 2FA codes | No (latency, fallback delays) | Yes |\n| Appointment reminders | Yes (rich card with reschedule chip) | Yes (text + link) |\n| Marketing promos | Yes (carousel, branded) | Yes (text + image) |\n| Customer support replies | Yes (typing indicators feel chat-like) | Yes (works universally) |\n| Shipping notifications | Yes (carousel of items) | Yes (text + URL) |\n| Compliance-sensitive (financial, healthcare) | No (encryption story still maturing) | Yes (well-understood compliance posture) |\n\n## A2P 10DLC and RCS\n\nRBM is **separate from 10DLC**. RCS messages do not flow through the 10DLC throughput pool — they have their own RBM throughput limits set by Google. However, the same opt-in/opt-out compliance applies under CTIA and TCPA. STOP/HELP keywords must be respected; opt-in records must be retained.\n\nWhen RCS falls back to SMS/MMS, that fallback traffic **does** consume 10DLC throughput. Plan accordingly.\n\n## Common pitfalls\n\n- **Sending rich content assuming RCS reach** — always design for SMS fallback. Test by disabling RCS on a test phone.\n- **Suggested replies as the only CTA** — replies don't survive fallback. Include the CTA text in the message body.\n- **No opt-in flow for RCS specifically** — opt-in obtained for SMS does not automatically apply to RCS for compliance purposes. Treat RCS as a separate channel for consent records.\n- **Mismatched brand verification across carriers** — Google verification is one process. Aggregator verification may be additional.\n\n## Roadmap notes\n\n- 2024-09: Apple iOS 18 ships RCS support\n- 2024-Q4 to 2025-Q1: Major US carriers enable iPhone RCS interop\n- 2025-2026: RBM Verified Sender expansion; carousel and form features mature\n- Future: SignalWire first-party RBM integration (no firm date as of 2026-05)\n\n## References\n\n- GSMA Universal Profile 2.4 — RCS specification\n- Google RCS Business Messaging — developer documentation\n- Apple iOS 18 release notes — RCS support\n- 3GPP TS 26.114 — IMS multimedia telephony service\n","html":"<h1>RCS Messaging</h1>\n<p>RCS (Rich Communication Services) is the GSMA-standardized successor to SMS/MMS. It's IP-based, supports rich media up to 100 MB, branded sender display, suggested replies, carousels, and read receipts. Business-to-consumer RCS in the US is delivered through Google's RCS Business Messaging (RBM) platform. Apple shipped native RCS support in iOS 18 (released 2024-09).</p>\n<h2>RCS vs SMS/MMS — what's different</h2>\n<p>| Feature | SMS | MMS | RCS |\n|---|---|---|---|\n| Text length | 160 chars / segment | 160 chars + media | Up to 8,000 chars |\n| Media size | None | ~600 KB (carrier-dependent) | Up to 100 MB |\n| Sender display | Phone number | Phone number | Verified brand name + logo |\n| Read receipts | No | No | Yes |\n| Typing indicators | No | No | Yes |\n| Suggested replies | No | No | Yes (up to 11 chips) |\n| Carousels | No | No | Yes (up to 10 cards) |\n| Encryption | None | None | End-to-end (Google-to-Google) |\n| Carrier dependency | Universal | Universal | Carrier + device must support |\n| Fallback | None | None | Auto-falls back to SMS/MMS |</p>\n<h2>Where RCS works today (US)</h2>\n<ul>\n<li><strong>Android devices</strong> with Google Messages app — RCS works carrier-side via Jibe (Google's hosted RCS platform). Coverage is universal across major US carriers as of 2023.</li>\n<li><strong>iOS 18+</strong> — Apple added native RCS support. Works on all iPhones running iOS 18.0+ when paired with a carrier that has activated RCS for iPhone (T-Mobile, AT&#x26;T, Verizon all enabled by late 2024).</li>\n<li><strong>Older Android (no Google Messages)</strong> — RCS not available, falls back to SMS.</li>\n<li><strong>Older iOS (&#x3C; 18)</strong> — Falls back to MMS for media, SMS for text.</li>\n</ul>\n<p>For business messaging, assume 50-70% RCS reach in 2026 with rapid growth.</p>\n<h2>Two RCS flavors for business</h2>\n<h3>Carrier RCS / Universal Profile</h3>\n<p>Person-to-person RCS, also accessible to businesses via specific carrier integrations. Limited business features, no branded sender. Rare in the US — Google's RBM is dominant.</p>\n<h3>Google RCS Business Messaging (RBM)</h3>\n<p>The dominant US business RCS channel. Verified by Google, supports branded sender, all rich features. Requires:</p>\n<ul>\n<li>A verified Google Business Profile or registered RBM Agent</li>\n<li>Brand verification through a Verified Sender process</li>\n<li>Subscription to RBM via Google or a partner (Twilio, Sinch, Infobip, etc.)</li>\n</ul>\n<p>SignalWire does not currently offer first-party RBM. Production RBM today goes through aggregators (Twilio, Sinch, Infobip). When SignalWire ships RBM, it will plug into the same SWML messaging APIs.</p>\n<h2>What an RBM message looks like</h2>\n<pre><code class=\"language-json\">{\n  \"messageId\": \"msg-12345\",\n  \"agent\": \"brands/acme-plumbing\",\n  \"to\": \"+13105551234\",\n  \"richCard\": {\n    \"standaloneCard\": {\n      \"cardOrientation\": \"VERTICAL\",\n      \"thumbnailImageAlignment\": \"RIGHT\",\n      \"cardContent\": {\n        \"title\": \"Your appointment is confirmed\",\n        \"description\": \"Acme Plumbing — Wednesday at 2 PM\",\n        \"media\": {\n          \"height\": \"MEDIUM\",\n          \"contentInfo\": {\n            \"fileUrl\": \"https://cdn.example.com/confirmation.jpg\",\n            \"forceRefresh\": false\n          }\n        },\n        \"suggestions\": [\n          { \"reply\": { \"text\": \"Reschedule\", \"postbackData\": \"reschedule\" } },\n          { \"reply\": { \"text\": \"Cancel\", \"postbackData\": \"cancel\" } },\n          { \"action\": { \"text\": \"Call us\", \"postbackData\": \"call\", \"dialAction\": { \"phoneNumber\": \"+12125551111\" } } }\n        ]\n      }\n    }\n  }\n}\n</code></pre>\n<p>Suggestions render as tap chips below the message. Postback data fires a webhook to your backend when tapped, similar to a webhook from a button click in an interactive Messenger-style chat.</p>\n<h2>Brand verification for RBM</h2>\n<p>To send RCS as a verified business, the brand must pass Google's verification:</p>\n<ol>\n<li>Register the business via Google Business Profile or an RBM partner.</li>\n<li>Provide a logo (1024×1024 PNG), brand color, and short description.</li>\n<li>Submit a sample message flow showing legitimate use case.</li>\n<li>Add DNS-based domain verification on the brand's website.</li>\n<li>Wait 3-10 business days for Google approval.</li>\n</ol>\n<p>Verified brands get a checkmark icon, branded color in the chat header, and prominent logo. Unverified brands send as plain RCS without branding — still RCS-capable but visually similar to a regular SMS thread.</p>\n<h2>Apple RCS specifics</h2>\n<p>Apple's iOS 18 RCS implementation uses the Universal Profile 2.4 specification. Differences from Google RBM:</p>\n<ul>\n<li>No native support for verified business sender branding (as of iOS 18.2)</li>\n<li>Suggested replies render but with iOS-specific chip styling</li>\n<li>End-to-end encryption uses Apple's PQ3 protocol (Google uses MLS)</li>\n<li>Read receipts and typing indicators work cross-platform between iOS and Android RCS</li>\n</ul>\n<p>iPhone-to-iPhone messages continue to prefer iMessage. RCS kicks in only when the recipient is Android-on-RCS or iMessage is unavailable.</p>\n<h2>Fallback behavior</h2>\n<p>Send to a number that doesn't support RCS and the message auto-falls back:</p>\n<ul>\n<li>Text-only RCS → falls back to SMS</li>\n<li>RCS with media → falls back to MMS</li>\n<li>RCS with rich card → falls back to MMS with the title text + image</li>\n<li>RCS with suggested replies → falls back to MMS, replies become inline text</li>\n</ul>\n<p>This means <strong>never send RCS that depends on a tap-chip for the recipient to take action</strong>. Always include enough information in the text body for SMS-fallback recipients to understand and respond.</p>\n<h2>Cost model</h2>\n<p>RCS pricing through aggregators (typical 2025):</p>\n<p>| Message type | Cost per message |\n|---|---|\n| Simple text RCS | $0.008 - $0.015 |\n| Rich card RCS (with media) | $0.015 - $0.025 |\n| Carousel RCS | $0.025 - $0.040 |\n| Inbound RCS (replies) | $0.005 - $0.010 |</p>\n<p>More expensive than SMS but with higher engagement — RCS open rates run 75-90% vs 95% for SMS, but click-through is typically 5-10x higher on RCS.</p>\n<h2>When to choose RCS over SMS/MMS</h2>\n<p>| Use case | RCS | SMS/MMS |\n|---|---|---|\n| OTP / 2FA codes | No (latency, fallback delays) | Yes |\n| Appointment reminders | Yes (rich card with reschedule chip) | Yes (text + link) |\n| Marketing promos | Yes (carousel, branded) | Yes (text + image) |\n| Customer support replies | Yes (typing indicators feel chat-like) | Yes (works universally) |\n| Shipping notifications | Yes (carousel of items) | Yes (text + URL) |\n| Compliance-sensitive (financial, healthcare) | No (encryption story still maturing) | Yes (well-understood compliance posture) |</p>\n<h2>A2P 10DLC and RCS</h2>\n<p>RBM is <strong>separate from 10DLC</strong>. RCS messages do not flow through the 10DLC throughput pool — they have their own RBM throughput limits set by Google. However, the same opt-in/opt-out compliance applies under CTIA and TCPA. STOP/HELP keywords must be respected; opt-in records must be retained.</p>\n<p>When RCS falls back to SMS/MMS, that fallback traffic <strong>does</strong> consume 10DLC throughput. Plan accordingly.</p>\n<h2>Common pitfalls</h2>\n<ul>\n<li><strong>Sending rich content assuming RCS reach</strong> — always design for SMS fallback. Test by disabling RCS on a test phone.</li>\n<li><strong>Suggested replies as the only CTA</strong> — replies don't survive fallback. Include the CTA text in the message body.</li>\n<li><strong>No opt-in flow for RCS specifically</strong> — opt-in obtained for SMS does not automatically apply to RCS for compliance purposes. Treat RCS as a separate channel for consent records.</li>\n<li><strong>Mismatched brand verification across carriers</strong> — Google verification is one process. Aggregator verification may be additional.</li>\n</ul>\n<h2>Roadmap notes</h2>\n<ul>\n<li>2024-09: Apple iOS 18 ships RCS support</li>\n<li>2024-Q4 to 2025-Q1: Major US carriers enable iPhone RCS interop</li>\n<li>2025-2026: RBM Verified Sender expansion; carousel and form features mature</li>\n<li>Future: SignalWire first-party RBM integration (no firm date as of 2026-05)</li>\n</ul>\n<h2>References</h2>\n<ul>\n<li>GSMA Universal Profile 2.4 — RCS specification</li>\n<li>Google RCS Business Messaging — developer documentation</li>\n<li>Apple iOS 18 release notes — RCS support</li>\n<li>3GPP TS 26.114 — IMS multimedia telephony service</li>\n</ul>\n"}