---
title: "Run Auto Reversals"
method: POST
path: "/companies/{company_id}/gl/auto-reversals/run"
tags: ["gl-modules"]
---

# Run Auto Reversals

`POST /companies/{company_id}/gl/auto-reversals/run`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/companies/{company_id}/gl/auto-reversals/run`
- Auth: none declared

Execute armed JE auto-reversals due on/before ``as_of`` (accountant catch-up).

The manual counterpart of the orchestrator's daily ``gl-run-auto-reversals``
job (one-shot accruals reverse in the period after the accrual). Idempotent —
a reversed entry drops out of the due set. Also what the live e2e drives (the
e2e compose profile parks the orchestrator).

## Path parameters

- `company_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Request body

- GlRecognitionRunRequest
  - `as_of` string, date, nullable

## Response `200`

Successful Response

- GlRunResult: How many entries a `/run` action posted. Deliberately says **nothing** about what a run could not do. ``/gl/auto-reversals/run`` returns this, and that path still defers silently in three places (``run_auto_reversals`` suppresses ``PeriodClosedError``; ``run_due_auto_reversals`` skips twice more) — so adding a defaulted ``blocked: 0`` here would have it positively assert an all-clear it has not checked. Recognition, which *has* done the checking, answers with :class:`GlRecognitionRunResult` instead.
  - `posted` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zeno-works/apis/zeno-api.md) · [All operations](https://skmtc.dev/zeno-works/apis/zeno-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zeno-works/apis/zeno-api/revisions/1eb93dde146c?raw)
