---
title: "Retrieve an account webhook delivery"
method: GET
path: "/accounts/{account}/webhooks/{webhook}/deliveries/{delivery}"
tags: ["Account"]
---

# Retrieve an account webhook delivery

`GET /accounts/{account}/webhooks/{webhook}/deliveries/{delivery}`

## Request

- Base URL: `https://api.factuarea.com/v1`
- URL: `https://api.factuarea.com/v1/accounts/{account}/webhooks/{webhook}/deliveries/{delivery}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Retrieve one account webhook delivery by its `id` (UUID v7) with the signed `payload` sent and your server’s `response_status` and truncated `response_body`.
- An unseen delivery or endpoint returns 404 `webhook_delivery_not_found`.

## Path parameters

- `account` string, uuid, required
- `webhook` string, uuid, required
- `delivery` string, uuid, required

## Headers

- `Factuarea-Version` string, date

## Response `200`

- object
  - `data` AccountWebhookDelivery, required: The delivery of ONE event to ONE account webhook endpoint: which event, about which tax ID, with which relationship to your account, in which state, how many attempts it took, what your server answered and the signed envelope that was sent. Unlike a company delivery, a manual retry re-arms this same delivery instead of creating another one.
    - `id` string, uuid, required: Opaque identifier (UUID v7) of the delivery. It is the `{delivery}` of the delivery routes.
    - `object` 'account_webhook_delivery', required: Always `account_webhook_delivery`.
    - `event_id` string, uuid, required: Identifier (UUID v7) of the event this delivery carries: the same `id` as its envelope, so a receiver can deduplicate. A company event keeps the id it has in the event log.
    - `event_type` string, required: Type of the event delivered: an account-level type of `AccountEventType` or a company event type of the public catalog.
    - `event_source` 'company' | 'account', required: Where the event comes from: `company` (an event of a tax ID forwarded to the account) or `account` (an `account.*` event).
    - `company_id` string, uuid, nullable, required: Opaque identifier (UUID v7) of the tax ID the event is about, or `null` in the `account.*` events that are not about a tax ID.
    - `account_relationship` 'own' | 'managed', required: Relationship of THIS delivery with your account: `own` (a tax ID of your account) or `managed` (an account your account manages). It is not the filter of the endpoint.
    - `environment` 'live' | 'test', required: Environment of the delivery, the one of its endpoint.
    - `status` 'pending' | 'delivered' | 'failed' | 'failed_permanently' | 'cancelled', required: Delivery status. `pending` (queued or waiting for its next attempt; in the `test` environment a delivery is recorded but never sent, so it stays `pending`), `delivered` (a 2xx was received), `failed` (a recoverable failure), `failed_permanently` (attempts exhausted or the destination refused it; it can be retried by hand) and `cancelled` (aborted, terminal; see `cancel_reason`).
    - `attempt` integer, required: Attempts made so far.
    - `manual_retry_count` integer, required: Times the delivery was re-armed by hand with the retry operation. It is a different counter from `attempt`.
    - `next_retry_at` string, date-time, nullable, required: When the next attempt is scheduled (ISO 8601), or `null`.
    - `response_status` integer, nullable, required: HTTP status returned by your server on the last attempt, or `null`.
    - `response_body` string, nullable, required: Body returned by your server on the last attempt, truncated, or `null`.
    - `duration_ms` integer, nullable, required: Duration of the last attempt in milliseconds, or `null`.
    - `payload` AccountEventEnvelope, required: The signed body an account webhook endpoint receives on every delivery: the envelope of a company event plus `account`, `account_relationship` and `company_id`. The same event carries the same `id` in its company envelope and in this one, so a receiver can deduplicate. Requests are signed with the `Factuarea-Signature` header, as for company endpoints.
      - `id` string, uuid, required: Identifier (UUID v7) of the event. It is also sent in the `Factuarea-Event-Id` header and is the `Idempotency-Key` of the delivery.
      - `type` union, required: Type of the event: an account-level type of `AccountEventType`, or a company event type when the event is about a tax ID.
        - 'account.member_added' | 'account.member_removed' | 'account.member_role_changed' | 'account.owner_transferred' | 'account.member_grant_changed' | 'account.access_granted' | 'account.access_revoked' | 'account.access_level_changed' | 'account.managed_account_provisioned' | 'account.managed_account_claimed' | 'account.management_ended' | 'account.nif_added' | 'account.nif_transferred' | 'account.nif_archived' | 'account.import_completed': Type of an account-level event (the `account.*` catalog). Only account webhook endpoints can subscribe to them: they are not part of the company event catalog (`GET /v1/event-catalog`). Members: `account.member_added`, `account.member_removed`, `account.member_role_changed`, `account.owner_transferred` and `account.member_grant_changed`. Relations between accounts: `account.access_granted`, `account.access_revoked` and `account.access_level_changed`. Managed accounts: `account.managed_account_provisioned`, `account.managed_account_claimed` and `account.management_ended`. Tax IDs of the account: `account.nif_added`, `account.nif_transferred` and `account.nif_archived`. Bulk imports: `account.import_completed`.
        - string: A company event type of the public catalog, for the events of a tax ID forwarded to the account.
      - `api_version` string, required: Payload version (`YYYY-MM-DD`) the `data` is shaped in.
      - `created` integer, required: When the event happened, as a Unix timestamp in seconds.
      - `livemode` boolean, required: `true` for an event of the live environment, `false` for the test environment.
      - `test` boolean, required: `true` on a synthetic event sent by the test operation of the endpoint; it is not related to `livemode`.
      - `correlation_id` string, nullable, required: Correlation identifier of the request or process that caused the event, or `null`.
      - `account` object, required: The account the endpoint belongs to.
        - `id` string, uuid, required: Opaque identifier (UUID v7) of your account.
      - `account_relationship` 'own' | 'managed', required: Relationship of the event with your account: `own` (about your account or one of its tax IDs) or `managed` (about an account your account manages).
      - `company_id` string, uuid, nullable, required: Opaque identifier (UUID v7) of the tax ID the event is about. Always present: `null` in the account-level events that are not about a tax ID.
      - `data` object, required: The content of the event, in the version of `api_version`.
        - `type` string, required: Type of the event, the same as the envelope `type`.
        - `object` object, required: Snapshot of what the event is about. In an account-level event it is the member, owner, grant, relation, tax ID or import concerned, always with opaque identifiers (UUID v7) and never with internal ones; in a company event it is the same snapshot the company webhook carries.
    - `payload_api_version` string, required: Payload version (`YYYY-MM-DD`) the envelope was built in.
    - `cancel_reason` string, nullable, required: Stable code of why the delivery was cancelled (endpoint deleted or disabled, tax ID no longer eligible…), only on a `cancelled` delivery; `null` otherwise.
    - `delivered_at` string, date-time, nullable, required: When your server accepted the delivery (ISO 8601), or `null`.
    - `failed_at` string, date-time, nullable, required: When the last failed attempt happened (ISO 8601), or `null`.
    - `created_at` string, date-time, required: When the delivery was created (ISO 8601).

## Other responses

- `400`: `parameter_unknown` with `subcode` `retired_active_profile_header`: the retired `X-Active-Profile` header was sent; the company goes in the path. `parameter_invalid_format` on `Factuarea-Version`: the header is not a `YYYY-MM-DD` date. `unsupported_api_version`: the `Factuarea-Version` date is not a supported version.
- `401`: Missing or invalid API key.
- `403`: The request is authenticated but not allowed: the API key lacks the required scope (`insufficient_scope`), the plan does not include the public API or this feature (`addon_not_active`, `feature_not_available_in_plan`), or the module is not available with a test key (`module_not_available_in_sandbox`).
- `404`: The requested resource does not exist or belongs to another company.
- `429`: Rate limit exceeded. Retry after the duration in `Retry-After`.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/factuarea/apis/factuarea-public-api.md) · [All operations](https://skmtc.dev/factuarea/apis/factuarea-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/factuarea/apis/factuarea-public-api/revisions/718e77934422?raw)
