WebhookDelivery
One record per delivery, updated in place as retries proceed — not one record
per attempt. status is PENDING both before the first attempt and between
retries, and only becomes FAILED once the retry chain is exhausted, so a
delivery that is still being retried is never reported as failed.
type WebhookDelivery {
id: ID!
webhookId: ID!
accountId: ID!
eventId: String!
eventType: String!
url: String!
livemode: Boolean!
status: CallbackStatus!
source: WebhookDeliverySource!
attempts: Int!
nextRetryAt: Int
statusCode: String
statusMessage: String
durationMs: Int
bodyTruncated: Boolean!
createdAt: String!
updatedAt: String
}
Fields
WebhookDelivery.id ● ID! non-null scalar
Delivery ID.
WebhookDelivery.webhookId ● ID! non-null scalar
Endpoint this delivery targets.
WebhookDelivery.accountId ● ID! non-null scalar
Account that owns the endpoint.
WebhookDelivery.eventId ● String! non-null scalar
ID of the source event. Stable across a resend, so merchants can dedupe on it.
WebhookDelivery.eventType ● String! non-null scalar
Type of the source event, e.g. charge.succeeded.
WebhookDelivery.url ● String! non-null scalar
Endpoint URL as configured when the delivery was created.
WebhookDelivery.livemode ● Boolean! non-null scalar
Whether the source event was live-mode.
WebhookDelivery.status ● CallbackStatus! non-null enum
PENDING while attempts remain, EXECUTED once delivered, FAILED once retries are exhausted.
WebhookDelivery.source ● WebhookDeliverySource! non-null enum
Whether this delivery was created automatically or by a resend.
WebhookDelivery.attempts ● Int! non-null scalar
Number of attempts made so far.
WebhookDelivery.nextRetryAt ● Int scalar
When the next retry is scheduled (epoch seconds). Absent once the delivery is no longer being retried.
WebhookDelivery.statusCode ● String scalar
HTTP status returned by the most recent attempt.
WebhookDelivery.statusMessage ● String scalar
Response message from the most recent attempt, truncated.
WebhookDelivery.durationMs ● Int scalar
Duration of the most recent attempt, in milliseconds.
WebhookDelivery.bodyTruncated ● Boolean! non-null scalar
Whether the payload exceeded the storage limit and was stored truncated. Such a delivery cannot be resent.
WebhookDelivery.createdAt ● String! non-null scalar
Creation timestamp (ISO 8601).
WebhookDelivery.updatedAt ● String scalar
Last update timestamp (ISO 8601).
Returned By
resendWebhookDelivery mutation
Member Of
WebhookDeliveriesConnection object ● WebhookDeliveryDetail object