Update a webhook subscription
Updates a webhook subscription's target URL, event types or enabled state, and returns it unchanged when the body sets none. event_types replaces the current list rather than adding to it. Changing target_url clears the confirmation, since the new host has not accepted a ping yet. Set is_enabled true to recover a subscription Terac disabled after sustained failure.
Authorization
apiKey API key as Bearer token: Authorization: Bearer
In: header
Path Parameters
ID of the webhook subscription, as returned when it was created or listed.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://terac.com/api/external/v2/hooks/subscriptions/string" \ -H "Content-Type: application/json" \ -d '{}'{
"id": "string",
"target_url": "string",
"event_types": [
"submission.status.change"
],
"is_enabled": true,
"confirmed_at": "string",
"disabled_at": "string",
"disabled_reason": "string",
"created_at": "string",
"updated_at": "string"
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required. Include Authorization: Bearer <key> header."
}
}{
"error": {
"code": "FORBIDDEN",
"message": "This account is not permitted to use the API."
}
}{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 61 seconds."
}
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Get a webhook subscription GET
Returns one webhook subscription: its target URL, event types, and whether it is confirmed and enabled. disabled_reason is set when Terac disabled it after sustained delivery failure; patch is_enabled to true to turn it back on. The signing secret is left out.
Confirm a webhook subscription POST
Confirms a webhook subscription by POSTing one signed webhook.ping to its target_url. Answer 2xx and the subscription starts receiving events; any other outcome returns 412 with the reason, and it stays unconfirmed. This is also the way to test a receiver end to end, since it exercises the real signature headers.