How to Receive RCS Delivery Reports via Webhook
You can use the Webhook (New) feature on the MSG91 platform to receive delivery reports for your RCS messages. Follow the steps below to set it up.
1. Log in to your MSG91 Dashboard » Email » Webhook » Click on Create Webhook.

2. Configure Your Webhook
.png)
Step 1. Provide a name to your webhook.
Step 2. Select RCS and the event type you wish to receive:
On Report Received:
Triggers to send the delivery reports of both inbound and outbound messages.
On Inbound Report Received:
Triggers to send the delivery reports of the inbound messages.
On Outbound Report Received:
Triggers to send the delivery reports of outbound messages.
Step 3: Enter your Webhook URL (Callback URL) where data should be sent.
Use { to add fields/ parameters you want to receive.
You can include or exclude fields as needed. Ensure parameters follow valid JSON formatting.
Example JSON payload that has all the parameters:
{
"requestId": "{{requestId}}",
"uuid": "{{uuid}}",
"crqid": "{{crqid}}",
"webengageMsgId": "{{webengageMsgId}}",
"campaignRequestId": "{{campaignRequestId}}",
"campaignName": "{{campaignName}}",
"requestedAt": "{{requestedAt}}",
"customerNumber": "{{customerNumber}}",
"projectName": "{{projectName}}",
"eventName": "{{eventName}}",
"templateName": "{{templateName}}",
"companyId": "{{companyId}}",
"contentType": "{{contentType}}",
"templateMessageType": "{{templateMessageType}}",
"content": "{{content}}",
"direction": "{{direction}}",
"countryName": "{{countryName}}",
"telecomCircle": "{{telecomCircle}}",
"statusUpdatedAt": "{{statusUpdatedAt}}",
"desc": "{{desc}}"
}
Description of the parameters:
crqid
A custom parameter you can pass in the API payload. You will receive the same value in the webhook.
Example: "crqid": "MSG91_RCS""
requestedAt
Timestamp of when the message request was initiated from your end..
Example: "requestedAt": "2025-07-11 09:44:49.265000"
companyId
Unique account ID of your MSG91 account.
Example: "companyId": "396301"
eventName
Status of your message - Submitted / Sent / Delivered/ Read/ Failed
Example: "eventName": "delivered"
projectName
Unique project Name of your RCS account (RCS Bot).
Example: "projectName": "MSG91_RCS_Transactional”
customerNumber
The user’s mobile number to which you sent the message.
Example: "customerNumber": "917748847XXX”direction
Direction of the message - Outbound / Inbound.
Example: "direction": "outbound"templateName
Name of your RCS template.
Example: "templateName": "JulyfirstSale”desc
The reason due to which the message failed.
Example: "desc": "Unreachable number"
content
The content of the inbound message. It will be blank in case of an outbound message.
Example: "content": "{\"text\":\"Hi\"}"
requestId
Unique ID generated on our end for every request.
Example: "requestId": "afb620165e3b11f092970aebd39cf801"
uuid
Unique reference ID of an inbound message.
Example: "uuid": "afd799b25e3b11f0843402e26b2b6f99"
statusUpdatedAt
Timestamp when the latest status of the message was updated.
Example: "timestamp": "2025-07-11 09:44:52.815069+00:00"
templateMessageType
Type of your RCS template.
Example: "templateMessageType": "rich_card"
campaignRequestId
Unique request ID of your campaign (If sent via Campaign Service).
Example: "campaignRequestId": "rg4554ygthf84f9egjgu4"
telecomCircle
The telecom circle of the customer’s mobile number
Example: "telecomCircle": "Madhya Pradesh & Chhattisgarh"
webengageMsgId
Unique ID of the message if the message was sent via WebEngage
Example: "webengageMsgId": ""
Sample payload of the report received on Webhook for an Outbound message:
{
"requestId": "9395400c648e11f0834e02924bf4bca3",
"uuid": "950d4204648e11f085fc02af09483607",
"crqid": "",
"webengageMsgId": "",
"campaignRequestId": "",
"campaignName": "",
"requestedAt": "2025-07-19 10:53:17.277660+00:00",
"customerNumber": "917748847990",
"projectName": "MSG91_RCS_TRANSACTIONAL",
"eventName": "failed",
"templateName": "test_multi_product",
"companyId": "396301",
"contentType": "template",
"templateMessageType": "rich_card",
"content": "{}",
"direction": "outbound",
"countryName": "India",
"telecomCircle": "Madhya Pradesh & Chhattisgarh",
"statusUpdatedAt": "2025-07-19 10:53:17.277660+00:00",
"desc": "Invalid HSM Data: Either template name is wrong, or it is not registered with WABA"
}
Sample payload of the report received on Webhook for an Inbound message:
{
"requestId": "",
"uuid": "222df35f-41cd-4fc6-9312-6f1ea77e6a5a",
"crqid": "",
"webengageMsgId": "",
"campaignRequestId": "",
"campaignName": "",
"requestedAt": "2025-07-19 11:06:54.665000+00:00",
"customerNumber": "917748847990",
"projectName": "MSG91_RCS_TRANSACTIONAL",
"eventName": "delivered",
"templateName": "",
"companyId": "396301",
"contentType": "text_message",
"templateMessageType": "",
"content": "{\"text\":\"Heyyyy\"}",
"direction": "inbound",
"countryName": "India",
"telecomCircle": "Madhya Pradesh & Chhattisgarh",
"statusUpdatedAt": "2025-07-19 11:06:54.665000+00:00",
"desc": ""
}
You can also add the Headers in the key-value pairs, and we will send all the reports including these Headers:

Step 5. Click Create to save the Webhook.
Still have questions?
Feel free to reach us at +91 8818888733 via call or WhatsApp, or drop an email to [email protected].