> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zixflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Postback Notifications

> Postback payload format for delivery status notifications across SMS, RCS, WhatsApp, and Email

When you provide a `post_back_url` in your send request, Zixflow sends an HTTP POST request to that URL whenever the message status changes (e.g., delivered, failed, read, etc). The same payload format is used for all four channels: **SMS**, **RCS**, **WhatsApp**, and **Email**.

## Postback Payload Format

The request body sent to your `post_back_url` is a JSON object with the following fields:

| Field            | Type   | Description                                                                                                                             |
| ---------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| `workspace_id`   | string | Your Zixflow workspace ID.                                                                                                              |
| `type`           | string | Type of notification. For delivery updates this is `"delivery_status"`.                                                                 |
| `message_id`     | number | Unique identifier for the message in Zixflow.                                                                                           |
| `request_id`     | string | The request/correlation ID (e.g., UUID) for the original send request.                                                                  |
| `channel`        | string | Channel that sent the message: `"sms"`, `"rcs"`, `"whatsapp"`, or `"email"`.                                                            |
| `recipient`      | string | Recipient identifier (phone number for SMS/RCS/WhatsApp, email address for Email).                                                      |
| `status`         | string | Current delivery status (e.g., `"delivered"`, `"failed"`, `"read"`, `"clicked"`, etc.).                                                 |
| `remark`         | string | Optional remark or error/details associated with the status.                                                                            |
| `status_at`      | string | ISO 8601 timestamp when the status was recorded (e.g., `"2026-01-28T17:17:59.254174911Z"`).                                             |
| `post_back_data` | string | The optional value you sent in `post_back_data` when sending the message. Use this to correlate the notification with your own records. |

## Example Payload

```json theme={null}
{
  "workspace_id": "69614209f51dfafb2231a6fe",
  "type": "delivery_status",
  "message_id": 604132581490819100,
  "request_id": "65ca1d21-8854-4d39-a0bd-64f1cd7b8db1",
  "channel": "whatsapp",
  "recipient": "919090909090",
  "status": "delivered",
  "remark": "",
  "status_at": "2026-01-28T17:17:59.254174911Z",
  "post_back_data": "somedata"
}
```

## Using post\_back\_data

If you pass `post_back_data` in your send request (e.g., an order ID, ticket ID, or internal reference), that same value is included in the postback as `post_back_data`. Use it to match the notification to the message in your system without storing Zixflow `message_id` or `request_id`.

## Channel applicability

This postback format is **common across all four channels**:

* **SMS** — send message/template with `post_back_url` (and optional `post_back_data`)
* **RCS** — send message/template with `post_back_url` (and optional `post_back_data`)
* **WhatsApp** — send message/template with `post_back_url` (and optional `post_back_data`)
* **Email** — send message/template with `post_back_url` (and optional `post_back_data`)

Ensure your `post_back_url` endpoint accepts `POST` requests with a JSON body and responds with a success status (e.g., 2xx) so Zixflow can treat the delivery as acknowledged.

## Where post\_back\_url is used

You can pass `post_back_url` (and optional `post_back_data`) on these Zixflow AI send endpoints:

* **SMS**: [Send SMS Message](/api-reference/zixflow-ai/sms/send-message), [Send SMS Template](/api-reference/zixflow-ai/sms/send-template)
* **RCS**: [Send RCS Template](/api-reference/zixflow-ai/rcs/send-template), [Text](/api-reference/zixflow-ai/rcs/messages/text-message), [Image](/api-reference/zixflow-ai/rcs/messages/image-message), [Video](/api-reference/zixflow-ai/rcs/messages/video-message), [Audio](/api-reference/zixflow-ai/rcs/messages/audio-message), [Document](/api-reference/zixflow-ai/rcs/messages/document-message)
* **WhatsApp**: [Send WhatsApp Template](/api-reference/zixflow-ai/whatsapp/send-template), and all [Direct](/api-reference/zixflow-ai/whatsapp/messages/text-message) and [Interactive](/api-reference/zixflow-ai/whatsapp/messages/interactive-reply-buttons-message) message endpoints
* **Email**: [Send Email Message](/api-reference/zixflow-ai/email/send-message), [Send Email Template](/api-reference/zixflow-ai/email/send-template)

Each of those pages documents the `post_back_url` and `post_back_data` request fields and links back here for the payload format.
