Msg91 Help Doc
Webhook (New)
How to Receive RCS Delivery Re...

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.

RCS_1.png

2. Configure Your Webhook

Webhook steps (1).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:

Msg91whatsapp-MSG91-07-16-2025_01_49_PM.png

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].