US billing model

This document outlines the billing model for RCS for Business traffic on US carriers.

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:

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:

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.