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

# Cancel a batch

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

## Request

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

Cancels every unfinished job in the batch, as cancelling each
would; finished jobs keep their results. The body is empty.

## Path parameters

- `id` string, required

## Response `200`

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

- Batch
  - `api_version` 'v1' | 'v2', required: The API a result was made through.
  - `counts` JobCounts, required
    - `cancelled` integer, required
    - `completed` integer, required
    - `failed` integer, required
    - `queued` integer, required
    - `running` integer, required
  - `created_at` string, date-time, required
  - `id` string, required
  - `jobs` Job[], required
    - `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
  - `schema` 'ironfang/finance/einvoice/batch/v2', required
  - `status` 'queued' | 'running' | 'completed' | 'failed' | 'cancelled' | 'partial', required: queued until a job starts; running while any is unfinished; then the one status every job shares, or partial.

## 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)
