---
title: Payload Structure
url: https://docs.kaltura.com/docs/rich-media-cms-apis/integration/webhooks-payload
---

## Payload Structure

### Default Behavior

System templates send an empty body by default. Configure payload data on your cloned template to include event data.

### KalturaHttpNotificationObjectData (Recommended)

Sends the event object as structured JSON:

```bash
curl -X POST "$KALTURA_SERVICE_URL/service/eventnotification_eventnotificationtemplate/action/update" \
  -d "ks=$KALTURA_KS" \
  -d "format=1" \
  -d "id=$TEMPLATE_ID" \
  -d "eventNotificationTemplate[objectType]=KalturaHttpNotificationTemplate" \
  -d "eventNotificationTemplate[data][objectType]=KalturaHttpNotificationObjectData" \
  -d "eventNotificationTemplate[data][format]=1" \
  -d "eventNotificationTemplate[data][apiObjectType]=KalturaBaseEntry"
```

| Field | Type | Description |
|-------|------|-------------|
| `format` | integer | 1=JSON, 2=XML |
| `apiObjectType` | string | Object to serialize (e.g., `KalturaBaseEntry`, `KalturaMediaEntry`, `KalturaCategoryUser`) |

### KalturaHttpNotificationDataText

Custom text body with content parameter placeholders:

```bash
  -d "eventNotificationTemplate[data][objectType]=KalturaHttpNotificationDataText" \
  -d "eventNotificationTemplate[data][content][objectType]=KalturaStringValue" \
  -d "eventNotificationTemplate[data][content][value]=Entry {entry_id} ({entry_name}) is now ready."
```

### KalturaHttpNotificationDataFields

Key-value pairs in the POST body:

```bash
  -d "eventNotificationTemplate[data][objectType]=KalturaHttpNotificationDataFields" \
  -d "eventNotificationTemplate[data][fields][0][objectType]=KalturaEventNotificationParameter" \
  -d "eventNotificationTemplate[data][fields][0][key]=entryId" \
  -d "eventNotificationTemplate[data][fields][0][value][objectType]=KalturaEvalStringField" \
  -d "eventNotificationTemplate[data][fields][0][value][code]={event.object.id}" \
  -d "eventNotificationTemplate[data][fields][1][objectType]=KalturaEventNotificationParameter" \
  -d "eventNotificationTemplate[data][fields][1][key]=status" \
  -d "eventNotificationTemplate[data][fields][1][value][objectType]=KalturaEvalStringField" \
  -d "eventNotificationTemplate[data][fields][1][value][code]={event.object.status}"
```

### Webhook Payload Example

With `KalturaHttpNotificationObjectData` configured, the POST body contains:

```json
{
  "object": {
    "objectType": "KalturaBaseEntry",
    "id": "1_abc123",
    "name": "My Video",
    "status": 2
  },
  "eventObjectType": 1,
  "eventType": 3,
  "templateId": 26970222,
  "templateName": "Entry Ready Webhook",
  "templateSystemName": "MY_ENTRY_READY",
  "eventNotificationJobId": 33578094492,
  "objectType": "KalturaHttpNotification"
}
```

### Delivery Characteristics

| Property | Value |
|----------|-------|
| Delivery latency | ~5-15 seconds after event |
| Default body (no data config) | Empty POST |
| With ObjectData config | JSON body, `application/json` |
| Retry behavior | Up to 10 retries with exponential backoff over ~24 hours on HTTP 5xx or timeout |
