Under the last few decades, text messages have been the the unparalleled backbone of digital communication. Its simplicity and near 100-percent range has always been its strength. But as users' expectations change, plain text is not always enough.
Here comes RCS (Rich Communication Services) in the image: An upgrade that transforms messaging app to an interactive platform.
But how does it work technically, and how can I ensure my message reaches markets that haven't fully rolled out RCS support yet? We'll clarify the concepts.
What is RCS and Universal Profile?
RCS (Rich Communication Services) often described as ”SMS 2.0,” but it is actually a completely new IP-based protocol architecture that replaces the old SS7-based mobile network protocol for SMS and MMS.
Instead of sending data over the operators' signaling channels, RCS is sent as data traffic over the internet (4G, 5G, and Wi-Fi).
To guarantee that the technology works the same worldwide, the industry association GSMA brought forth Universal Profile (UP).
Universal Profile (UP)
This is the globally agreed standard (specification) that all operators and manufacturers must follow. Without the Universal Profile, for example, a Telia user would not be able to send interactive messages to a Tele2 user.
- UP 1.0–2.0: Lay the groundwork for consumer features (P2P) like read receipts, chat indicators (”typing…”), and high-resolution images (up to 100MB instead of MMS’s limit of about 0.3MB).
- UP 2.4+ (and later versions): Introduced MaaP (Messaging as a Platform), which is the backbone of modern business communication via RCS
SMS vs RCS Comparison
| Function | SMS/MMS | RCS (Universal Profile) |
|---|---|---|
| Network Engineering | Signaling System No. 7 (SS7) | IP networks (Mobile data / Wi-Fi) |
| Medium size | Max ~300 KB (MMS) | Up to 105 MB (video/image) |
| Interactivity | Text and static links | Carousels, buttons, calendar bookings, and maps |
| Security | Encrypted | Encrypted (TLS) and verified senders |
| Status reports | Delivery status | "Delivered, Read, and typing indicator |
A2P and MaaP: When Businesses Communicate with Customers
In telecommunications, we differentiate between P2P (Person-to-Person) and A2P (Application-to-Person). When a company sends automatic system messages, marketing, or customer service chats, it's about A2P.
For RCS, the term is used Messaging as a Platform. MaaP transforms the messaging app from a passive inbox into an interactive platform (like an app within an app), where companies can build advanced customer journeys via APIs without the customer needing to download anything extra.
Rika Payloads (Rich Payloads)
Instead of just sending a raw text string and a short link, the company's system communicates with the operators' RCS servers via complex JSON structures. This data is interpreted and rendered visually directly in the phone's messaging app:
Carousels The user can swipe horizontally between different products, hotel rooms, or delivery options. Each ”card” in the carousel has its own image, description, and button.
Suggested Actions Buttons that allow the customer to open a map, call customer service, add an event to their calendar, or make a secure payment directly in the chat.
Status 2026: The Market in Sweden
The landscape for RCS is still divided in Sweden. Although the technology has matured and the global blocking between platforms has been partially resolved, the Swedish breakthrough is still pending:
Android Has full built-in RCS support for many years, primarily via Google Messages. Both advanced private chat (P2P) and business communication (A2P) work fully here.
Apple (iOS): Apple officially implemented RCS support with iOS 18, but for it to work, carriers need to adapt and enable the feature in their networks. In Sweden, the major operators (Telia, Tele2, Telenor, and Tre) not yet activated this support for iPhone.
The transition phase today: Because operators” RCS support for iPhone is delayed in Sweden, ”seamless" communication still depends on SMS to reach all Swedish mobile devices. This is where our API's built-in fallback policies are crucial, which you can read about further down.
Can I use RCS today?
Yes, absolutely! Technical advancements continue with more and more operators adding support for RCS worldwide. When it comes to Swedish operators, there is already full support for RCS for Android devices today.
With the launch of end-to-end encryption between Android and iOS devices in iOS version 26.5 for individuals, there are also clear signs that the world is ripe for a new modern messaging standard.
How do I reach a recipient whose phone does not support RCS?
When you send a message via our RCS API, you have the option to set a fallback policy, which determines if and when a failed RCS message should be sent as a regular text message or not.
That is, if the recipient cannot receive RCS (e.g., an iPhone user in Sweden), the message is automatically converted and sent as a regular text message. That way, the communication chain is never broken.
Code Example: Send RCS with SMS Fallback
using System.Net.Http.Json;
var apiKey = "DIN_API_NYCKEL";
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 = "min-butik-ab",
agent = "DIN_AGENTS_ID",
content = text,
recipient = number,
fallbackPolicy = "FallbackOnNoCapability, FallbackOnFailure",
fallbackMessage = text
});
if (response.IsSuccessStatusCode) return;
}
// Exempel på anrop:
await SendTransactionalMessage("46700123456", "Din kod är: 123456. Giltig i 10 minuter.");
using System.Net.Http.Json;
var apiKey = "DIN_API_NYCKEL";
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 = "min-butik-ab",
agent = "DIN_AGENTS_ID",
content = text,
recipients = recipients,
fallbackPolicy = "FallbackOnNoCapability, FallbackOnFailure",
fallbackMessage = text
});
}
var myNumbers = new[] { "46700123456", "46700987654", "456189040623" };
await SendSmartMessages(myNumbers, "Hej! Detta är ett smart meddelande.");
Summary
Future-proofing your communication means preparing for the interactive future without losing today's reach.
By understanding the interplay of RCS technology's capabilities and leveraging the reach of the SMS protocol until there is full market support, companies can build a stable and modern customer dialogue that works for everyone, regardless of the phone they have in their pocket.
Do you want to learn more about how your business can benefit from the MaaP architecture? By starting to build with RCS support today, you'll be ready when the market reaches full maturity, while a fallback logic ensures your messages always get through now.