# 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[​](#fields "Direct link to Fields")

#### [`WebhookDelivery.id`](#id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#id "Direct link to id")

Delivery ID.

#### [`WebhookDelivery.webhookId`](#webhook-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#webhook-id "Direct link to webhook-id")

Endpoint this delivery targets.

#### [`WebhookDelivery.accountId`](#account-id) ● [`ID!`](https://docs.monei.com/apis/graphql/types/scalars/id/.md) non-null scalar[​](#account-id "Direct link to account-id")

Account that owns the endpoint.

#### [`WebhookDelivery.eventId`](#event-id) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#event-id "Direct link to event-id")

ID of the source event. Stable across a resend, so merchants can dedupe on it.

#### [`WebhookDelivery.eventType`](#event-type) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#event-type "Direct link to event-type")

Type of the source event, e.g. `charge.succeeded`.

#### [`WebhookDelivery.url`](#url) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#url "Direct link to url")

Endpoint URL as configured when the delivery was created.

#### [`WebhookDelivery.livemode`](#livemode) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#livemode "Direct link to livemode")

Whether the source event was live-mode.

#### [`WebhookDelivery.status`](#status) ● [`CallbackStatus!`](https://docs.monei.com/apis/graphql/types/enums/callback-status/.md) non-null enum[​](#status "Direct link to status")

`PENDING` while attempts remain, `EXECUTED` once delivered, `FAILED` once retries are exhausted.

#### [`WebhookDelivery.source`](#source) ● [`WebhookDeliverySource!`](https://docs.monei.com/apis/graphql/types/enums/webhook-delivery-source/.md) non-null enum[​](#source "Direct link to source")

Whether this delivery was created automatically or by a resend.

#### [`WebhookDelivery.attempts`](#attempts) ● [`Int!`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) non-null scalar[​](#attempts "Direct link to attempts")

Number of attempts made so far.

#### [`WebhookDelivery.nextRetryAt`](#next-retry-at) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#next-retry-at "Direct link to next-retry-at")

When the next retry is scheduled (epoch seconds). Absent once the delivery is no longer being retried.

#### [`WebhookDelivery.statusCode`](#status-code) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-code "Direct link to status-code")

HTTP status returned by the most recent attempt.

#### [`WebhookDelivery.statusMessage`](#status-message) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#status-message "Direct link to status-message")

Response message from the most recent attempt, truncated.

#### [`WebhookDelivery.durationMs`](#duration-ms) ● [`Int`](https://docs.monei.com/apis/graphql/types/scalars/int/.md) scalar[​](#duration-ms "Direct link to duration-ms")

Duration of the most recent attempt, in milliseconds.

#### [`WebhookDelivery.bodyTruncated`](#body-truncated) ● [`Boolean!`](https://docs.monei.com/apis/graphql/types/scalars/boolean/.md) non-null scalar[​](#body-truncated "Direct link to body-truncated")

Whether the payload exceeded the storage limit and was stored truncated. Such a delivery cannot be resent.

#### [`WebhookDelivery.createdAt`](#created-at) ● [`String!`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) non-null scalar[​](#created-at "Direct link to created-at")

Creation timestamp (ISO 8601).

#### [`WebhookDelivery.updatedAt`](#updated-at) ● [`String`](https://docs.monei.com/apis/graphql/types/scalars/string/.md) scalar[​](#updated-at "Direct link to updated-at")

Last update timestamp (ISO 8601).

### Returned By[​](#returned-by "Direct link to Returned By")

[`resendWebhookDelivery`](https://docs.monei.com/apis/graphql/operations/mutations/resend-webhook-delivery/.md) mutation

### Member Of[​](#member-of "Direct link to Member Of")

[`WebhookDeliveriesConnection`](https://docs.monei.com/apis/graphql/types/objects/webhook-deliveries-connection/.md) object ● [`WebhookDeliveryDetail`](https://docs.monei.com/apis/graphql/types/objects/webhook-delivery-detail/.md) object
