26 May 2026 · patrik bronner

From SMS to RCS – A guide to next-generation mobile communication

Learn how RCS advances beyond SMS, how Universal Profile and MaaP work, and how SMS fallback preserves reliable message delivery.

Comparison of RCS Business Messaging and SMS

For decades, SMS has been the undisputed backbone of digital communication. Its simplicity and near-universal reach have always been its strengths. But as user expectations evolve, plain text is not always enough.

That is where RCS (Rich Communication Services) comes in: an upgrade that turns the messaging app into an interactive platform.

But how does it work technically, and how can you ensure that your message reaches markets where full RCS support has not yet been deployed? This guide explains the key concepts.

What are RCS and Universal Profile?

RCS (Rich Communication Services) is often described as “SMS 2.0,” but it is actually an entirely new IP-based protocol architecture that replaces the legacy SS7-based mobile network protocol used for SMS and MMS.

Instead of sending data over mobile operators' signaling channels, RCS sends data traffic over the internet (4G, 5G, and Wi-Fi).

To ensure that the technology works consistently worldwide, the GSMA industry association developed Universal Profile (UP).

Universal Profile (UP)

This is the globally agreed standard (specification) that all operators and manufacturers must follow. Without Universal Profile, for example, a Telia user could not send interactive messages to a Tele2 user.

  • UP 1.0–2.0: Established the foundation for consumer (P2P) features such as read receipts, typing indicators (“typing…”), and high-resolution images (up to 100 MB instead of the MMS limit of approximately 0.3 MB).
  • UP 2.4+ (and later versions): Introduced MaaP (Messaging as a Platform), the backbone of modern business communication through RCS.

SMS vs. RCS comparison

FeatureSMS/MMSRCS (Universal Profile)
Network technologySignaling network (SS7)IP network (mobile data / Wi-Fi)
Media sizeMaximum ~300 KB (MMS)Up to 105 MB (video/image)
InteractivityText and static linksCarousels, buttons, calendar events, and maps
SecurityUnencryptedEncrypted (TLS) with verified senders
Status reportsDelivery status"Delivered," "Read," and typing indicators

A2P and MaaP: When businesses communicate with customers

In telecommunications, we distinguish between P2P (Person-to-Person) and A2P (Application-to-Person). When a business sends automated system messages, marketing, or customer-service chats, it is using A2P.

In RCS, this model is called MaaP (Messaging as a Platform). MaaP turns the messaging app from a passive inbox into an interactive platform—similar to an app within an app—where businesses can build advanced customer journeys through APIs without requiring customers to download anything else.

Rich Payloads

Instead of sending only a raw text string and a shortened link, a company's system communicates with operators' RCS servers through complex JSON structures. The phone's messaging app interprets and renders this data visually:

  • Carousels: Users can swipe horizontally between products, hotel rooms, or delivery options. Each “card” in the carousel has its own image, description, and button.

  • Suggested Actions: Buttons let customers open a map, call customer service, add an event to their calendar, or make a secure payment directly in the chat.

Status in 2026: The Swedish market

The RCS landscape in Sweden remains fragmented. Although the technology has matured and the global barrier between platforms has partly been resolved, widespread adoption in Sweden is still pending:

  • Android: Has included full native RCS support for many years, primarily through Google Messages. Both advanced private chat (P2P) and business communication (A2P) are fully supported.

  • Apple (iOS): Apple officially introduced RCS support with iOS 18, but operators must adapt their networks and enable the feature. Sweden's major operators (Telia, Tele2, Telenor, and Tre) have not yet enabled this support for iPhone.

  • Today's transition phase: Because operator support for RCS on iPhone is delayed in Sweden, “seamless” communication still relies on SMS to reach every Swedish mobile device. This is where our API's built-in fallback policies are essential, as explained below.

Can I use RCS today?

Yes. Technical progress continues as more operators worldwide add RCS support. Swedish operators already provide full RCS support for Android devices. 

The introduction of message encryption between Android and iOS devices for consumers in iOS 26.5 also clearly indicates that the world is ready for a modern messaging standard.

How do I reach a recipient whose phone does not support RCS?

When you send a message through our RCS API, you can set a fallback policy that determines whether and when a failed RCS message should be sent as a standard text message.

If the recipient cannot receive RCS—for example, an iPhone user in Sweden—the message is automatically converted and sent as a standard text message. This keeps the communication chain intact.

Code example: Send RCS with SMS fallback

using System.Net.Http.Json;

var apiKey = "YOUR_API_KEY";
var rcsUrl = "https://api.ip1.net/v3";

using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");

async Task SendTransactionalMessage(string number, string text)
{
    var response = await client.PostAsJsonAsync($"{rcsUrl}/conversation", new
    {
        brand = "my-store-ltd",
        agent = "YOUR_AGENT_ID",
        content = text,
        recipient = number,
        fallbackPolicy = "FallbackOnNoCapability, FallbackOnFailure",
        fallbackMessage = text
    });

    if (response.IsSuccessStatusCode) return;
}

// Example call:
await SendTransactionalMessage("46700123456", "Your code is 123456. It is valid for 10 minutes.");
using System.Net.Http.Json;

var apiKey = "YOUR_API_KEY";
var rcsUrl = "https://api.ip1.net/v3";

using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");

async Task SendSmartMessages(string[] recipients, string text)
{
    var rcsResponse = await client.PostAsJsonAsync($"{rcsUrl}/bundles", new
    {
        brand = "my-store-ltd",
        agent = "YOUR_AGENT_ID",
        content = text,
        recipients = recipients,
        fallbackPolicy = "FallbackOnNoCapability, FallbackOnFailure",
        fallbackMessage = text
    });
}

var myNumbers = new[] { "46700123456", "46700987654", "456189040623" };
await SendSmartMessages(myNumbers, "Hi! This is a smart message.");

Summary

Future-proofing your communication means preparing for an interactive future without sacrificing today's reach. 

By understanding the capabilities of RCS while using the reach of SMS until the market offers full support, businesses can build stable, modern customer conversations that work for everyone, regardless of the phone they use.

Want to learn more about how your organization can benefit from the MaaP architecture? By building with RCS support today, you will be ready when the market reaches full maturity, while fallback logic ensures that your messages continue to reach recipients in the meantime.

Explore our API documentation

RCS API

Want to know more about our API?

⌘ K