---
title: "Get webhook delivery"
method: GET
path: "/api/v1/webhook-deliveries/{id}"
tags: ["Webhook Deliveries"]
---

# Get webhook delivery

`GET /api/v1/webhook-deliveries/{id}`

## Request

- Base URL: `https://api.proof.holdings`
- URL: `https://api.proof.holdings/api/v1/webhook-deliveries/{id}`
- Auth: HTTP bearer

Get details of a specific webhook delivery including payload and response.

## Path parameters

- `id` string, required: MongoDB ObjectId

## Response `200`

Webhook delivery details

- WebhookDelivery: Webhook delivery record
  - `id` string, required: MongoDB ObjectId
  - `verification_request_id` string, required: MongoDB ObjectId
  - `event_type` 'verification_request.completed' | 'verification_request.partial' | 'verification_request.expired' | 'verification.completed' | 'confirmation.approved' | 'confirmation.denied' | 'authorization.approved' | 'authorization.denied' | 'proof.revoked' | 'proof.suspended' | 'proof.unsuspended' | 'account.deletion_scheduled' | 'account.deletion_cancelled', required: 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).
  - `url` string, uri, required
  - `status` 'pending' | 'delivered' | 'failed', required: Delivery status
  - `attempts` integer, required
  - `max_attempts` integer, required
  - `last_attempt_at` string, date-time, nullable, required
  - `next_retry_at` string, date-time, nullable, required
  - `delivered_at` string, date-time, nullable, required
  - `response_status` integer, nullable, required
  - `error_message` string, nullable, required
  - `created_at` string, date-time, required
  - `payload` object: The event body that was POSTed. Absent for an API key bound to one sub-account: a delivery does not yet record its sub-account, so the body may be another sub-account's record.
  - `response_body` string, nullable, required: The receiver's response body. Null for an API key bound to one sub-account, for the same reason as `payload`.
  - `updated_at` string, date-time, required

## Other responses

- `404`: Delivery not found

---

[API](https://skmtc.dev/proof/apis/proof-holdings-api.md) · [All operations](https://skmtc.dev/proof/apis/proof-holdings-api/llms.txt) · [OpenAPI document](https://skmtc.dev/proof/apis/proof-holdings-api/revisions/b15f506de696?raw)
