---
search:
  tags:
    - Merchant Webhooks
    - GET
seo:
  description: >-
    Read webhook delivery events and actual attempt receipts. Reference for the
    GET /v1/merchants/{id}/webhook/events endpoint in the agentsub Gateway API.
sidebar:
  label: Read webhook delivery events and actual attempt receipts
  badge: GET
title: Read webhook delivery events and actual attempt receipts
type: openapi-operation
---
`GET /v1/merchants/{id}/webhook/events`

**Responses**

- `200` — Successful response
- `401` — \`unauthorized\` problem; live 401s advertise \`WWW-Authenticate: Bearer resource\_metadata=...\`
- `403` — Identity, ownership, scope or policy denied (\`human\_required\`, \`owner\_claim\_required\`, \`scope\_required\`, \`FROZEN\`, \`CAP\_EXCEEDED\`, \`SCOPE\_FORBIDDEN\`)
- `503` — Runtime or provider configuration unavailable (\`runtime\_configuration\_required\`, \`signing\_configuration\_required\`, \`runtime\_unavailable\`, \`workspace\_unavailable\`, \`provider\_configuration\_required\`)

Response example, 200:

```json
{
  "events": [
    {
      "eventId": "string",
      "merchantId": "string",
      "redemptionId": "string",
      "type": "string",
      "state": "string",
      "lastError": "string",
      "amountUc": "string",
      "attempts": 0,
      "nextAttemptAt": 0,
      "createdAt": 0,
      "lastAttemptAt": 0,
      "lastStatus": 0,
      "receipts": [
        {
          "attempt": 0,
          "startedAt": 0,
          "finishedAt": 0,
          "status": 0,
          "error": "string",
          "delivered": true
        }
      ]
    }
  ],
  "queueConfigured": true
}
```
