---
title: "Cancel a job"
method: POST
path: "/v2/einvoices/jobs/{id}/cancel"
tags: ["jobs"]
---

# Cancel a job

`POST /v2/einvoices/jobs/{id}/cancel`

## Request

- Base URL: `https://api.ironfang.com/finance`
- URL: `https://api.ironfang.com/finance/v2/einvoices/jobs/{id}/cancel`
- Auth: HTTP bearer

Cancels an unfinished job: its operation ends indeterminate and
uncharged, and its document is erased. A job that has finished is
returned unchanged. The body is empty.

## Path parameters

- `id` string, required

## Response `200`

The job after cancellation. Cache-Control is no-store.

- Job: One durable job, V1's or V2's: metadata only, never its document. `outcome` appears once the job has finished: `valid` or `invalid` when completed, `indeterminate` when failed or cancelled, with `failure_code`. A queued job being retried keeps the last attempt's `failure_code`. `result_url` appears while the result can be read.
  - `api_version` 'v1' | 'v2', required: The API a result was made through.
  - `attempts` integer, required
  - `batch_id` string
  - `created_at` string, date-time, required
  - `engine_image_digest` string, required
  - `expires_at` string, date-time, required: When an unfinished job is failed as job_expired and its document erased.
  - `failure_code` 'validation_timeout' | 'validator_unavailable' | 'internal_error' | 'generation_failed' | 'job_cancelled' | 'job_expired'
  - `finished_at` string, date-time
  - `id` string, required
  - `operation` 'validate' | 'generate', required: V2 jobs validate; a V1 job may generate.
  - `operation_id` string, required
  - `outcome` 'valid' | 'invalid' | 'indeterminate'
  - `position` integer, required: The job's place in its batch; 0 outside one.
  - `result_available` boolean, required
  - `result_url` string
  - `ruleset_id` string, required
  - `schema` 'ironfang/finance/einvoice/job/v2', required
  - `status` 'queued' | 'running' | 'completed' | 'failed' | 'cancelled', required
  - `usage_charged` boolean, required

## Other responses

- `400`: The request is malformed.
- `401`: The credential is missing or not accepted.
- `403`: The key lacks the scope this operation needs.
- `404`: No such release or result is visible.
- `429`: Too many requests.
- `500`: Ironfang Finance failed. Not a verdict on anything.

---

[API](https://skmtc.dev/ironfang/apis/ironfang-finance-e-invoicing-api-2.md) · [All operations](https://skmtc.dev/ironfang/apis/ironfang-finance-e-invoicing-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/ironfang/apis/ironfang-finance-e-invoicing-api-2/revisions/8140667e556b?raw)
