# Event subscriptions

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## Event subscription

The information in the `event_subscription` section of the manifest JSON represents the values on the **Access** > **Event Subscriptions** page of the app build flow.
This feature allows you to subscribe to interested events and receive Webhook notifications.

For more information, refer to the [webhooks](/docs/api/webhooks/) documentation for the specific product.

> **Challenge-response**
>
> Zoom App Marketplace uses Challenge-response check to confirm the ownership and the security of the event notification endpoint URLs. For more information, see [Validating your webhook endpoint](/docs/api/webhooks/#validate-your-webhook-endpoint/) about building response to the challenge to validate your URLs.

## Manifest JSON

```json
{
    "features": {
        // ......
        "event_subscription": {
            "enable": true,
            "events": [
                {
                    "subscription_name": "subscription_name",
                    "event_types": ["meeting.started", "meeting.ended"],
                    "development_webhook_url": "",
                    "production_webhook_url": "",
                    "development_event_custom_header": {
                        "custom_header_type": 0, // 0-DEFAULT, 1-BASE_AUTH, 2-OAUTH, 3-CUSTOM_kEY_VALUE
                        "username": "",
                        "password": "",
                        "client_id": "",
                        "client_secret": "",
                        "token_url": "",
                        "custom_header_key": "",
                        "custom_header_value": ""
                    },
                    "production_event_custom_header": {
                        "custom_header_type": 0, // 0-DEFAULT, 1-BASE_AUTH, 2-OAUTH, 3-CUSTOM_kEY_VALUE
                        "username": "",
                        "password": "",
                        "client_id": "",
                        "client_secret": "",
                        "token_url": "",
                        "custom_header_key": "",
                        "custom_header_value": ""
                    }
                }
            ]
        }
        // ......
    }
}
```

## Field Description

| Field                                                      | Description                                                                                                                                              | Required                                      |
| :--------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------- |
| `enable`                                                   | This feature allows you to subscribe to interested events and receive Webhook notifications.                                                             | No                                            |
| `events[].subscription_id`                                 | The primary key of subscription                                                                                                                          | Yes (when updating subscription)              |
| `events[].subscription_name`                               | Name this particular event subscription.                                                                                                                 | Yes (if `enable` = true)                      |
| `events[].development_webhook_url`                         | Provide a URL to receive subscribed event notifications. This is for testing in your local environment.                                                  | Yes (if `enable` = true)                      |
| `events[].production_webhook_url`                          | Provide a URL to receive subscribed event notifications. This is for testing in your local environment.                                                  | No                                            |
| `events[].event_types`                                     | Add events for your app to subscribe. Any corresponding scopes related to specific events will be automatically selected.                                | Yes (if `enable` = true)                      |
| `events[].event_usage`                                     | Event notification receiver<br></br>This feature is only available for account level apps.                                                               | No                                            |
| `events[].communicate_type`                                | Event communicate type: `WEB_HOOK`, `WEB_SOCKET`                                                                                                         | No<br></br>`WEB_HOOK` by default              |
| `events[].developmentEventCustomHeader.custom_header_type` | Use the custom authentication header method to validate Zoom webhook notifications.<br></br><br></br>0-DEFAULT, 1-BASE_AUTH, 2-OAUTH, 3-CUSTOM_KEY_VALUE | No                                            |
| `events[].developmentEventCustomHeader.username`           | Basic Authentication<br></br><br></br>It can be used when customHeaderType is 1-BASE_AUTH                                                                | No<br></br>Required when customHeaderType = 1 |
| `events[].developmentEventCustomHeader.password`           | Basic Authentication<br></br><br></br>It can be used when customHeaderType is 1-BASE_AUTH                                                                | No<br></br>Required when customHeaderType = 1 |
| `events[].developmentEventCustomHeader.client_id`          | Token Authentication<br></br><br></br>It can be used when customHeaderType is 2-OAUTH                                                                    | No<br></br>Required when customHeaderType = 2 |
| `events[].developmentEventCustomHeader.client_secret`      | Token Authentication<br></br><br></br>It can be used when customHeaderType is 1-BASE_AUTH                                                                | No<br></br>Required when customHeaderType = 2 |
| `events[].developmentEventCustomHeader.custom_header_key`  | Custom Header<br></br><br></br>It can be used when customHeaderType is 3-CUSTOM_KEY_VALUE                                                                | No<br></br>Required when customHeaderType = 3 |

|
