Update a Webhook
PUT/api/webhooks/{id}
Partial update: only the fields present in the request are written, everything else keeps its current value. The same validation as create applies, including the SSRF check on a new URL.
The signing secret cannot be set by the caller. Send rotate_secret as true to have the server mint a new one; the replacement is returned in this response and, like the original, in no other response ever. A rotation invalidates the previous secret immediately, so update your receiver first or let it accept both for a short window.
Headers
| Field | Type | Description |
|---|---|---|
| authtoken | String | Authentication token, generated from admin area |
Parameters
| Field | Type | Description |
|---|---|---|
| id | Number | Webhook unique ID |
| name | String | optional Optional Human readable name |
| url | String | optional Optional New target URL, validated exactly as sent and re-checked against the SSRF policy |
| events | String[] | optional Optional Replacement subscription list, array or comma separated string |
| headers | Object | optional Optional Replacement custom headers. Send an empty object or null to clear them |
| active | Number | optional Optional 1 to enable, 0 to disable |
| timeout | Number | optional Optional Per attempt timeout in seconds, 1 to 30 |
| retry_count | Number | optional Optional Extra attempts after a failed one, 0 to 3 |
| rotate_secret | Boolean | optional Optional Mint a new signing secret and return it once |
curl -X PUT "https://yoursite.com/api/webhooks/123" \
-H "authtoken: YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "field": "value" }' Success-Response:
HTTP/1.1 200 OK
{
"status": 200,
"messages": { "success": "Record saved" },
"data": {
"id": 3,
"name": "Ops sync",
"url": "https://hooks.example.com/rise",
"events": ["invoices.created", "invoices.updated"],
"active": 1,
"timeout": 15,
"has_secret": true
}
} Secret-Rotated:
HTTP/1.1 200 OK
{
"status": 200,
"messages": { "success": "Record saved" },
"secret": "whsec_8b2100000000000000000000000000000000000000000000000000000000edf4",
"secret_notice": "Store this secret now. It is shown once and cannot be retrieved again.",
"signature_header": "X-Rise-Signature",
"data": { "id": 3, "has_secret": true }
} Not-Found:
HTTP/1.1 404 Not Found
{ "status": false, "messages": { "error": "No data were found" } } Nothing-To-Update:
HTTP/1.1 400 Bad Request
{ "status": false, "messages": { "error": "No updatable field was provided." } }