---
title: "Частично изменить настройки склада кабинета"
method: PATCH
path: "/api/v1/stock/settings"
tags: ["Stock settings"]
---

# Частично изменить настройки склада кабинета

`PATCH /api/v1/stock/settings`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/stock/settings`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)
  - HTTP bearer

Меняются только переданные поля; default_reservation_days принимает значение от 1 до 3650 дней. Порог остаточного срока годности (min_shelf_life_pct, min_shelf_life_days) снимается значением null. Режим ручного выбора партии ниже порога и градации ОСГ (ERP-2182) проверяются парой с сохранёнными значениями: 400 shelf_grades_invalid, shelf_life_chosen_below_minimum_invalid.

## Headers

- `X-Tenant` string, required

## Request body

- StockSettingsPatch
  - `block_shipment_over_free` boolean
  - `block_reservation_over_available` boolean
  - `auto_cancel_expired_reservations` boolean
  - `transfer_carries_reservation` boolean
  - `purchase_requests_enabled` boolean
  - `default_reservation_days` integer
  - `min_shelf_life_pct` string, nullable: Порог остаточного срока годности кабинета, % срока: десятичная строка больше 0 и не больше 100; null снимает порог
  - `min_shelf_life_days` integer, nullable: Порог остаточного срока годности кабинета в днях; null снимает порог
  - `min_shelf_life_scale` StockShelfLifeStep[]: Шкала порога остаточного срока по общему сроку годности партии (ERP-2182): ступени по возрастанию границы up_to_months, у последней границы нет. Общий срок ровно на границе — ступень этой границы. Общий срок не определить (нет даты изготовления и срока в карточке) — партия порог не проходит: no_production_date
    - `up_to_months` integer, nullable, required: Граница общего срока, месяцев, включительно; у последней ступени — null (всё, что длиннее предыдущей)
    - `min_remaining_pct` string, nullable, required: Доля оставшегося срока, %: десятичная строка больше 0 и не больше 100, не точнее сотых
    - `min_remaining_days` integer, nullable, required: Дней до «годен до»
  - `shelf_life_basis` 'days' | 'months': Как считать долю остаточного срока годности: days — по дням, months — по месяцам
  - `shelf_life_chosen_below_minimum` 'block' | 'warn': Выбранная руками партия ниже порога: block — отказ, warn — пометка (ERP-2182)
  - `shelf_grade_critical_pct` string: Градация ОСГ «красная ниже», %: больше 0, не точнее сотых. Пара сверяется с сохранённой жёлтой: 400 shelf_grades_invalid
  - `shelf_grade_warning_pct` string: Градация ОСГ «жёлтая ниже», %: больше красной, не больше 100
  - `shelf_grade_critical_days` integer: Градация без ОСГ «красная», дней: меньше жёлтой
  - `shelf_grade_warning_days` integer: Градация без ОСГ «жёлтая», дней
  - `negative_stock_kinds` string[]: Новый перечень видов «можно в минус» целиком; goods — 400
  - `pick_strictly_by_expiry` boolean: Отбор строго по сроку годности (ERP-2144)

## Response `200`

Обновлённые настройки склада

- StockSettings
  - `block_shipment_over_free` boolean, required: Запрещать отгрузку сверх свободного остатка
  - `block_reservation_over_available` boolean, required: Запрещать резерв сверх доступного остатка
  - `auto_cancel_expired_reservations` boolean, required: Снимать просроченные резервы автоматически
  - `transfer_carries_reservation` boolean, required: Перемещение зарезервированного: везти резерв на склад-получатель вместо отказа
  - `purchase_requests_enabled` boolean, required: Эффективный режим заявок на закупку (ERP-2533). С документооборотом всегда true; без него — сохранённый выбор кабинета (ERP-1523). Выключено — новая заявка не заводится; незавершённые, включая черновики, остаются доступны. Сохранённый выбор не меняется при включении документооборота
  - `default_reservation_days` integer, required
  - `min_shelf_life_pct` string, nullable, required: Порог остаточного срока годности кабинета, % срока (ERP-1821): десятичная строка больше 0 и не больше 100. Партия с меньшей долей оставшегося срока не уходит покупателю и на склад площадки. null — не задан
  - `min_shelf_life_days` integer, nullable, required: Порог остаточного срока годности кабинета в днях до «годен до». Заданы и проценты, и дни — партия обязана пройти оба. null — не задан
  - `min_shelf_life_scale` StockShelfLifeStep[], required: Шкала порога остаточного срока по общему сроку годности партии (ERP-2182): ступени по возрастанию границы up_to_months, у последней границы нет. Общий срок ровно на границе — ступень этой границы. Общий срок не определить (нет даты изготовления и срока в карточке) — партия порог не проходит: no_production_date
    - `up_to_months` integer, nullable, required: Граница общего срока, месяцев, включительно; у последней ступени — null (всё, что длиннее предыдущей)
    - `min_remaining_pct` string, nullable, required: Доля оставшегося срока, %: десятичная строка больше 0 и не больше 100, не точнее сотых
    - `min_remaining_days` integer, nullable, required: Дней до «годен до»
  - `shelf_life_basis` 'days' | 'months', required: Как считать долю остаточного срока годности (ERP-1821): days — по датам, по умолчанию; months — от первых чисел месяцев, как печатают срок на упаковке. Одна формула для отчёта «остатки по партиям» и для порога при проведении; проведённые документы не пересчитываются
  - `shelf_life_chosen_below_minimum` 'block' | 'warn', required: Партия ниже порога остаточного срока, выбранная в строке руками (ERP-2182): block — отказ проведения shelf_life_below_minimum, по умолчанию; warn — проводится, пометка в posting.shelf_life_warnings и в журнале. Просроченное не отгружается ни в одном режиме; «Авто» берёт только проходящие порог партии
  - `shelf_grade_critical_pct` string, required: Градация ОСГ (ERP-2182): ниже — красная (critical). Десятичная строка больше 0 и меньше shelf_grade_warning_pct; по умолчанию 30. Только показ отчётов и отборов
  - `shelf_grade_warning_pct` string, required: Градация ОСГ: ниже — жёлтая (warning), от неё — зелёная (ok). Не больше 100; по умолчанию 70
  - `shelf_grade_critical_days` integer, required: Партия без ОСГ (нет даты изготовления): дней до «годен до» не больше — красная; по умолчанию 30
  - `shelf_grade_warning_days` integer, required: Партия без ОСГ: дней не больше — жёлтая; больше shelf_grade_critical_days, по умолчанию 90
  - `pick_strictly_by_expiry` boolean, required: Отбор строго по сроку (ERP-2144): отгрузка и перемещение между местами не берут партию с более поздним сроком, пока есть допустимая партия с более ранним. Отказ называет ячейку (или «не размещено») и срок ранней партии. По умолчанию выключено; на перекладку внутри места не действует
  - `updated_at` string, date-time, required
  - `negative_stock_kinds` string[]: Виды номенклатуры, расход которых может уйти в минус (ERP-2183): материал и полуфабрикат. Комплектация, списание и отгрузка берут недостающее по последней известной цене, приход гасит минус сам. Готовый товар в минус не уходит никогда. Пусто — минуса нет

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `500`: Внутренняя ошибка без раскрытия server-only деталей

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/a99574d597cc?raw)
