This document outlines the billing model for RCS for Business traffic on US carriers.
- For information about the standard billing model (for non-US traffic), see the Billing FAQ.
- For information about reporting, see the guide to Billing reports and activity logs.
Overview of US billing classifications
Every message to or from a US phone number is automatically classified into one of three types based on its format:
- Rich Message (bi-directional)
- Rich Media Message (bi-directional)
- Suggested Action Click (user-initiated)
Refer to the following sections for detailed specifications.
A note on terminology
To describe the direction of messaging traffic, US carriers typically use MT/MO terminology. These terms correspond to the A2P/P2A terminology used throughout the RCS for Business documentation:
- MT (Mobile Terminated) is A2P (Application-to-Person): A message sent by the business.
- MO (Mobile Originated) is P2A (Person-to-Application): A message or action initiated by the user.
Agent-to-Person (A2P/MT) event billing
This section covers the billing logic for messages sent by an agent (that is, A2P or MT messages).
Rich Messages (A2P)
A message is classified as a Rich Message if it only contains a combination of the following elements:
- Text
- Suggested replies
- Suggested actions of the following types only:
- Dial a number
- Open URL in the standard browser, not a webview
Billing logic for Rich Messages
A Rich Message is billed based on segments.
- Segment size: 1 segment = 160 bytes of UTF-8 encoded text.
- Calculation: The total UTF-8 byte length of the message's text is divided by 160 and always rounded up to the nearest whole number.
- Exclusions: The text and postback data within suggested replies or actions are not included in the segment count.
- Example: A 300-byte text message has 2 segments (300 / 160 = 1.875, rounded up to 2).
Byte count
Some unicode characters (like emojis or accented letters) are multi-byte, so the total UTF-byte count may differ from the character count.
To check the exact byte count of a message, type or paste it below.
Rich Media Messages (A2P)
A message is classified as a Rich Media Message if it contains at least one of the following:
- A rich card or a carousel (even without media)
- A media file attachment (image, video, audio)
- A suggested action other than Dial a number or Open URL with browser, including:
Billing logic for Rich Media Messages
A Rich Media Message is billed as a single, flat-rate event.
- The billing is the same regardless of the text length, number of cards, or size of the media file.
- Segmentation does not apply.
A2P API response examples
These examples show the richMessageClassification
field in a successful RBM API call response for messages sent by the agent.
Example API response for a RICH_MESSAGE
{
"name": "...",
"sendTime": "2025-05-22T20:03:35.474764Z",
"contentMessage": {
...
},
"richMessageClassification": {
"classificationType": "RICH_MESSAGE",
"segmentCount": 5
}
}
Example API response for a RICH_MEDIA_MESSAGE
{
"name": "...",
"sendTime": "2025-05-22T20:03:35.474764Z",
"contentMessage": {
...
},
"richMessageClassification": {
"classificationType": "RICH_MEDIA_MESSAGE"
}
}
Person-to-Agent (P2A/MO) event billing
This section covers billing for messages and actions initiated by a user (that is, P2A or MO messages).
Rich Messages (P2A)
A user message is classified as a Rich Message if it contains only text. This includes both free-form text and the text that results from tapping a suggested reply. (Suggested replies may include a postback data identifier in the message payload.)
Billing logic: Billed based on segments. For details on segment count calculations see Billing logic for Rich Messages.
Rich Media Messages (P2A)
A message is classified as a Rich Media Message if it contains an uploaded file (image, video, audio).
Billing logic: Billed as a single, flat-rate event. Segmentation does not apply.
Suggested Action Clicks
A user tap on any suggested action generates one billable event called a Suggested Action Click. (Suggested actions may include a postback data identifier in the message payload.)
Billing logic: Generates one billable event per click.
Special case: Share location
Locating sharing is unique in that it generates two separate P2A billable events:
The suggested action click: The user's tap on the Share location suggested action generates one Suggested Action Click event.
The location message: After the user selects a location from the map interface, a message with location coordinates is sent to the agent. This MO message generates a Rich Message event with a segment count of one.
P2A webhook response examples
These examples show the richMessageClassification
field in webhooks sent to the agent for user-initiated events.
Example webhook for a user-sent RICH_MESSAGE
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2025-05-22T20:03:35.474764Z",
"text": "Hello, world!",
"richMessageClassification": {
"classificationType": "RICH_MESSAGE",
"segmentCount": 1
}
}
Example webhook for a user-sent RICH_MEDIA_MESSAGE
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2025-05-22T20:03:35.474764Z",
"userFile": "...",
"payload": "...",
"richMessageClassification": {
"classificationType": "RICH_MEDIA_MESSAGE"
}
}
Example webhook for a SUGGESTED_ACTION_CLICK
{
"agentId": "...",
"senderPhoneNumber": "...",
"messageId": "...",
"sendTime": "...",
"suggestionResponse": {
"text": "Click here",
"postbackData": "...",
"type": "ACTION"
},
"richMessageClassification": {
"classificationType": "SUGGESTED_ACTION_CLICK"
}
}
Example webhook for a location message
This is the second billable event in the Share location flow, sent after the user shares their location from the map.
{
"agentId": "...",
"senderPhoneNumber": "...",
"messageId": "...",
"sendTime": "...",
"location": {
"latitude": 37.422000,
"longitude": -122.084056
},
"richMessageClassification": {
"classificationType": "RICH_MESSAGE",
"segmentCount": 1
}
}
Technical and implementation notes
- Segments are for billing purposes only: Long messages are delivered as a single unit to the user's device. The segment count is a virtual calculation for billing purposes; it doesn't affect how messages are delivered or presented to the user.
- Automatic classification: The message classification is fully automatic based on message content and can't be manually overridden.
- Rollout: The US billing model was enabled across the RCS for Business platform on July 15, 2025. From this date onwards, Google's reporting and API responses reflect the new classifications.