Propelus
Webhooks

Update Webhook

Partial update of a webhook, identified by webhookId, following JSON Merge Patch (RFC 7396) semantics. Fields omitted from the request body keep their stored value. null on signature or authentication explicitly clears the stored value (the attribute is dropped from the record). eventType and url may not be null — they're required to have a value once the webhook exists.

Reactivation is triggered when any of the following holds:

  • the request changes url,

  • the request changes authentication (including clearing it via null), or

  • the stored record's status is failed (in which case PATCH re-runs the activation handshake even when nothing about the configuration changes — this is the recovery path from a POST that returned created_failed, or from a previous PATCH whose handshake failed).

When reactivation is triggered, the activation POST is re-run against the target URL. On a 2xx response the webhook moves back to pending and the response carries code: updated_not_verified; on a non-2xx response the request returns 400 and the stored record is left untouched (the prior active / pending / failed state is preserved). When no reactivation is required, the response carries code: updated and the stored status is unchanged.

PATCH
/v2/webhooks/{webhookId}

Authorization

apiKey clientId
x-api-key<token>

In: header

x-client-id<token>

In: header

Path Parameters

webhookId*string

Unique identifier for the webhook.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Partial webhook update body. Follows JSON Merge Patch (RFC 7396) semantics: every field is optional, and omitted fields keep their stored value. null on signature or authentication explicitly clears the stored value (the attribute is removed from the record). Changing url or authentication (including clearing authentication) re-runs the activation handshake and returns updated_not_verified.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v2/webhooks/628fc8e2-ee7e-4779-9eb7-d980e7a92f3a" \  -H "Content-Type: application/json" \  -d '{    "signature": {      "key": "a3f8c92e5d1b4f7a9e6c2d8b3f5a1c4e"    }  }'
{
  "status": 200,
  "code": "updated_not_verified",
  "detail": "string",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
{
  "status": 400,
  "code": "missing_fields",
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string",
      "parameter": "string",
      "header": "string",
      "code": "string"
    }
  ]
}
{
  "status": 400,
  "code": "missing_fields",
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string",
      "parameter": "string",
      "header": "string",
      "code": "string"
    }
  ]
}
{
  "status": 400,
  "code": "missing_fields",
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string",
      "parameter": "string",
      "header": "string",
      "code": "string"
    }
  ]
}
{
  "status": 400,
  "code": "missing_fields",
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string",
      "parameter": "string",
      "header": "string",
      "code": "string"
    }
  ]
}
{
  "status": 429,
  "detail": "string",
  "code": "f5d62b05-370e-48be-a755-8675ca146431"
}
{
  "status": 400,
  "code": "missing_fields",
  "detail": "string",
  "errors": [
    {
      "detail": "string",
      "pointer": "string",
      "parameter": "string",
      "header": "string",
      "code": "string"
    }
  ]
}
{
  "status": 500,
  "detail": "string",
  "code": "unexpected_error"
}