Receiving Messages and Events
Receiving Inbound RCS Messages & Events
Naxai reports everything that happens on the recipient's side of an RCS conversation — messages, suggestion taps, typing, read receipts, subscribe/unsubscribe actions, and delivery status — as webhook events.
New to webhooks? See Webhooks for how to create an endpoint, choose an authentication method, and subscribe to events.
Every event shares the same envelope:
| Field | Description |
|---|---|
eventId | Unique identifier of the webhook event |
eventName | The event name, see the table below |
eventTimestamp | When the event was generated, unix time |
eventWebhookId | Identifier of the webhook that delivered the event |
eventData | The event-specific payload, detailed below |
Events
| Event | Fires when |
|---|---|
rcs.incoming.v1 | A recipient sends a message, file, or location to your Agent |
rcs.actions.v1 | A recipient taps a suggested reply or action |
rcs.subscribe.v1 | A recipient subscribes to your Agent |
rcs.unsubscribe.v1 | A recipient unsubscribes from your Agent |
rcs.typing.v1 | A recipient is typing a reply |
rcs.read.v1 | A recipient reads a message you sent |
rcs.status.v1 | The delivery status of a message you sent changes (delivered, failed, fallback to SMS, and so on) |
rcs.incoming.v1
| Field | Description |
|---|---|
agentId | The Agent that received the message |
messageId | Unique identifier of the incoming message |
from | The recipient's phone number |
messageType | text, file, or location |
text | The message content — present when messageType is text |
userFile.payload.mimeType / .fileSizeBytes / .fileUri / .fileName | The file that was sent — present when messageType is file |
location.latitude / location.longitude | The location that was shared — present when messageType is location |
receivedAt | When the message was received, milliseconds since epoch |
rcs.actions.v1
Fired when a recipient taps a suggested reply or action from a message you sent.
| Field | Description |
|---|---|
agentId | The Agent concerned |
messageId | The message that contained the suggestion |
to | The recipient's phone number |
text | The visible text of the suggestion that was tapped, can be empty |
postbackData | The postback data you set when sending that suggestion, can be empty |
responseType | reply or action |
receivedAt | When the response was received, milliseconds since epoch |
rcs.subscribe.v1 and rcs.unsubscribe.v1
Fired when a recipient subscribes to or unsubscribes from your Agent. See RCS Suppressions & Opt-outs.
| Field | Description |
|---|---|
agentId | The Agent concerned |
messageId | The message associated with the event |
to | The recipient's phone number |
receivedAt | When the event was received, milliseconds since epoch |
rcs.typing.v1
| Field | Description |
|---|---|
agentId | The Agent concerned |
messageId | The message the recipient is replying to |
from | The recipient's phone number |
typingAt | When the recipient started typing, milliseconds since epoch |
rcs.read.v1
| Field | Description |
|---|---|
agentId | The Agent concerned |
messageId | The message that was read |
to | The recipient's phone number |
readAt | When the message was read, milliseconds since epoch |
rcs.status.v1
Reports the delivery status of a message you sent — for example, delivered, failed, or fell back to SMS.
| Field | Description |
|---|---|
agentId | The Agent concerned |
messageId | The message concerned |
to | The recipient's phone number |
mcc / mnc | Mobile country code and mobile network code of the destination |
status | The status category, for example delivered |
statusCode | The status code, for example 200 |
statusReason | The status reason string, for example 200-delivered |
statusTime | When the status was recorded, milliseconds since epoch |
See RCS Status & Error Codes for the full list of possible values.
What's next
Updated about 2 hours ago
Did this page help you?

