> For the complete index of the 402pay docs, see [llms.txt](https://developer.402pay.co/llms.txt).

# Retrieve a delivery

Get one delivery with every attempt, its signed request and your server's response.

`GET https://dash.402pay.co/api/v1/webhook-deliveries/{id}`

Returns one delivery with every attempt in `attempts`, oldest first. `status`, `response_status`, `duration_ms` and `request_headers` describe the latest attempt: the delivery is `succeeded` once that attempt got a 2xx, `retrying` while another automatic attempt waits for `next_retry_at`, and `failed` when none is left.

On a simulated business, retries that came due run when deliveries are read, so reading one brings it up to date.

### Path

- `id` (string, required): The delivery's ID, such as `dlv_EpCJYUSbN3WObIJp`.

### Errors

- 404 `not_found` No delivery with that ID belongs to your business.
- 403 `permission_denied` The delivery's event is about something a restricted key can't read.

Any request can also fail on its key or its body. See [errors](https://developer.402pay.co/api/errors.md).

Request, cURL:

```bash
curl "https://dash.402pay.co/api/v1/webhook-deliveries/dlv_EpCJYUSbN3WObIJp" \
  -H "Authorization: Bearer $PAY402_SECRET_KEY"
```

Request, Node.js:

```js
const response = await fetch("https://dash.402pay.co/api/v1/webhook-deliveries/dlv_EpCJYUSbN3WObIJp", {
  headers: {
    Authorization: `Bearer ${process.env.PAY402_SECRET_KEY}`,
  },
});
const { data } = await response.json();
```

Request, Python:

```python
import os

import requests

response = requests.get(
    "https://dash.402pay.co/api/v1/webhook-deliveries/dlv_EpCJYUSbN3WObIJp",
    headers={
        "Authorization": f"Bearer {os.environ['PAY402_SECRET_KEY']}",
    },
)
data = response.json()["data"]
```

Response, 200 OK:

```json
{
  "data": {
    "id": "dlv_EpCJYUSbN3WObIJp",
    "kind": "webhook_delivery",
    "webhook_id": "whk_GFAKLrE8wkBwF4WL",
    "event_id": "evt_JxmQNXpkZZN8mpqE",
    "event_type": "payment.succeeded",
    "subject": {
      "kind": "payment",
      "id": "pmt_QI02vLdJGd48hBbg"
    },
    "status": "succeeded",
    "response_status": 200,
    "duration_ms": 375,
    "attempt": 1,
    "attempts": [
      {
        "at": "2026-09-26T21:23:15.256Z",
        "response_status": 200,
        "duration_ms": 375,
        "trigger": "automatic"
      }
    ],
    "next_retry_at": null,
    "request_headers": {
      "content-type": "application/json",
      "webhook-id": "evt_JxmQNXpkZZN8mpqE",
      "webhook-timestamp": "1790457795",
      "webhook-signature": "v1,Usi/akbM9PxJChbtzMSCZXf783T+z0FaQRv68dL2fwQ="
    },
    "payload": {
      "id": "evt_JxmQNXpkZZN8mpqE",
      "kind": "event",
      "type": "payment.succeeded",
      "subject": {
        "kind": "payment",
        "id": "pmt_QI02vLdJGd48hBbg"
      },
      "data": {
        "id": "pmt_QI02vLdJGd48hBbg",
        "kind": "payment",
        "status": "succeeded",
        "amount": 4900,
        "currency": "USD",
        "fee_payer": "business",
        "customer_fee": 0,
        "amount_received": 4900,
        "reporting": {
          "currency": "USD",
          "amount": 4900,
          "fee": 0,
          "transaction_fee": 25,
          "customer_fee": 0,
          "net": 4875
        },
        "fee_rate_bps": 0,
        "method": {
          "rail": "crypto",
          "asset": "USDC",
          "network": "polygon",
          "amount": "49.00",
          "expected_amount": "49.00",
          "overpaid_amount": null,
          "from_address": "0x136e44a2738dea5217e8d6745463d2a9a84d1421",
          "tx_hash": "0xc16a611d90302ba917593ed9743f5e734a556e8d2f35bb0d60a2ca02ac99bb20",
          "explorer_url": "https://polygonscan.com/tx/0xc16a611d90302ba917593ed9743f5e734a556e8d2f35bb0d60a2ca02ac99bb20"
        },
        "settlement": {
          "destination": "wallet",
          "asset": "USDC",
          "network": "polygon",
          "amount": "49.00",
          "wallet_id": "wal_1fIGZOrILmsCO0jw",
          "address": "0x9a3c416D4A81669C01f4515bBDEB93C45d3813fe",
          "tx_hash": "0xc16a611d90302ba917593ed9743f5e734a556e8d2f35bb0d60a2ca02ac99bb20",
          "explorer_url": "https://polygonscan.com/tx/0xc16a611d90302ba917593ed9743f5e734a556e8d2f35bb0d60a2ca02ac99bb20"
        },
        "customer_id": "cst_gWFWcc7Ga0Pv7LSC",
        "link_id": null,
        "url": "https://checkout.402pay.co/checkout/2jrsrcxv7k",
        "reference": "order_1042",
        "metadata": {
          "order_id": "1042"
        },
        "success_url": "https://example.com/thanks",
        "cancel_url": "https://example.com/cart",
        "expires_at": "2026-09-27T21:22:47.038Z",
        "canceled_at": null,
        "checkout_id": "chk_C5yhPQvPqpYgdDgj",
        "description": "Pro plan, monthly",
        "country": "US",
        "failure_code": null,
        "failure_message": null,
        "confirmed_at": "2026-09-26T21:23:13.447Z",
        "created_at": "2026-09-26T21:22:47.038Z",
        "updated_at": "2026-09-26T21:23:13.447Z",
        "events": [
          {
            "type": "created",
            "created_at": "2026-09-26T21:22:47.038Z",
            "data": null
          },
          {
            "type": "method_selected",
            "created_at": "2026-09-26T21:22:47.047Z",
            "data": {
              "rail": "crypto",
              "asset": "USDC",
              "network": "polygon"
            }
          },
          {
            "type": "detected",
            "created_at": "2026-09-26T21:23:07.047Z",
            "data": {
              "amount": "49.00",
              "network": "polygon",
              "tx_hash": "0xc16a611d90302ba917593ed9743f5e734a556e8d2f35bb0d60a2ca02ac99bb20"
            }
          },
          {
            "type": "confirmation",
            "created_at": "2026-09-26T21:23:08.647Z",
            "data": {
              "current": 1,
              "required": 4
            }
          },
          {
            "type": "confirmation",
            "created_at": "2026-09-26T21:23:10.247Z",
            "data": {
              "current": 2,
              "required": 4
            }
          },
          {
            "type": "confirmation",
            "created_at": "2026-09-26T21:23:11.847Z",
            "data": {
              "current": 3,
              "required": 4
            }
          },
          {
            "type": "confirmation",
            "created_at": "2026-09-26T21:23:13.447Z",
            "data": {
              "current": 4,
              "required": 4
            }
          },
          {
            "type": "succeeded",
            "created_at": "2026-09-26T21:23:13.447Z",
            "data": null
          }
        ]
      },
      "actor": {
        "kind": "system",
        "id": null,
        "name": null
      },
      "mode": "live",
      "api_version": "v1",
      "created_at": "2026-09-26T21:23:15.256Z"
    },
    "created_at": "2026-09-26T21:23:15.256Z"
  }
}
```
