RCS Billing & Pricing

RCS Billing & Pricing

RCS usage is billed per message or conversation event, based on your Agent's billing category and the recipient's region.

Billing category

Every Agent is configured with a billing category, which determines how its usage is billed:

  • Conversational — billed around conversation sessions
  • Non-conversational — billed per message

See RCS Agents to check your Agent's billing category.

How a conversation is managed

📘

This section only applies to Conversational Agents. Non-conversational Agents never create a conversation — every message is billed individually.

A conversation starts the moment either party replies to the other within 24 hours, outside of an existing conversation. Once it starts, the Agent and user can exchange any number of messages during that 24-hour window, and it's all billed as a single conversation rather than as individual messages.

Example timeline

sequenceDiagram
    participant Agent as Agent
    participant User as End user

    Note left of Agent: Day 1, 8:00 AM
    Agent->>User: Single message (MT)

    Note left of Agent: Day 2, 7:59 AM — reply arrives within 24 hours
    User-->>Agent: End user response (MO)
    Note over Agent,User: Conversation starts

    rect rgb(245, 245, 245)
    Note over Agent,User: Unlimited messaging within the conversation
    Agent-->>User: message
    User-->>Agent: message
    Agent-->>User: message
    end

    Note left of Agent: Day 3, 7:59 AM — 24 hours after the conversation started
    Note over Agent,User: Conversation ends
    Note right of User: ① Billed for one conversation

    Note left of Agent: Day 3, 8:00 AM — outside the conversation window
    Agent->>User: Single message (MT)
    Note right of User: ② Billed for one single message

Everything from the first reply (Day 2, 7:59 AM) up to 24 hours later (Day 3, 7:59 AM) is billed as a single a2p_conversation, no matter how many messages are exchanged in between. The message sent right after the window closes, at Day 3 8:00 AM, falls outside that conversation and is billed on its own as a single_message.

Agent-initiated conversations

flowchart LR
    A["Agent sends a message"] --> B{"Does the user reply within 24 hours?"}
    B -- No --> C["Billed individually as basic_message or single_message"]
    B -- Yes --> D["a2p_conversation starts"]
    D --> E["Agent and user exchange any number of messages for 24 hours from the first reply"]
    E --> F["All of it is billed as a single conversation"]

User-initiated conversations

flowchart LR
    A2["User sends a message"] --> B2{"Does the Agent reply within 24 hours?"}
    B2 -- No --> C2["Billed individually as p2a_message"]
    B2 -- Yes --> D2["p2a_conversation starts"]
    D2 --> E2["Agent and user exchange any number of messages for 24 hours from the first reply"]
    E2 --> F2["All of it is billed as a single conversation"]

Billable events

EventDescriptionNon-conversational AgentsConversational Agents
basic_messageA message that is text-only, 160 characters or fewerAlways billed as an individual event, whether or not the user repliesBilled as an individual event, unless the user replies within 24 hours — then it becomes part of an a2p_conversation
single_messageA message with rich content, or a text-only message over 160 charactersAlways billed as an individual event, whether or not the user repliesBilled as an individual event, unless the user replies within 24 hours — then it becomes part of an a2p_conversation
a2p_conversationStarted when a user replies to an Agent message within 24 hours, outside of an existing conversationNot applicable — non-conversational Agents never generate this eventIf several Agent messages are delivered within 24 hours before a user reply, only the message immediately preceding the reply starts the conversation
p2a_conversationStarted when your Agent replies to a user message within 24 hours, outside of an existing conversationNot applicable — non-conversational Agents never generate this eventIf several user messages are sent within 24 hours before an Agent reply, only the message immediately preceding the reply starts the conversation
p2a_messageA message sent by a user, of any typeAlways billed as an individual event, whether or not your Agent repliesBilled as an individual event, unless your Agent replies within 24 hours

Naxai also tracks a sixth item, failed_message — a non-delivered message. RCS doesn't have a delivery-failure report the way SMS does, so a message that fails to deliver simply never receives a delivery receipt; failed_message exists to track this separately from successful deliveries. It's currently priced at €0 and not yet invoiced.

Billing categories versus billable events

The distinction between agent billing categories and billable events is key to understanding how your agent is billed.

  • Billing category is a fixed classification you choose when creating your agent. It determines the method by which your agent is billed: per message (Non-conversational agents) or per conversation (Conversational agents).
  • Billable events are interactions between an RCS for Business agent and a user that are tracked for billing purposes (for example, basic_message, single_message, a2p_conversation).

Google, RCS for Business: Standard billing reports and activity logs (CC BY 4.0)

What's next


Did this page help you?