Skip to main content

The delivery object

A webhook delivery represents a single attempt to send an event payload to your registered endpoint. Each delivery tracks the payload, status, and retry information.
id
string
Unique identifier for the delivery attempt.
webhookId
string
Webhook configuration that triggered this delivery.
event
string
Event type that caused the delivery (e.g. payment.success).
transactionId
string
Transaction associated with this webhook event.
payload
object
The exact JSON payload sent to your endpoint. Stored for debugging and replay.
status
string
Delivery status. One of PENDING, COMPLETED, or FAILED.
attemptCount
number
Number of delivery attempts made.
responseStatus
string
HTTP status code returned by your endpoint (e.g. 200, 500, timeout). Null if no response received.
nextRetryAt
datetime
Scheduled time for the next retry, if the delivery failed. Null on success.
createdAt
datetime
When the delivery record was created.
lastAttemptAt
datetime
Timestamp of the most recent delivery attempt.
{
  "id": "811f4c9e-d818-4e07-bfbc-fb0aa73ab82f",
  "webhookId": "cmjh39i5x0000v814e7owtybc",
  "event": "payment.failed",
  "transactionId": "cmjfu1cjv0003v8vsmmxgjk05",
  "payload": {
    "event": "payment.failed",
    "data": {
      "transactionId": "cmjfu1cjv0003v8vsmmxgjk05",
      "amount": 4000,
      "currency": "NGN",
      "status": "failed"
    }
  },
  "status": "COMPLETED",
  "attemptCount": 2,
  "responseStatus": "200",
  "nextRetryAt": null,
  "createdAt": "2025-12-24T10:42:37.231Z",
  "lastAttemptAt": "2025-12-24T10:43:40.347Z"
}

List deliveries

GET /webhook/deliveries
Returns webhook delivery history for the authenticated profile. Use query parameters to filter by status, event type, transaction, or date range.

Query parameters

status
string
Filter by delivery status. One of PENDING, COMPLETED, FAILED.
transactionId
string
Filter deliveries for a specific transaction.
event
string
Filter by event type. e.g. payment.success, payment.failed.
date
string
JSON-encoded date range filter. Example: {"startDate":"2024-01-01","endDate":"2024-01-31"}. Partial ranges (start only or end only) are supported.
curl -X GET "https://api.orafi.app/webhook/deliveries?status=FAILED&event=payment.failed" \
  -H "x-api-key: ora_test_your_api_key"