---
title: "A job failed."
method: POST
path: "job.failed"
tags: ["webhooks"]
---

# A job failed.

`POST job.failed` (webhook)

## Headers

- `Postscript-Webhook-Signature` string, required

## Payload

- JobWebhook: The body of every delivery. Delivery is at least once; deduplicate on `id`.
  - `account_id` string, required
  - `api_version` string, date, required
  - `data` object, required: The topic's payload.
    - `completed_at` string, date-time
    - `counts` object, required
      - `failed` integer
      - `processed` integer
      - `succeeded` integer
      - `total` integer, nullable: Null until known.
    - `created_at` string, date-time, required
    - `domain` string, required: Owning domain; job authorization uses that domain's scope.
    - `error_sample` JobError[], required: Up to ten per-item failures. The full list can be obtained by calling [List a job's errors](/reference#tag/jobs/GET/jobs/{job_id}/errors).
      - `client_reference` string, nullable
      - `code` string, required
      - `index` integer, nullable: Zero-based source row/item position when applicable.
      - `message` string, required
      - `param` string, nullable
    - `id` string, required
    - `kind` string, required: Namespaced job kind, e.g. `profiles.bulk_tag`.
    - `object` 'job', required
    - `progress` number, nullable
    - `result` object, nullable: Kind-specific summary of the finished job, or `null` when the kind reports none.
    - `retried_from_job_id` string, nullable
    - `status` 'queued' | 'running' | 'succeeded' | 'partially_succeeded' | 'failed' | 'cancelled', required
    - `updated_at` string, date-time, required
  - `event_type` string, required
  - `id` string, required: The same on every retry.
  - `livemode` boolean, required
  - `object` 'webhook_event', required
  - `occurred_at` string, date-time, required
  - `subject` string, nullable, required: The entity that this delivery is about.

## Acknowledgement `2XX`

Return any 2xx within 10 seconds to acknowledge the delivery. Network errors, timeouts, and 408, 409, 425, 429 and 5xx responses are retried for up to 72 hours; any other response fails the delivery without a retry.

---

[API](https://skmtc.dev/pscrpt/apis/postscript-native-api-beta.md) - [All operations](https://skmtc.dev/pscrpt/apis/postscript-native-api-beta/llms.txt) - [OpenAPI document](https://skmtc.dev/pscrpt/apis/postscript-native-api-beta/revisions/882458ee1f36?raw)
