# /webhook/deliveries

Returns the delivery history for a specific webhook.
## Purpose
Allows a partner to query the delivery log to troubleshoot missed notifications, verify integration, and audit delivery attempts.
## When to use
Use this endpoint to:
- View the last 50 webhook delivery attempts
- Filter deliveries by a specific transaction UUID
- Debug failed deliveries (check HTTP status codes, response times, failure reasons)
- Verify that notifications are being received successfully

## What happens next
1. The partner's delivery log is queried (sorted by timestamp descending)
2. Up to 50 records are returned
3. If a transaction_uuid filter is provided, only matching records are returned

## Authentication
Requires `x-client-id` and `x-secret-key` headers.
## Notes
- Returns at most 50 records per request, ordered by most recent first
- Delivery log records are retained for 30 days and automatically expire
- An empty array is returned (HTTP 200) if no delivery records exist
- The transaction_uuid filter must be a valid lowercase UUID v4 format

## Common errors
- `400` Invalid transaction_uuid format
- `401` Invalid credentials
- `404` Webhook not found
- `500` Internal error querying delivery log

Endpoint: GET /webhook/deliveries
Version: 1.0.0

## Query parameters:

  - `webhook_id` (string, required)
    UUID v4 identifier of the webhook to query deliveries for.

Error codes: required=400001, type=400002, pattern=400009

  - `transaction_uuid` (string)
    Filter delivery records by a specific transaction UUID. Must be lowercase UUID v4 format.

Error codes: type=400002, pattern=400009

## Header parameters:

  - `x-client-id` (string, required)
    Unique identifier assigned to the integrating client.

Error codes: required=400001, type=400002, minLength=400003, maxLength=400004

  - `x-secret-key` (string, required)
    Secret authentication key associated with the client.

Error codes: required=400001, type=400002, minLength=400003, maxLength=400004

## Response 200 fields (application/json):

  - `status` (string)
    Response status (success)

  - `data` (array)
    List of delivery log records (max 50, sorted by timestamp descending)

  - `data.event_id` (string)
    UUID v4 identifier for the webhook event

  - `data.transaction_uuid` (string)
    UUID of the transaction that triggered the webhook

  - `data.event_type` (string)
    The event type delivered (e.g. transaction.status.paid)

  - `data.timestamp` (string)
    ISO 8601 UTC timestamp of the delivery attempt

  - `data.http_status_code` (number)
    HTTP status code returned by the partner endpoint (null if connection failed)

  - `data.response_time_ms` (number)
    Response time in milliseconds

  - `data.attempt_number` (number)
    Delivery attempt number (1 = initial, 2-6 = retries)

  - `data.delivery_status` (string)
    Delivery result: success, failed, pending, or filtered

  - `data.failure_reason` (string)
    Reason for failure (null on success). E.g. connection_timeout, read_timeout, http_status_500

## Response 400 fields (application/json):

  - `errors` (array)
    List of validation errorsError catalog for 400 (click to expand)CodeDescription400001Invalid transaction_uuid format — must match UUID v4 pattern (lowercase hex with hyphens)

  - `errors.status` (string)

  - `errors.code` (number)

  - `errors.message` (string)

## Response 401 fields (application/json):

  - `errors` (array)
    List of authentication errorsError catalog for 401 (click to expand)CodeDescription401000Invalid credentials

  - `errors.status` (string)

  - `errors.code` (number)

  - `errors.message` (string)

## Response 500 fields (application/json):

  - `errors` (array)
    List of server errorsError catalog for 500 (click to expand)CodeDescription500000Internal server error querying delivery log

  - `errors.status` (string)

  - `errors.code` (number)

  - `errors.message` (string)

