---
title: "Create Recognition Schedule"
method: POST
path: "/companies/{company_id}/gl/recognition-schedules"
tags: ["gl-modules"]
---

# Create Recognition Schedule

`POST /companies/{company_id}/gl/recognition-schedules`

## 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/recognition-schedules`
- Auth: none declared

Register a straight-line recognition schedule by hand — accountant.

**Name the record it covers** (``source_document_id``, or ``source_item_id``) when
there is one (ZCT-524). The period-end accrual sweep reads that link to know the
invoice is already handled; a schedule created without it leaves the same invoice
being surfaced as a ``deferral_missing`` candidate on every close check, with a held
decision offering to defer it a second time. 404 if the id is not this company's.

## Path parameters

- `company_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Request body

- GlRecognitionScheduleCreate
  - `schedule_type` 'accrual' | 'deferral' | 'recognition', required
  - `direction` 'expense' | 'revenue', required
  - `total_amount` union, required
    - number
    - string
  - `currency` string
  - `balance_account_code` string, required
  - `pnl_account_code` string, required
  - `service_period_start` string, date, required
  - `service_period_end` string, date, required
  - `num_periods` integer, required
  - `recognition_method` 'straight_line' | 'manual' | 'milestone'
  - `source_document_id` string, nullable
  - `source_item_id` string, nullable
  - `description` string, nullable
  - `document_no` string, nullable

## Response `201`

Successful Response

- GlRecognitionScheduleOut
  - `id` string, required
  - `company_id` string, required
  - `schedule_type` string, required
  - `direction` string, required
  - `total_amount_base` string, required
  - `currency` string, required
  - `status` string, required
  - `service_period_start` string, date, required
  - `service_period_end` string, date, required
  - `origin` string
  - `confidence` string, nullable
  - `source_ref_type` string, nullable
  - `source_ref_id` string, nullable
  - `source_document_id` string, nullable
  - `description` string, nullable
  - `document_no` string, nullable

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