# Webhook

# New Message Webhook (RCS)

### Webhook Request Method
* **POST**
### Webhook Payload
|Parameter|Type| Description|
|-|-|-|
|event|string|This is set to "new_message".
|message|object|Message data.

#### Webhook Sample
```json
{
    "event": "new_message",
    "business_phone": "",
    "message": {
        "senderPhoneNumber": "+6281519140000",
        "messageId": "da220bf7-e15b-4b2b-90af-1860eb335872",
        "sendTime": "2026-02-02T08:11:41.193204Z",
        "agentId": "infinity_links_indo_test_promo_tqzwtuox_agent@rbm.goog",
        "suggestionResponse": {
            "postbackData": "shop_url",
            "text": "Buy Now at INCS",
            "type": "ACTION"
        }
    }
}
```
#### Message data Samples
##### 1. Text Message
```json
{
    "senderPhoneNumber": "+628XXXXXXXXX",
    "messageId": "5312df2b-54e3-457d-8654-49a4f3ba1a19",
    "sendTime": "2024-04-20T10:11:02.589915Z",
    "text": "Hiii",
    "agentId": "test_vhbgamhn_agent@rbm.goog"
}
```
##### 2. File Message
```json
{
    "senderPhoneNumber": "+628XXXXXXXXX",
    "messageId": "5312df2b-54e3-457d-8654-49a4f3ba1a19",
    "sendTime": "2024-04-20T10:58:29.951141Z",
    "userFile": {
        "thumbnail": {
            "mimeType": "image/jpeg",
            "fileSizeBytes": 8001,
            "fileUri": "https://rcs-user-content-ap.storage.googleapis.com/baf60d40-f197-497f-83f8-5a52fd081262/54b9a1aae33ff62d14ea58db59f43ff04cf62d2329041b110b724b7447a7"
        },
        "payload": {
            "mimeType": "image/jpeg",
            "fileSizeBytes": 144594,
            "fileName": "1000002217.jpg",
            "fileUri": "https://rcs-user-content-ap.storage.googleapis.com/f7cdd990-83ea-4b8d-ba89-73eacf8d7d8a/d63d8f295248fc67cc1716658c169bba70f98b0513798c3c60f56f52734f"
        }
    },
    "agentId": "test_vhbgamhn_agent@rbm.goog"
}
```
##### 3. Response to suggestion – REPLY
```json
{
    "senderPhoneNumber": "+628XXXXXXXXX",
    "messageId": "5312df2b-54e3-457d-8654-49a4f3ba1a19",
    "sendTime": "2024-04-05T13:15:40.152413Z",
    "agentId": "test_vhbgamhn_agent@rbm.goog",
    "suggestionResponse": {
        "postbackData": "user_reply_what_is_rcs",
        "text": "what is RCS?",
        "type": "REPLY"
    }
}
```
##### 4. Response to suggestion – ACTION
```json
{
    "senderPhoneNumber": "+628XXXXXXXXX",
    "messageId": "5312df2b-54e3-457d-8654-49a4f3ba1a19",
    "sendTime": "2024-04-05T13:16:42.183829Z",
    "agentId": "test_vhbgamhn_agent@rbm.goog",
    "suggestionResponse": {
        "postbackData": "user_action_open_url",
        "text": "visit our website",
        "type": "ACTION"
    }
}
```
##### 5. Location message
```json
{
    "senderPhoneNumber": "+62XXXXXXXXXX",
    "messageId": "b0d0ea18-c809-4206-9ca2-5baf02707fe0",
    "sendTime": "2025-07-29T06:08:36.741050Z",
    "agentId": "test_dev_vhbgamhn_agent@rbm.goog",
    "location": {
        "longitude": 78.3861501,
        "latitude": 17.4370557
    }
}
```

# Message Status Webhook

### Webhook Request Method
* **POST**
### Webhook Payload
|Parameter|type| Mandatory| Description|
|-|-|-|-|
|event|string|Yes|This is set to "message_status_update"
|business_phone|string|No|Business phone number
|message_id|string|Yes|Message ID
|message_status|string|Yes|Message status, one of "sent", "failed", "delivered", "read"
|error|object\|null|Yes| Error details，default is set to null.
|error.title|string|No| Service provider-defined error title.
|error.code|int|No| Service provider-defined error code.
|received_at|timestamp|Yes| Webhook received timestamp.
#### Webhook Sample
```json
{
  "event": "message_status_update",
  "business_phone": "6281519236680",
  "message_id": "wamid.HBgNNjI4OTY1MjQ1NjU0OBUCABEYEkYxNTY4NkNBRUY...",
  "message_status": "failed",
  "error": {
    "code": 131049,
    "title": "This message was not delivered to maintain healthy ecosystem engagement."
  },
  "received_at": 1754466101
},
```