get_webhook_delivery
Retrieve a webhook delivery attempt by ID, including request and response payloads plus retry history, to troubleshoot failed or delayed webhook events.
Instructions
Get details of a single webhook delivery attempt including request/response payloads and retry history.
ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, then call this tool again. start_login does NOT open this tool.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook delivery ID |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | MongoDB ObjectId | |
| url | Yes | ||
| status | Yes | Delivery status | |
| payload | Yes | The event body as stored. Every `proof_token` in it is null: the body POSTed to the receiver carries the token, read from its record at send time, and delivery history keeps no copy. | |
| attempts | Yes | ||
| created_at | Yes | ||
| event_type | Yes | Type of webhook event. `proof.suspended`/`proof.unsuspended` fire for a delegation (`ph_dlg_*`) lifecycle act on the account's own configured webhook_url — not a channel to a separately-addressed delegate (h-fix-delegation-suspend-governance). `proof.reissued`/`delegation.reissued` say a stored token was re-signed under a new key: a reference only (`proof_id` or `handle`, `kid`, `reissued_at`, `token_url`, and the `profile_id` every body carries), never the token; `proof.*` does not cover `delegation.reissued`. | |
| profile_id | Yes | The sub-account whose event it was. Null for an account-level event, and for deliveries recorded before #421. | |
| updated_at | Yes | ||
| endpoint_id | Yes | The webhook endpoint it was sent to. Null for a request's `callback_url` and for a delivery to the account's settings webhook URL before the switch-over to endpoints. | |
| delivered_at | Yes | ||
| max_attempts | Yes | ||
| error_message | Yes | ||
| next_retry_at | Yes | ||
| response_body | Yes | The receiver's response body. | |
| last_attempt_at | Yes | ||
| response_status | Yes | ||
| token_omitted_reason | No | Why the last send carried `proof_token: null`. Every attempt, the first included, sends the token the delivery was queued with, or null: a retried delivery carries the same `proof_token` as the first attempt or `proof_token: null`, never a different token. `source_gone`: the record holding the token no longer exists, or (for a delivery stored before tokens were left out of history) could not be identified. `token_absent`: it holds no token, or there was none when the delivery was queued. `token_changed`: its token is no longer the one the delivery was queued with (re-issued or changed since). Null when every token was sent. Absent from an API that predates it. | |
| verification_request_id | Yes |