curl --request PATCH \
--url https://api.hubmessage.io/v1/webhooks/{webhookId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://new-destination/webhook",
"status": "DISABLED"
}
'
{
"id": "8F2C00000000000000000000000000A1",
"channelId": null,
"instanceId": null,
"url": "https://new-destination/webhook",
"description": "Template webhook",
"events": [
"UPDATE_TEMPLATE_STATUS",
"UPDATE_TEMPLATE_CATEGORY"
],
"status": "DISABLED",
"signing": false,
"auth": {
"type": "NONE",
"configured": false
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2026-07-15T19:00:00.000+00:00",
"updatedAt": "2026-07-15T19:30:00.000+00:00"
}{
"error": "Validation error"
}{
"error": "Webhook not found"
}{
"error": "Global webhooks (without instance) accept only template events"
}Templates
Update template webhook
Update the configuration of an existing template webhook
PATCH
/
v1
/
webhooks
/
{webhookId}
curl --request PATCH \
--url https://api.hubmessage.io/v1/webhooks/{webhookId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://new-destination/webhook",
"status": "DISABLED"
}
'
{
"id": "8F2C00000000000000000000000000A1",
"channelId": null,
"instanceId": null,
"url": "https://new-destination/webhook",
"description": "Template webhook",
"events": [
"UPDATE_TEMPLATE_STATUS",
"UPDATE_TEMPLATE_CATEGORY"
],
"status": "DISABLED",
"signing": false,
"auth": {
"type": "NONE",
"configured": false
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2026-07-15T19:00:00.000+00:00",
"updatedAt": "2026-07-15T19:30:00.000+00:00"
}{
"error": "Validation error"
}{
"error": "Webhook not found"
}{
"error": "Global webhooks (without instance) accept only template events"
}Overview
Partially updates a template webhook’s configuration. Only the fields sent in the body are updated — the rest remain unchanged.Updating events
When sending theevents field, the list replaces the existing events and must contain only template events (otherwise → 422):
{ "events": ["UPDATE_TEMPLATE_STATUS", "UPDATE_TEMPLATE_CATEGORY"] }
HMAC signing
signing: true generates a new secret (returned only in this response); signing: false removes signing.
The new
secret is returned only in this response. Store it before closing the session.Temporarily disabling
{ "status": "DISABLED" }
{ "status": "ENABLED" }.
payloadFormat is still ignored
For template webhooks the format is always DEFAULT, even if sent in the update.
This endpoint requires the ENTERPRISE role on your account.
After the change, routing may take up to ~5 min to reflect (cache TTL).
Authorizations
Body
application/json
All fields are optional — only the fields sent are updated.
If sent, replaces the event list — template events only (otherwise → 422).
Accepted template events: UPDATE_TEMPLATE_STATUS (template status update — approved/rejected etc.) and UPDATE_TEMPLATE_CATEGORY (template category update).
Available options:
UPDATE_TEMPLATE_STATUS, UPDATE_TEMPLATE_CATEGORY Response
Template webhook updated. The secret field is returned only when signing = true in this update.
Configured template events
Accepted template events: UPDATE_TEMPLATE_STATUS (template status update — approved/rejected etc.) and UPDATE_TEMPLATE_CATEGORY (template category update).
Available options:
UPDATE_TEMPLATE_STATUS, UPDATE_TEMPLATE_CATEGORY Example:
[
"UPDATE_TEMPLATE_STATUS",
"UPDATE_TEMPLATE_CATEGORY"
]