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
| Event | Description | Non-conversational Agents | Conversational Agents |
|---|---|---|---|
basic_message | A message that is text-only, 160 characters or fewer | Always billed as an individual event, whether or not the user replies | Billed as an individual event, unless the user replies within 24 hours — then it becomes part of an a2p_conversation |
single_message | A message with rich content, or a text-only message over 160 characters | Always billed as an individual event, whether or not the user replies | Billed as an individual event, unless the user replies within 24 hours — then it becomes part of an a2p_conversation |
a2p_conversation | Started when a user replies to an Agent message within 24 hours, outside of an existing conversation | Not applicable — non-conversational Agents never generate this event | If several Agent messages are delivered within 24 hours before a user reply, only the message immediately preceding the reply starts the conversation |
p2a_conversation | Started when your Agent replies to a user message within 24 hours, outside of an existing conversation | Not applicable — non-conversational Agents never generate this event | If several user messages are sent within 24 hours before an Agent reply, only the message immediately preceding the reply starts the conversation |
p2a_message | A message sent by a user, of any type | Always billed as an individual event, whether or not your Agent replies | Billed 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
Updated about 3 hours ago

