# Webhook Management

Endpoints for configuring and managing webhooks

## Retrieve webhook url

> This endpoint allows partners to get the webhook url.\
> Webhook url will be used to send important events when something changes on client, channel or waba account.\
> \
> Retrieves the webhook URL configured for the partner.\
> \
> This URL receives various asynchronous notifications from our system. See the main \*\*\[Webhooks]\(#webhooks)\*\* section at the bottom of the page for a complete list of all possible events.\
> \
> \### Key Events:\
> \* A new channel is created: \*\*\[Channel Created]\(#webhooks/postchannelCreated)\*\*\
> \* A message template's status changes: \*\*\[Template Status Changed]\(#webhooks/postwabaTemplateStatusChanged)\*\*\
> \* A channel's messaging is enabled: \*\*\[Template Messaging Enabled]\(#webhooks/posttemplateMessagingEnabled)\*\*\
> \> ⚠️ \*\*Disclaimer:\*\* The webhook definitions in the linked section above were not verified by a human, so please take it with a grain of salt.

```json
{"openapi":"3.1.0","info":{"title":"Partners V2 API","version":"2.0.0"},"tags":[{"name":"Webhook Management","description":"Endpoints for configuring and managing webhooks"}],"servers":[{"description":"Production Server","url":"https://hub.360dialog.io"}],"security":[{"PartnerApiKeyV2":[]},{"Bearer":[]}],"components":{"securitySchemes":{"PartnerApiKeyV2":{"type":"apiKey","name":"X-API-Key","in":"header","description":"API Key for V2 authentication. Send your Partner API key in the X-API-Key header. Preferred authentication method."},"Bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token authentication. Token obtained via /api/v2/token endpoint."}},"schemas":{"PartnerGetWebhookUrlOut":{"type":"object","properties":{"webhook_url":{"type":"string","format":"url","description":"Webhook url"}},"additionalProperties":false},"DefaultValidationError":{"type":"object","properties":{"meta":{"allOf":[{"$ref":"#/components/schemas/MetaSchemaErrorWithDetails"}]}},"required":["meta"],"additionalProperties":false},"MetaSchemaErrorWithDetails":{"type":"object","properties":{"developer_message":{"type":"string"},"http_code":{"type":"integer"},"success":{"type":"boolean"},"360dialog_trace_id":{"type":"string","description":"Trace ID for debugging purposes"},"details":{"type":"object","description":"Additional error data","additionalProperties":{}}},"required":["developer_message","http_code","success"],"additionalProperties":false},"DefaultHttpError":{"type":"object","properties":{"meta":{"allOf":[{"$ref":"#/components/schemas/_MetaSchemaError"}]}},"required":["meta"],"additionalProperties":false},"_MetaSchemaError":{"type":"object","properties":{"developer_message":{"type":"string"},"http_code":{"type":"integer"},"success":{"type":"boolean"},"360dialog_trace_id":{"type":"string","description":"Trace ID for debugging purposes"}},"required":["developer_message","http_code","success"],"additionalProperties":false}}},"paths":{"/api/v2/partners/{partner_id}/webhook_url":{"get":{"parameters":[{"in":"path","name":"partner_id","description":"The ID of the partner.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerGetWebhookUrlOut"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultValidationError"}}},"description":"Wrong payload"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultHttpError"}}},"description":"Not found"}},"tags":["Webhook Management"],"summary":"Retrieve webhook url","description":"This endpoint allows partners to get the webhook url.\nWebhook url will be used to send important events when something changes on client, channel or waba account.\n\nRetrieves the webhook URL configured for the partner.\n\nThis URL receives various asynchronous notifications from our system. See the main **[Webhooks](#webhooks)** section at the bottom of the page for a complete list of all possible events.\n\n### Key Events:\n* A new channel is created: **[Channel Created](#webhooks/postchannelCreated)**\n* A message template's status changes: **[Template Status Changed](#webhooks/postwabaTemplateStatusChanged)**\n* A channel's messaging is enabled: **[Template Messaging Enabled](#webhooks/posttemplateMessagingEnabled)**\n> ⚠️ **Disclaimer:** The webhook definitions in the linked section above were not verified by a human, so please take it with a grain of salt.","operationId":"get_webhook_management_docs_api_get_webhook_url"}}}}
```

## Set/Update webhook url

> This endpoint allows partners to set the partner webhook url.\
> This endpoint is \*only\* for partner webhook settings, not for WABA or Channel webhooks.\
> \
> Retrieves the webhook URL configured for the partner.\
> \
> This URL receives various asynchronous notifications from our system. See the main \*\*\[Webhooks]\(#webhooks)\*\* section at the bottom of the page for a complete list of all possible events.\
> \
> \### Key Events:\
> \* A new channel is created: \*\*\[Channel Created]\(#webhooks/postchannelCreated)\*\*\
> \* A message template's status changes: \*\*\[Template Status Changed]\(#webhooks/postwabaTemplateStatusChanged)\*\*\
> \* A channel's messaging is enabled: \*\*\[Template Messaging Enabled]\(#webhooks/posttemplateMessagingEnabled)\*\*\
> \> ⚠️ \*\*Disclaimer:\*\* The webhook definitions in the linked section above were not verified by a human, so please take it with a grain of salt.

```json
{"openapi":"3.1.0","info":{"title":"Partners V2 API","version":"2.0.0"},"tags":[{"name":"Webhook Management","description":"Endpoints for configuring and managing webhooks"}],"servers":[{"description":"Production Server","url":"https://hub.360dialog.io"}],"security":[{"PartnerApiKeyV2":[]},{"Bearer":[]}],"components":{"securitySchemes":{"PartnerApiKeyV2":{"type":"apiKey","name":"X-API-Key","in":"header","description":"API Key for V2 authentication. Send your Partner API key in the X-API-Key header. Preferred authentication method."},"Bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token authentication. Token obtained via /api/v2/token endpoint."}},"schemas":{"PartnerOut":{"type":"object","properties":{"id":{"type":"string","description":"Partner ID"},"brand_name":{"type":"string","description":"Brand name"},"payment_required":{"type":"boolean","description":"[Deprecated]","deprecated":true},"payment_plan":{"type":"object","description":"[Deprecated]","deprecated":true,"additionalProperties":{}},"logo_url":{"type":"string","description":"Logo url","nullable":true},"onboarding_deeplink_add_params":{"type":"boolean","description":"[Internal Field]","deprecated":true},"webhook_url":{"type":"string","format":"url","description":"Webhook url for Partners API events (non-messaging)"},"partner_redirect_url":{"type":"string","format":"url","description":"Partner redirect URL, clients will be redirected to this URL after integrated onboarding is done."},"country":{"type":"string","description":"Country code"},"blocked_new_submission":{"type":"boolean","description":"[Internal Field]","deprecated":true},"allow_client_to_add_phone_no":{"type":"boolean","description":"If set to false, clients will not be able to onboard new numbers"},"settings":{"description":"Settings that configure features of the partner hub","anyOf":[{"$ref":"#/components/schemas/PartnerSettingsPublicOut"},{"type":"object","nullable":true}]},"billing_system":{"type":"string","description":"[Internal Field]","deprecated":true},"publishable_key":{"type":"string","description":"[Deprecated] Stripe public key","deprecated":true,"nullable":true}},"additionalProperties":false},"PartnerSettingsPublicOut":{"type":"object","properties":{"partner_change_request":{"description":"Partner change request settings","anyOf":[{"$ref":"#/components/schemas/PartnerChangeRequestSettingsOut"},{"type":"object","nullable":true}]},"account_sharing":{"description":"Account sharing settings","anyOf":[{"$ref":"#/components/schemas/AccountSharingSettingsOutData"},{"type":"object","nullable":true}]},"default_data_localization_region":{"type":"string","description":"Default location where new channel's message data is stored at rest","nullable":true},"use_marketing_messages_api":{"type":"boolean","description":"Whether to proxy requests to the marketing messages API","nullable":true},"bearer_token_auth_disabled":{"type":"boolean","description":"Whether bearer token authentication is disabled","nullable":true},"io_secure":{"description":"Partner IO security settings","anyOf":[{"$ref":"#/components/schemas/PartnerIOSecureSettingsOut"},{"type":"object","nullable":true}]},"is_direct_360dialog_partner":{"type":"boolean","description":"Is the partner a direct 360dialog account?","nullable":true}},"additionalProperties":false},"PartnerChangeRequestSettingsOut":{"type":"object","properties":{"auto_approve":{"type":"boolean","description":"When true, all the partner change requests from other clients to your partner hub will be automatically approved."}},"required":["auto_approve"],"additionalProperties":false},"AccountSharingSettingsOutData":{"type":"object","properties":{"solution_id":{"type":"string","description":"The solution id that is created and approved on Meta"},"business_manager_id":{"type":"string","description":"The business manager id that is connected to the solution agreement"},"solution_status":{"type":"string","description":"Solution status. Values can be: [`ACTIVE`, `DEACTIVATED`, `DRAFT`, `INITATED`, `PENDING_DEACTIVATION`, `REJECTED`]"}},"additionalProperties":false},"PartnerIOSecureSettingsOut":{"type":"object","properties":{"io_signature_verification_enabled":{"type":"boolean","description":"Whether IO signature verification is enabled","nullable":true}},"additionalProperties":false},"DefaultValidationError":{"type":"object","properties":{"meta":{"allOf":[{"$ref":"#/components/schemas/MetaSchemaErrorWithDetails"}]}},"required":["meta"],"additionalProperties":false},"MetaSchemaErrorWithDetails":{"type":"object","properties":{"developer_message":{"type":"string"},"http_code":{"type":"integer"},"success":{"type":"boolean"},"360dialog_trace_id":{"type":"string","description":"Trace ID for debugging purposes"},"details":{"type":"object","description":"Additional error data","additionalProperties":{}}},"required":["developer_message","http_code","success"],"additionalProperties":false},"DefaultHttpError":{"type":"object","properties":{"meta":{"allOf":[{"$ref":"#/components/schemas/_MetaSchemaError"}]}},"required":["meta"],"additionalProperties":false},"_MetaSchemaError":{"type":"object","properties":{"developer_message":{"type":"string"},"http_code":{"type":"integer"},"success":{"type":"boolean"},"360dialog_trace_id":{"type":"string","description":"Trace ID for debugging purposes"}},"required":["developer_message","http_code","success"],"additionalProperties":false},"SetPartnerWebhookUrlIn":{"type":"object","properties":{"webhook_url":{"type":"string","format":"url","description":"Webhook url"}},"required":["webhook_url"],"additionalProperties":false}}},"paths":{"/api/v2/partners/{partner_id}/webhook_url":{"post":{"parameters":[{"in":"path","name":"partner_id","description":"The ID of the partner.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerOut"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultValidationError"}}},"description":"Wrong payload"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultHttpError"}}},"description":"Not found"}},"tags":["Webhook Management"],"summary":"Set/Update webhook url","description":"This endpoint allows partners to set the partner webhook url.\nThis endpoint is *only* for partner webhook settings, not for WABA or Channel webhooks.\n\nRetrieves the webhook URL configured for the partner.\n\nThis URL receives various asynchronous notifications from our system. See the main **[Webhooks](#webhooks)** section at the bottom of the page for a complete list of all possible events.\n\n### Key Events:\n* A new channel is created: **[Channel Created](#webhooks/postchannelCreated)**\n* A message template's status changes: **[Template Status Changed](#webhooks/postwabaTemplateStatusChanged)**\n* A channel's messaging is enabled: **[Template Messaging Enabled](#webhooks/posttemplateMessagingEnabled)**\n> ⚠️ **Disclaimer:** The webhook definitions in the linked section above were not verified by a human, so please take it with a grain of salt.","operationId":"post_webhook_management_docs_api_set_webhook_url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPartnerWebhookUrlIn"}}}}}}}}
```

## Retrieve webhook headers

> This endpoint allows partners to get the webhook headers.\
> Partners can set http headers that they want to receive in webhook requests.\
> Example: Authorization, Content-Type.

```json
{"openapi":"3.1.0","info":{"title":"Partners V2 API","version":"2.0.0"},"tags":[{"name":"Webhook Management","description":"Endpoints for configuring and managing webhooks"}],"servers":[{"description":"Production Server","url":"https://hub.360dialog.io"}],"security":[{"PartnerApiKeyV2":[]},{"Bearer":[]}],"components":{"securitySchemes":{"PartnerApiKeyV2":{"type":"apiKey","name":"X-API-Key","in":"header","description":"API Key for V2 authentication. Send your Partner API key in the X-API-Key header. Preferred authentication method."},"Bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token authentication. Token obtained via /api/v2/token endpoint."}},"schemas":{"PartnerGetWebhookHeadersOut":{"type":"object","properties":{"webhook_headers":{"type":"object","description":"Webhook headers","additionalProperties":{}}},"additionalProperties":false},"DefaultValidationError":{"type":"object","properties":{"meta":{"allOf":[{"$ref":"#/components/schemas/MetaSchemaErrorWithDetails"}]}},"required":["meta"],"additionalProperties":false},"MetaSchemaErrorWithDetails":{"type":"object","properties":{"developer_message":{"type":"string"},"http_code":{"type":"integer"},"success":{"type":"boolean"},"360dialog_trace_id":{"type":"string","description":"Trace ID for debugging purposes"},"details":{"type":"object","description":"Additional error data","additionalProperties":{}}},"required":["developer_message","http_code","success"],"additionalProperties":false},"DefaultHttpError":{"type":"object","properties":{"meta":{"allOf":[{"$ref":"#/components/schemas/_MetaSchemaError"}]}},"required":["meta"],"additionalProperties":false},"_MetaSchemaError":{"type":"object","properties":{"developer_message":{"type":"string"},"http_code":{"type":"integer"},"success":{"type":"boolean"},"360dialog_trace_id":{"type":"string","description":"Trace ID for debugging purposes"}},"required":["developer_message","http_code","success"],"additionalProperties":false}}},"paths":{"/api/v2/partners/{partner_id}/webhook_headers":{"get":{"parameters":[{"in":"path","name":"partner_id","description":"The ID of the partner.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerGetWebhookHeadersOut"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultValidationError"}}},"description":"Wrong payload"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultHttpError"}}},"description":"Not found"}},"tags":["Webhook Management"],"summary":"Retrieve webhook headers","description":"This endpoint allows partners to get the webhook headers.\nPartners can set http headers that they want to receive in webhook requests.\nExample: Authorization, Content-Type.","operationId":"get_webhook_management_docs_api_get_webhook_headers"}}}}
```

## Set/Update webhook headers

> This endpoint allows partners to set the webhook headers.\
> Partners can set http headers that they want to receive in webhook requests.\
> Example: Authorization, Content-Type, ...

```json
{"openapi":"3.1.0","info":{"title":"Partners V2 API","version":"2.0.0"},"tags":[{"name":"Webhook Management","description":"Endpoints for configuring and managing webhooks"}],"servers":[{"description":"Production Server","url":"https://hub.360dialog.io"}],"security":[{"PartnerApiKeyV2":[]},{"Bearer":[]}],"components":{"securitySchemes":{"PartnerApiKeyV2":{"type":"apiKey","name":"X-API-Key","in":"header","description":"API Key for V2 authentication. Send your Partner API key in the X-API-Key header. Preferred authentication method."},"Bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer token authentication. Token obtained via /api/v2/token endpoint."}},"schemas":{"PartnerSetWebhookHeadersOut":{"type":"object","properties":{"id":{"type":"string","description":"Partner ID"},"brand_name":{"type":"string","description":"Brand name"},"payment_required":{"type":"boolean","description":"[Deprecated]","deprecated":true},"payment_plan":{"type":"object","description":"[Deprecated]","deprecated":true,"additionalProperties":{}},"logo_url":{"type":"string","description":"Logo url","nullable":true},"onboarding_deeplink_add_params":{"type":"boolean","description":"[Internal Field]","deprecated":true},"webhook_url":{"type":"string","format":"url","description":"Webhook url for Partners API events (non-messaging)"},"partner_redirect_url":{"type":"string","format":"url","description":"Partner redirect URL, clients will be redirected to this URL after integrated onboarding is done."},"country":{"type":"string","description":"Country code"},"blocked_new_submission":{"type":"boolean","description":"[Internal Field]","deprecated":true},"allow_client_to_add_phone_no":{"type":"boolean","description":"If set to false, clients will not be able to onboard new numbers"},"settings":{"description":"Settings that configure features of the partner hub","anyOf":[{"$ref":"#/components/schemas/PartnerSettingsPublicOut"},{"type":"object","nullable":true}]},"billing_system":{"type":"string","description":"[Internal Field]","deprecated":true},"publishable_key":{"type":"string","description":"[Deprecated] Stripe public key","deprecated":true,"nullable":true},"webhook_headers":{"type":"object","description":"Webhook headers","additionalProperties":{}}},"additionalProperties":false},"PartnerSettingsPublicOut":{"type":"object","properties":{"partner_change_request":{"description":"Partner change request settings","anyOf":[{"$ref":"#/components/schemas/PartnerChangeRequestSettingsOut"},{"type":"object","nullable":true}]},"account_sharing":{"description":"Account sharing settings","anyOf":[{"$ref":"#/components/schemas/AccountSharingSettingsOutData"},{"type":"object","nullable":true}]},"default_data_localization_region":{"type":"string","description":"Default location where new channel's message data is stored at rest","nullable":true},"use_marketing_messages_api":{"type":"boolean","description":"Whether to proxy requests to the marketing messages API","nullable":true},"bearer_token_auth_disabled":{"type":"boolean","description":"Whether bearer token authentication is disabled","nullable":true},"io_secure":{"description":"Partner IO security settings","anyOf":[{"$ref":"#/components/schemas/PartnerIOSecureSettingsOut"},{"type":"object","nullable":true}]},"is_direct_360dialog_partner":{"type":"boolean","description":"Is the partner a direct 360dialog account?","nullable":true}},"additionalProperties":false},"PartnerChangeRequestSettingsOut":{"type":"object","properties":{"auto_approve":{"type":"boolean","description":"When true, all the partner change requests from other clients to your partner hub will be automatically approved."}},"required":["auto_approve"],"additionalProperties":false},"AccountSharingSettingsOutData":{"type":"object","properties":{"solution_id":{"type":"string","description":"The solution id that is created and approved on Meta"},"business_manager_id":{"type":"string","description":"The business manager id that is connected to the solution agreement"},"solution_status":{"type":"string","description":"Solution status. Values can be: [`ACTIVE`, `DEACTIVATED`, `DRAFT`, `INITATED`, `PENDING_DEACTIVATION`, `REJECTED`]"}},"additionalProperties":false},"PartnerIOSecureSettingsOut":{"type":"object","properties":{"io_signature_verification_enabled":{"type":"boolean","description":"Whether IO signature verification is enabled","nullable":true}},"additionalProperties":false},"DefaultValidationError":{"type":"object","properties":{"meta":{"allOf":[{"$ref":"#/components/schemas/MetaSchemaErrorWithDetails"}]}},"required":["meta"],"additionalProperties":false},"MetaSchemaErrorWithDetails":{"type":"object","properties":{"developer_message":{"type":"string"},"http_code":{"type":"integer"},"success":{"type":"boolean"},"360dialog_trace_id":{"type":"string","description":"Trace ID for debugging purposes"},"details":{"type":"object","description":"Additional error data","additionalProperties":{}}},"required":["developer_message","http_code","success"],"additionalProperties":false},"DefaultHttpError":{"type":"object","properties":{"meta":{"allOf":[{"$ref":"#/components/schemas/_MetaSchemaError"}]}},"required":["meta"],"additionalProperties":false},"_MetaSchemaError":{"type":"object","properties":{"developer_message":{"type":"string"},"http_code":{"type":"integer"},"success":{"type":"boolean"},"360dialog_trace_id":{"type":"string","description":"Trace ID for debugging purposes"}},"required":["developer_message","http_code","success"],"additionalProperties":false},"SetPartnerWebhookHeadersIn":{"type":"object","properties":{"webhook_headers":{"type":"object","description":"Webhook headers","additionalProperties":{}}},"required":["webhook_headers"],"additionalProperties":false}}},"paths":{"/api/v2/partners/{partner_id}/webhook_headers":{"post":{"parameters":[{"in":"path","name":"partner_id","description":"The ID of the partner.","schema":{"type":"string"},"required":true}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerSetWebhookHeadersOut"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultValidationError"}}},"description":"Wrong payload"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultHttpError"}}},"description":"Not found"}},"tags":["Webhook Management"],"summary":"Set/Update webhook headers","description":"This endpoint allows partners to set the webhook headers.\nPartners can set http headers that they want to receive in webhook requests.\nExample: Authorization, Content-Type, ...","operationId":"post_webhook_management_docs_api_set_webhook_headers","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPartnerWebhookHeadersIn"}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.360dialog.com/partner/partner-api/api-reference/webhook-management.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
