---
title: "Update accounting release template"
method: PATCH
path: "/v1/accounting-release-templates/{templateId}"
tags: ["v1 - Accounting Release Templates"]
---

# Update accounting release template

`PATCH /v1/accounting-release-templates/{templateId}`

## Request

- Base URL: `https://light.inc` (the document declares no server; this is the origin it was published from)
- URL: `https://light.inc/v1/accounting-release-templates/{templateId}`
- Auth: one of:
  - API key in header `Authorization`
  - HTTP bearer

Updates an existing accounting release template. Only the fields present in the request body are changed.

The ledger accounts and `type` are fixed at creation and cannot be updated. To use different ones, create a new template and archive this one.

## Path parameters

- `templateId` string, uuid, required

## Request body

- ExternalUpdateAccountingReleaseTemplateRequestV1Model: Only the fields present in the request body are changed. The ledger accounts and `type` are fixed at creation and cannot be updated
  - `name` string, nullable: Name of the template
  - `method` 'STRAIGHT_LINE_WITH_PARTIAL_ADJUSTMENT' | 'REDUCING_BALANCE', nullable: How the amount is spread across the release schedule - `STRAIGHT_LINE_WITH_PARTIAL_ADJUSTMENT` - An equal amount each period, with the first and last periods adjusted for partial months - `REDUCING_BALANCE` - A fixed fraction of the remaining balance each period, so the amount declines over time ⚠️ This enum is not exhaustive; new values may be added in the future.
  - `accumulatePastReleasesEnabled` boolean, nullable: Legacy alternative to accumulationMode. When sent alone, true selects POSTING_DATE and false selects OFF. Prefer sending accumulationMode alone. When both fields are sent, this must equal whether accumulationMode is POSTING_DATE
  - `accumulationMode` 'OFF' | 'OPEN_PERIOD' | 'POSTING_DATE', nullable: OFF keeps every scheduled release on its original date. POSTING_DATE combines releases dated before the document posting date with the first scheduled release on or after that date; if none remains, it uses the document posting date. OPEN_PERIOD finds the first postable date from the schedule start and combines earlier releases with the first scheduled release on or after that date; if none remains, it uses the first postable date. It applies only when the schedule starts before the document posting date. Later closed or locked periods still block posting. The document posting date stays unchanged. Omit both this field and accumulatePastReleasesEnabled to preserve the current mode ⚠️ This enum is not exhaustive; new values may be added in the future.
  - `defaultDuration` integer, nullable: Default number of months the release schedule runs for. Send `null` to clear it
  - `initialAmountPercentage` number, nullable: Fraction of the amount released in the first period, as a decimal between 0 and 1. Send `null` to clear it
  - `residualAmountPercentage` number, nullable: Fraction of the amount left unreleased at the end of the schedule, as a decimal between 0 and 1. Send `null` to clear it
  - `residualAmount` integer, nullable: Absolute amount in cents left unreleased at the end of the schedule. Send `null` to clear it
  - `reducingRate` number, nullable: Fraction of the remaining balance released each period, as a decimal between 0 and 1. Send `null` to clear it
  - `context` string, nullable: Free-text notes on the template. Send `null` to clear it

## Response `default`

default response

- ExternalAccountingReleaseTemplateV1Model
  - `id` string, uuid: Unique identifier for the object
  - `companyId` string, uuid: ID of the company
  - `createdBy` string, uuid: ID of the user who created the template
  - `name` string: Name of the template
  - `method` 'STRAIGHT_LINE_WITH_PARTIAL_ADJUSTMENT' | 'REDUCING_BALANCE': How the amount is spread across the release schedule - `STRAIGHT_LINE_WITH_PARTIAL_ADJUSTMENT` - An equal amount each period, with the first and last periods adjusted for partial months - `REDUCING_BALANCE` - A fixed fraction of the remaining balance each period, so the amount declines over time ⚠️ This enum is not exhaustive; new values may be added in the future.
  - `type` 'AR' | 'AP' | 'JE' | 'CONTRACT' | 'FIXED_ASSET': The kind of document or asset this template applies to. Fixed at creation - `AR` - Accounts receivable. Releases deferred revenue on invoice receivables - `AP` - Accounts payable. Releases prepaid expenses on invoice payables, credit notes and card transactions - `JE` - Journal entries - `CONTRACT` - Contracts. Releases deferred revenue over the contract term - `FIXED_ASSET` - Fixed assets. Depreciates a capitalised asset over its useful life ⚠️ This enum is not exhaustive; new values may be added in the future.
  - `deferralAccountId` string, uuid: ID of the ledger account holding the not-yet-released balance. Fixed at creation
  - `contractAccountId` string, uuid, nullable: ID of the ledger account used when the template is applied to a contract. Fixed at creation
  - `additionsAccountId` string, uuid, nullable: ID of the ledger account credited or debited by each generated release. Falls back to the deferral account when not set. Fixed at creation
  - `disposalAccountId` string, uuid, nullable: ID of the ledger account used when a fixed asset is disposed of. Fixed at creation
  - `profitAccountId` string, uuid, nullable: ID of the ledger account for a gain on disposal. Fixed at creation
  - `lossAccountId` string, uuid, nullable: ID of the ledger account for a loss on disposal. Fixed at creation
  - `initialAmountPercentage` number, nullable: Fraction of the amount released in the first period, as a decimal between 0 and 1
  - `residualAmountPercentage` number, nullable: Fraction of the amount left unreleased at the end of the schedule, as a decimal between 0 and 1
  - `residualAmount` integer, nullable: Absolute amount in cents left unreleased at the end of the schedule. Only for the `REDUCING_BALANCE` method, and mutually exclusive with `reducingRate`
  - `reducingRate` number, nullable: Fraction of the remaining balance released each period, as a decimal between 0 and 1. Only for the `REDUCING_BALANCE` method, and mutually exclusive with `residualAmount`
  - `accumulatePastReleasesEnabled` boolean: Legacy representation of accumulationMode. True only for POSTING_DATE; false for OFF and OPEN_PERIOD. Read accumulationMode to distinguish all modes
  - `accumulationMode` 'OFF' | 'OPEN_PERIOD' | 'POSTING_DATE': OFF keeps every scheduled release on its original date. POSTING_DATE combines releases dated before the document posting date with the first scheduled release on or after that date; if none remains, it uses the document posting date. OPEN_PERIOD finds the first postable date from the schedule start and combines earlier releases with the first scheduled release on or after that date; if none remains, it uses the first postable date. It applies only when the schedule starts before the document posting date. Later closed or locked periods still block posting. The document posting date stays unchanged. ⚠️ This enum is not exhaustive; new values may be added in the future.
  - `defaultDuration` integer, nullable: Default number of months the release schedule runs for. Can be overridden per document
  - `context` string, nullable: Free-text notes on the template
  - `status` 'ACTIVE' | 'ARCHIVED': Template status - `ACTIVE` - The template can be assigned to new documents and contracts - `ARCHIVED` - The template is archived and can no longer be assigned. Existing releases are unaffected ⚠️ This enum is not exhaustive; new values may be added in the future.
  - `createdAt` string, date-time: Timestamp when the template was created
  - `updatedAt` string, date-time: Timestamp when the template was last updated

---

[API](https://skmtc.dev/light/apis/light-api.md) - [All operations](https://skmtc.dev/light/apis/light-api/llms.txt) - [OpenAPI document](https://skmtc.dev/light/apis/light-api/revisions/84f51306f648?raw)
