> For the complete documentation index, see [llms.txt](https://help.enterprise.ledger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.enterprise.ledger.com/api-documentation-v2/reference/webhook.md).

# Webhook

## GET /notifications/webhooks

> List webhooks

```json
{"openapi":"3.1.0","info":{"title":"revault-api","version":"1.86.0"},"servers":[{"url":"/rest"}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information"},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}},"paths":{"/notifications/webhooks":{"get":{"operationId":"webhooks-list","summary":"List webhooks","tags":["webhook"],"parameters":[{"in":"query","name":"page","schema":{"default":1,"description":"Which page to fetch","type":"integer","minimum":1,"maximum":9007199254740991}},{"in":"query","name":"pageSize","schema":{"default":30,"description":"Page size to use","type":"integer","minimum":1,"maximum":30}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"number","description":"Current page"},"next":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Next page or null if there is none"},"prev":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Previous page or null if there is none"},"pageSize":{"type":"number","description":"Max count of items per page"},"total":{"type":"number","description":"Total count of items"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Webhook id"},"name":{"type":"string","description":"What an admin calls this endpoint"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"What the endpoint is for; free text"},"url":{"type":"string","format":"uri","description":"Full URL of the webhook"},"status":{"type":"string","enum":["ENABLED","DISABLED","BROKEN"],"description":"Lifecycle status"},"rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Rule id"},"actions":{"type":"array","items":{"type":"string","enum":["RequestCreated","RequestReceivedApproval","RequestReceivedRejection","RequestActivatedReviews","RequestApproved","RequestExecuted","RequestAborted","RequestFailed","RequestExpired","TransactionScheduled","TransactionSubmitted","TransactionOnChain","TransactionConfirmed","TransactionDropped","TransactionFailed","AccountBalanceUpdated","UserSuspended","UserUnsuspended","UserRegistrationCompleted","ReportCompleted","ReportFailed"]},"description":"Subscribed event types"},"requestTypes":{"type":"array","items":{"type":"string","enum":["UPDATE_QUORUM","EDIT_EXTERNAL_SIGNER_PUBKEYS","CREATE_TRANSACTION","SIGN_MESSAGE","SIGN_DIGESTS","CREATE_ACCOUNT","EDIT_ACCOUNT","CREATE_GROUP","EDIT_GROUP","REVOKE_GROUP","CREATE_WHITELIST","EDIT_WHITELIST","CREATE_ENTITY","EDIT_ENTITY","REVOKE_ENTITY","CREATE_PSD_USER","CREATE_API_USER","CREATE_API_USER_ACCESS","REVOKE_USER","EDIT_WORKSPACE_RULE","CREATE_SCICONFIG","EDIT_SCICONFIG","CREATE_API_KEY","EDIT_API_KEY","REVOKE_API_KEY","CREATE_POLICY","EDIT_POLICY","EDIT_TOKEN_RULE","TRADELINK_CREATE_CUSTODIAN","TRADELINK_EDIT_CUSTODIAN","TRADELINK_CREATE_EXCHANGE","TRADELINK_EDIT_EXCHANGE","TRADELINK_CREATE_ASSET_MANAGER","TRADELINK_EDIT_ASSET_MANAGER","TRADELINK_ACTIVATE_ACCOUNT","TRADELINK_ADJUST_PLEDGE","TRADELINK_CREATE_SETTLEMENT","TRADELINK_FORCE_UNPLEDGE","TRADELINK_ARBITRATE","TRADELINK_WITHDRAW","TRADELINK_REPLEDGE"]},"description":"Request-family filter"}},"required":["id","actions","requestTypes"],"additionalProperties":false},"description":"Subscription rules"},"scopeUserIds":{"type":"array","items":{"type":"string"},"description":"Operator ids narrowing delivery"},"retryStrategy":{"type":"string","enum":["FIXED","LINEAR","EXPONENTIAL"],"description":"Backoff shape"},"maxRetries":{"type":"number","description":"Max delivery attempts"},"initialIntervalMs":{"type":"number","description":"Initial backoff interval (ms)"},"createdAt":{"description":"Creation timestamp","type":"string"},"updatedAt":{"description":"Last update timestamp","type":"string"},"consecutiveFailures":{"type":"number","description":"Settled failures in a row; explains a BROKEN status"},"brokenSince":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When the endpoint broke; events are kept from that date for a replay"},"stats":{"type":"object","properties":{"windowDays":{"type":"number","description":"Days the rate is computed over"},"delivered":{"type":"number","description":"Deliveries that succeeded in the window"},"failed":{"type":"number","description":"Deliveries that exhausted their attempts in the window"},"successRate":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"delivered / total, null when no delivery"}},"required":["windowDays","delivered","failed","successRate"],"additionalProperties":false,"description":"Delivery health over the recent window"}},"required":["id","name","description","url","status","rules","scopeUserIds","retryStrategy","maxRetries","initialIntervalMs","createdAt","updatedAt","consecutiveFailures","brokenSince","stats"],"additionalProperties":false},"description":"Array of results"}},"required":["page","next","prev","pageSize","total","results"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}}}
```

## POST /notifications/webhooks

> Create a webhook

```json
{"openapi":"3.1.0","info":{"title":"revault-api","version":"1.86.0"},"servers":[{"url":"/rest"}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information"},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}},"paths":{"/notifications/webhooks":{"post":{"operationId":"webhooks-create","summary":"Create a webhook","tags":["webhook"],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60,"description":"What an admin calls this endpoint"},"description":{"type":"string","maxLength":500,"description":"What the endpoint is for; free text"},"url":{"description":"Full URL of the webhook","type":"string","maxLength":255,"format":"uri"},"rules":{"minItems":1,"type":"array","items":{"type":"object","properties":{"actions":{"minItems":1,"type":"array","items":{"type":"string","enum":["RequestCreated","RequestReceivedApproval","RequestReceivedRejection","RequestActivatedReviews","RequestApproved","RequestExecuted","RequestAborted","RequestFailed","RequestExpired","TransactionScheduled","TransactionSubmitted","TransactionOnChain","TransactionConfirmed","TransactionDropped","TransactionFailed","AccountBalanceUpdated","UserRegistrationCompleted","UserSuspended","UserUnsuspended","ReportCompleted","ReportFailed"]},"description":"Event types this rule subscribes to"},"requestTypes":{"default":[],"description":"Request-family filter; empty = all request types","type":"array","items":{"type":"string","enum":["UPDATE_QUORUM","EDIT_EXTERNAL_SIGNER_PUBKEYS","CREATE_TRANSACTION","SIGN_MESSAGE","SIGN_DIGESTS","CREATE_ACCOUNT","EDIT_ACCOUNT","CREATE_GROUP","EDIT_GROUP","REVOKE_GROUP","CREATE_WHITELIST","EDIT_WHITELIST","CREATE_ENTITY","EDIT_ENTITY","REVOKE_ENTITY","CREATE_PSD_USER","CREATE_API_USER","CREATE_API_USER_ACCESS","REVOKE_USER","EDIT_WORKSPACE_RULE","CREATE_SCICONFIG","EDIT_SCICONFIG","CREATE_API_KEY","EDIT_API_KEY","REVOKE_API_KEY","CREATE_POLICY","EDIT_POLICY","EDIT_TOKEN_RULE","TRADELINK_CREATE_CUSTODIAN","TRADELINK_EDIT_CUSTODIAN","TRADELINK_CREATE_EXCHANGE","TRADELINK_EDIT_EXCHANGE","TRADELINK_CREATE_ASSET_MANAGER","TRADELINK_EDIT_ASSET_MANAGER","TRADELINK_ACTIVATE_ACCOUNT","TRADELINK_ADJUST_PLEDGE","TRADELINK_CREATE_SETTLEMENT","TRADELINK_FORCE_UNPLEDGE","TRADELINK_ARBITRATE","TRADELINK_WITHDRAW","TRADELINK_REPLEDGE"]}}},"required":["actions"],"additionalProperties":false},"description":"Subscription rules"},"secret":{"description":"Existing signing secret to reuse; generated when omitted","type":"string","minLength":1,"maxLength":255},"scopeUserIds":{"default":[],"description":"Operator ids narrowing delivery. Empty delivers every event of the workspace. When set, an event is delivered only if one of these operators is a recipient of it, so the endpoint receives no administration event: those go to admins, and this list holds operators.","type":"array","items":{"type":"string"}},"retryStrategy":{"default":"EXPONENTIAL","description":"Backoff shape between delivery attempts","type":"string","enum":["FIXED","LINEAR","EXPONENTIAL"]},"maxRetries":{"default":10,"description":"Max delivery attempts","type":"integer","minimum":0,"maximum":20},"initialIntervalMs":{"default":5000,"description":"Initial backoff interval (ms)","type":"integer","minimum":100,"maximum":60000}},"required":["name","url","rules"],"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Webhook id"},"name":{"type":"string","description":"What an admin calls this endpoint"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"What the endpoint is for; free text"},"url":{"type":"string","format":"uri","description":"Full URL of the webhook"},"status":{"type":"string","enum":["ENABLED","DISABLED","BROKEN"],"description":"Lifecycle status"},"rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Rule id"},"actions":{"type":"array","items":{"type":"string","enum":["RequestCreated","RequestReceivedApproval","RequestReceivedRejection","RequestActivatedReviews","RequestApproved","RequestExecuted","RequestAborted","RequestFailed","RequestExpired","TransactionScheduled","TransactionSubmitted","TransactionOnChain","TransactionConfirmed","TransactionDropped","TransactionFailed","AccountBalanceUpdated","UserSuspended","UserUnsuspended","UserRegistrationCompleted","ReportCompleted","ReportFailed"]},"description":"Subscribed event types"},"requestTypes":{"type":"array","items":{"type":"string","enum":["UPDATE_QUORUM","EDIT_EXTERNAL_SIGNER_PUBKEYS","CREATE_TRANSACTION","SIGN_MESSAGE","SIGN_DIGESTS","CREATE_ACCOUNT","EDIT_ACCOUNT","CREATE_GROUP","EDIT_GROUP","REVOKE_GROUP","CREATE_WHITELIST","EDIT_WHITELIST","CREATE_ENTITY","EDIT_ENTITY","REVOKE_ENTITY","CREATE_PSD_USER","CREATE_API_USER","CREATE_API_USER_ACCESS","REVOKE_USER","EDIT_WORKSPACE_RULE","CREATE_SCICONFIG","EDIT_SCICONFIG","CREATE_API_KEY","EDIT_API_KEY","REVOKE_API_KEY","CREATE_POLICY","EDIT_POLICY","EDIT_TOKEN_RULE","TRADELINK_CREATE_CUSTODIAN","TRADELINK_EDIT_CUSTODIAN","TRADELINK_CREATE_EXCHANGE","TRADELINK_EDIT_EXCHANGE","TRADELINK_CREATE_ASSET_MANAGER","TRADELINK_EDIT_ASSET_MANAGER","TRADELINK_ACTIVATE_ACCOUNT","TRADELINK_ADJUST_PLEDGE","TRADELINK_CREATE_SETTLEMENT","TRADELINK_FORCE_UNPLEDGE","TRADELINK_ARBITRATE","TRADELINK_WITHDRAW","TRADELINK_REPLEDGE"]},"description":"Request-family filter"}},"required":["id","actions","requestTypes"],"additionalProperties":false},"description":"Subscription rules"},"scopeUserIds":{"type":"array","items":{"type":"string"},"description":"Operator ids narrowing delivery"},"retryStrategy":{"type":"string","enum":["FIXED","LINEAR","EXPONENTIAL"],"description":"Backoff shape"},"maxRetries":{"type":"number","description":"Max delivery attempts"},"initialIntervalMs":{"type":"number","description":"Initial backoff interval (ms)"},"createdAt":{"description":"Creation timestamp","type":"string"},"updatedAt":{"description":"Last update timestamp","type":"string"},"secret":{"type":"string","description":"Signing secret, shown once and never retrievable again"}},"required":["id","name","description","url","status","rules","scopeUserIds","retryStrategy","maxRetries","initialIntervalMs","createdAt","updatedAt","secret"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}}}
```

## GET /notifications/webhooks/{id}

> Get webhook by ID

```json
{"openapi":"3.1.0","info":{"title":"revault-api","version":"1.86.0"},"servers":[{"url":"/rest"}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information"},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}},"paths":{"/notifications/webhooks/{id}":{"get":{"operationId":"webhooks-findById","summary":"Get webhook by ID","tags":["webhook"],"parameters":[{"in":"path","name":"id","schema":{"type":"string","description":"Id of the target webhook"},"required":true,"description":"Id of the target webhook"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Webhook id"},"name":{"type":"string","description":"What an admin calls this endpoint"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"What the endpoint is for; free text"},"url":{"type":"string","format":"uri","description":"Full URL of the webhook"},"status":{"type":"string","enum":["ENABLED","DISABLED","BROKEN"],"description":"Lifecycle status"},"rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Rule id"},"actions":{"type":"array","items":{"type":"string","enum":["RequestCreated","RequestReceivedApproval","RequestReceivedRejection","RequestActivatedReviews","RequestApproved","RequestExecuted","RequestAborted","RequestFailed","RequestExpired","TransactionScheduled","TransactionSubmitted","TransactionOnChain","TransactionConfirmed","TransactionDropped","TransactionFailed","AccountBalanceUpdated","UserSuspended","UserUnsuspended","UserRegistrationCompleted","ReportCompleted","ReportFailed"]},"description":"Subscribed event types"},"requestTypes":{"type":"array","items":{"type":"string","enum":["UPDATE_QUORUM","EDIT_EXTERNAL_SIGNER_PUBKEYS","CREATE_TRANSACTION","SIGN_MESSAGE","SIGN_DIGESTS","CREATE_ACCOUNT","EDIT_ACCOUNT","CREATE_GROUP","EDIT_GROUP","REVOKE_GROUP","CREATE_WHITELIST","EDIT_WHITELIST","CREATE_ENTITY","EDIT_ENTITY","REVOKE_ENTITY","CREATE_PSD_USER","CREATE_API_USER","CREATE_API_USER_ACCESS","REVOKE_USER","EDIT_WORKSPACE_RULE","CREATE_SCICONFIG","EDIT_SCICONFIG","CREATE_API_KEY","EDIT_API_KEY","REVOKE_API_KEY","CREATE_POLICY","EDIT_POLICY","EDIT_TOKEN_RULE","TRADELINK_CREATE_CUSTODIAN","TRADELINK_EDIT_CUSTODIAN","TRADELINK_CREATE_EXCHANGE","TRADELINK_EDIT_EXCHANGE","TRADELINK_CREATE_ASSET_MANAGER","TRADELINK_EDIT_ASSET_MANAGER","TRADELINK_ACTIVATE_ACCOUNT","TRADELINK_ADJUST_PLEDGE","TRADELINK_CREATE_SETTLEMENT","TRADELINK_FORCE_UNPLEDGE","TRADELINK_ARBITRATE","TRADELINK_WITHDRAW","TRADELINK_REPLEDGE"]},"description":"Request-family filter"}},"required":["id","actions","requestTypes"],"additionalProperties":false},"description":"Subscription rules"},"scopeUserIds":{"type":"array","items":{"type":"string"},"description":"Operator ids narrowing delivery"},"retryStrategy":{"type":"string","enum":["FIXED","LINEAR","EXPONENTIAL"],"description":"Backoff shape"},"maxRetries":{"type":"number","description":"Max delivery attempts"},"initialIntervalMs":{"type":"number","description":"Initial backoff interval (ms)"},"createdAt":{"description":"Creation timestamp","type":"string"},"updatedAt":{"description":"Last update timestamp","type":"string"},"consecutiveFailures":{"type":"number","description":"Settled failures in a row; explains a BROKEN status"},"brokenSince":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When the endpoint broke; events are kept from that date for a replay"},"stats":{"type":"object","properties":{"windowDays":{"type":"number","description":"Days the rate is computed over"},"delivered":{"type":"number","description":"Deliveries that succeeded in the window"},"failed":{"type":"number","description":"Deliveries that exhausted their attempts in the window"},"successRate":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"delivered / total, null when no delivery"}},"required":["windowDays","delivered","failed","successRate"],"additionalProperties":false,"description":"Delivery health over the recent window"}},"required":["id","name","description","url","status","rules","scopeUserIds","retryStrategy","maxRetries","initialIntervalMs","createdAt","updatedAt","consecutiveFailures","brokenSince","stats"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}}}
```

## DELETE /notifications/webhooks/{id}

> Delete a webhook

```json
{"openapi":"3.1.0","info":{"title":"revault-api","version":"1.86.0"},"servers":[{"url":"/rest"}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information"},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}},"paths":{"/notifications/webhooks/{id}":{"delete":{"operationId":"webhooks-delete","summary":"Delete a webhook","tags":["webhook"],"parameters":[{"in":"path","name":"id","schema":{"type":"string","description":"Id of the target webhook"},"required":true,"description":"Id of the target webhook"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Always true"}},"required":["success"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}}}
```

## PATCH /notifications/webhooks/{id}

> Update a webhook

```json
{"openapi":"3.1.0","info":{"title":"revault-api","version":"1.86.0"},"servers":[{"url":"/rest"}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information"},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}},"paths":{"/notifications/webhooks/{id}":{"patch":{"operationId":"webhooks-update","summary":"Update a webhook","tags":["webhook"],"parameters":[{"in":"path","name":"id","schema":{"type":"string","description":"Id of the target webhook"},"required":true,"description":"Id of the target webhook"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60,"description":"What an admin calls this endpoint"},"description":{"anyOf":[{"type":"string","maxLength":500,"description":"What the endpoint is for; free text"},{"type":"null"}]},"url":{"description":"Full URL of the webhook","type":"string","maxLength":255,"format":"uri"},"status":{"description":"Lifecycle status","type":"string","enum":["ENABLED","DISABLED","BROKEN"]},"rules":{"description":"Subscription rules","minItems":1,"type":"array","items":{"type":"object","properties":{"actions":{"minItems":1,"type":"array","items":{"type":"string","enum":["RequestCreated","RequestReceivedApproval","RequestReceivedRejection","RequestActivatedReviews","RequestApproved","RequestExecuted","RequestAborted","RequestFailed","RequestExpired","TransactionScheduled","TransactionSubmitted","TransactionOnChain","TransactionConfirmed","TransactionDropped","TransactionFailed","AccountBalanceUpdated","UserRegistrationCompleted","UserSuspended","UserUnsuspended","ReportCompleted","ReportFailed"]},"description":"Event types this rule subscribes to"},"requestTypes":{"default":[],"description":"Request-family filter; empty = all request types","type":"array","items":{"type":"string","enum":["UPDATE_QUORUM","EDIT_EXTERNAL_SIGNER_PUBKEYS","CREATE_TRANSACTION","SIGN_MESSAGE","SIGN_DIGESTS","CREATE_ACCOUNT","EDIT_ACCOUNT","CREATE_GROUP","EDIT_GROUP","REVOKE_GROUP","CREATE_WHITELIST","EDIT_WHITELIST","CREATE_ENTITY","EDIT_ENTITY","REVOKE_ENTITY","CREATE_PSD_USER","CREATE_API_USER","CREATE_API_USER_ACCESS","REVOKE_USER","EDIT_WORKSPACE_RULE","CREATE_SCICONFIG","EDIT_SCICONFIG","CREATE_API_KEY","EDIT_API_KEY","REVOKE_API_KEY","CREATE_POLICY","EDIT_POLICY","EDIT_TOKEN_RULE","TRADELINK_CREATE_CUSTODIAN","TRADELINK_EDIT_CUSTODIAN","TRADELINK_CREATE_EXCHANGE","TRADELINK_EDIT_EXCHANGE","TRADELINK_CREATE_ASSET_MANAGER","TRADELINK_EDIT_ASSET_MANAGER","TRADELINK_ACTIVATE_ACCOUNT","TRADELINK_ADJUST_PLEDGE","TRADELINK_CREATE_SETTLEMENT","TRADELINK_FORCE_UNPLEDGE","TRADELINK_ARBITRATE","TRADELINK_WITHDRAW","TRADELINK_REPLEDGE"]}}},"required":["actions"],"additionalProperties":false}},"scopeUserIds":{"description":"Operator ids narrowing delivery. Empty delivers every event of the workspace. When set, an event is delivered only if one of these operators is a recipient of it, so the endpoint receives no administration event: those go to admins, and this list holds operators.","type":"array","items":{"type":"string"}},"retryStrategy":{"type":"string","enum":["FIXED","LINEAR","EXPONENTIAL"]},"maxRetries":{"type":"integer","minimum":0,"maximum":20},"initialIntervalMs":{"type":"integer","minimum":100,"maximum":60000}},"additionalProperties":false}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Webhook id"},"name":{"type":"string","description":"What an admin calls this endpoint"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"What the endpoint is for; free text"},"url":{"type":"string","format":"uri","description":"Full URL of the webhook"},"status":{"type":"string","enum":["ENABLED","DISABLED","BROKEN"],"description":"Lifecycle status"},"rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Rule id"},"actions":{"type":"array","items":{"type":"string","enum":["RequestCreated","RequestReceivedApproval","RequestReceivedRejection","RequestActivatedReviews","RequestApproved","RequestExecuted","RequestAborted","RequestFailed","RequestExpired","TransactionScheduled","TransactionSubmitted","TransactionOnChain","TransactionConfirmed","TransactionDropped","TransactionFailed","AccountBalanceUpdated","UserSuspended","UserUnsuspended","UserRegistrationCompleted","ReportCompleted","ReportFailed"]},"description":"Subscribed event types"},"requestTypes":{"type":"array","items":{"type":"string","enum":["UPDATE_QUORUM","EDIT_EXTERNAL_SIGNER_PUBKEYS","CREATE_TRANSACTION","SIGN_MESSAGE","SIGN_DIGESTS","CREATE_ACCOUNT","EDIT_ACCOUNT","CREATE_GROUP","EDIT_GROUP","REVOKE_GROUP","CREATE_WHITELIST","EDIT_WHITELIST","CREATE_ENTITY","EDIT_ENTITY","REVOKE_ENTITY","CREATE_PSD_USER","CREATE_API_USER","CREATE_API_USER_ACCESS","REVOKE_USER","EDIT_WORKSPACE_RULE","CREATE_SCICONFIG","EDIT_SCICONFIG","CREATE_API_KEY","EDIT_API_KEY","REVOKE_API_KEY","CREATE_POLICY","EDIT_POLICY","EDIT_TOKEN_RULE","TRADELINK_CREATE_CUSTODIAN","TRADELINK_EDIT_CUSTODIAN","TRADELINK_CREATE_EXCHANGE","TRADELINK_EDIT_EXCHANGE","TRADELINK_CREATE_ASSET_MANAGER","TRADELINK_EDIT_ASSET_MANAGER","TRADELINK_ACTIVATE_ACCOUNT","TRADELINK_ADJUST_PLEDGE","TRADELINK_CREATE_SETTLEMENT","TRADELINK_FORCE_UNPLEDGE","TRADELINK_ARBITRATE","TRADELINK_WITHDRAW","TRADELINK_REPLEDGE"]},"description":"Request-family filter"}},"required":["id","actions","requestTypes"],"additionalProperties":false},"description":"Subscription rules"},"scopeUserIds":{"type":"array","items":{"type":"string"},"description":"Operator ids narrowing delivery"},"retryStrategy":{"type":"string","enum":["FIXED","LINEAR","EXPONENTIAL"],"description":"Backoff shape"},"maxRetries":{"type":"number","description":"Max delivery attempts"},"initialIntervalMs":{"type":"number","description":"Initial backoff interval (ms)"},"createdAt":{"description":"Creation timestamp","type":"string"},"updatedAt":{"description":"Last update timestamp","type":"string"}},"required":["id","name","description","url","status","rules","scopeUserIds","retryStrategy","maxRetries","initialIntervalMs","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}}}
```

## GET /notifications/webhooks/{id}/deliveries

> List the recent deliveries of a webhook

```json
{"openapi":"3.1.0","info":{"title":"revault-api","version":"1.86.0"},"servers":[{"url":"/rest"}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information"},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information"},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}},"paths":{"/notifications/webhooks/{id}/deliveries":{"get":{"operationId":"webhooks-deliveries","summary":"List the recent deliveries of a webhook","tags":["webhook"],"parameters":[{"in":"path","name":"id","schema":{"type":"string","description":"Id of the target webhook"},"required":true,"description":"Id of the target webhook"},{"in":"query","name":"page","schema":{"default":1,"description":"Which page to fetch","type":"integer","minimum":1,"maximum":9007199254740991}},{"in":"query","name":"pageSize","schema":{"default":30,"description":"Page size to use","type":"integer","minimum":1,"maximum":30}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"page":{"type":"number","description":"Current page"},"next":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Next page or null if there is none"},"prev":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Previous page or null if there is none"},"pageSize":{"type":"number","description":"Max count of items per page"},"total":{"type":"number","description":"Total count of items"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Delivery id"},"status":{"type":"string","enum":["SUCCEEDED","FAILED","PARKED"],"description":"SUCCEEDED, FAILED once the attempts ran out, or PARKED when the endpoint was already broken"},"action":{"type":"string","description":"Event type the delivery carried"},"eventId":{"type":"string","description":"Id of the event, stable across channels and replays"},"createdAt":{"description":"When the outcome settled","type":"string"},"replayedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When a replay sent it again, null otherwise"}},"required":["id","status","action","eventId","createdAt","replayedAt"],"additionalProperties":false},"description":"Array of results"}},"required":["page","next","prev","pageSize","total","results"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}}}
```

## POST /notifications/webhooks/{id}/replay-failed

> Replay the failed deliveries of a webhook

```json
{"openapi":"3.1.0","info":{"title":"revault-api","version":"1.86.0"},"servers":[{"url":"/rest"}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information"},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}},"paths":{"/notifications/webhooks/{id}/replay-failed":{"post":{"operationId":"webhooks-replayFailed","summary":"Replay the failed deliveries of a webhook","tags":["webhook"],"parameters":[{"in":"path","name":"id","schema":{"type":"string","description":"Id of the target webhook"},"required":true,"description":"Id of the target webhook"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"replayed":{"type":"number","description":"Deliveries put back in the queue"},"remaining":{"type":"number","description":"Failures left to replay; a lower bound on a large dead letter"}},"required":["replayed","remaining"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}}}
```

## POST /notifications/webhooks/{id}/rotate-secret

> Rotate a webhook signing secret

```json
{"openapi":"3.1.0","info":{"title":"revault-api","version":"1.86.0"},"servers":[{"url":"/rest"}],"security":[{"Authorization":[]}],"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information"},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information"},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information"},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message"},"code":{"type":"string","description":"The error code"},"issues":{"description":"An array of issues that were responsible for the error","type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information"}}},"paths":{"/notifications/webhooks/{id}/rotate-secret":{"post":{"operationId":"webhooks-rotateSecret","summary":"Rotate a webhook signing secret","tags":["webhook"],"parameters":[{"in":"path","name":"id","schema":{"type":"string","description":"Id of the target webhook"},"required":true,"description":"Id of the target webhook"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Webhook id"},"secret":{"type":"string","description":"Signing secret, shown once and never retrievable again"}},"required":["id","secret"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}}}
```

{% openapi-webhook spec="api-v2" name="webhookDelivery" method="post" %}
[api-v2](https://re.vault.ledger.com/v1/swagger/json)
{% endopenapi-webhook %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://help.enterprise.ledger.com/api-documentation-v2/reference/webhook.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
