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
| Feature | SMS/MMS | RCS (Universal Profile) |
|---|---|---|
| Network technology | Signaling network (SS7) | IP network (mobile data / Wi-Fi) |
| Media size | Maximum ~300 KB (MMS) | Up to 105 MB (video/image) |
| Interactivity | Text and static links | Carousels, buttons, calendar events, and maps |
| Security | Unencrypted | Encrypted (TLS) with verified senders |
| Status reports | Delivery 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
