---
title: "Решить расхождение"
method: POST
path: "/api/v1/stock/discrepancies/resolve"
tags: ["Stock documents"]
---

# Решить расхождение

`POST /api/v1/stock/discrepancies/resolve`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/stock/discrepancies/resolve`
- 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

Решение строк очереди расхождений одного документа (ERP-2544) — один
вход на все пункты меню «Решить». Своей системы претензий нет: решение
исполняют существующие документы склада. Количество и деньги появляются
проведением документа, поэтому по поступлению решение всегда
**черновик** — проводит человек; перемещение можно провести сразу
(`post: true`).

Решения по недостаче поступления: `claim_delivery` — допоставка по
претензии (черновик приёмки-допоставки); `supplier_acknowledged` —
поставщик согласился, корректировка приёмки по УКД на уменьшение
(`supplier_document` — номер и дата УКД); `writeoff` — списание
претензии на расходы по статье `item_id`; `wait` — отметка «Ждём», без
документа (`status: marked`). По излишку поступления (лежит на складе
«К разбору»): `pay_supplier` — доплатить поставщику, корректировка по
УКД на увеличение; `receive_free` — оприходовать бесплатно, доход
списанием претензии в режиме излишка; `return` — вернуть поставщику.
Решения перемещения: `wait`, `charge_culprit` (виновник — `contact_id`),
`return`, `writeoff`, `other_product` (пересортица: недостача товара А и
излишек товара Б, `to_line_id`), `receive_free` — оприходовать излишек
(ячейки получателя — `bin_allocations` строки, ERP-2578). Ячейки строки
называют и `return` (склада-отправителя), и `other_product`
(склада-получателя) — ERP-2579.

Строки (`lines`) называют строку очереди и количество в базовой единице;
без строк — все строки документа, которым это решение доступно, на
весь открытый остаток. Решать можно частями: открытый остаток уменьшают
проведённые документы решения. Строка с черновиком решения, решённая и
«ещё в пути» не решается — 409. Решение, которого нет в `actions` строки,
— 400. Строки с физическими единицами решаются целиком;
переменная мера излишка не принимается.

Права по виду основания: перемещение — право перемещений; поступление
с `wait` и `claim_delivery` — право приёмок; остальные решения
поступления — право записи склада, как у тех же документов вне очереди.

Читает `Idempotency-Key`: повтор с тем же ключом отдаёт тот же результат.

## Headers

- `X-Tenant` string, required
- `Idempotency-Key` string

## Request body

- StockDiscrepancyResolveInput
  - `source` 'receipt' | 'transfer', required: Откуда строки: receipt — приёмка от поставщика, transfer — отправка перемещения
  - `document_id` string, uuid, required
  - `action` 'wait' | 'claim_delivery' | 'supplier_acknowledged' | 'writeoff' | 'charge_culprit' | 'return' | 'other_product' | 'receive_free' | 'pay_supplier' | 'close_without_document', required: Решение из actions строки. wait — «Ждём», отметка без документа
  - `lines` StockDiscrepancyResolveLine[]: Строки и количество; пусто — все строки документа, которым это решение доступно, на весь открытый остаток
    - `line_id` string, uuid, required
    - `kind` 'shortage' | 'surplus': Какое расхождение решаем; можно не указывать, если у строки одно
    - `qty` string: Сколько решаем, положительная decimal string в базовой единице; пусто — весь открытый остаток
    - `to_line_id` string, uuid
    - `bin_allocations` StockDocumentLineBinAllocation[]: Только у решений перемещения, которые кладут товар на склад: receive_free (ERP-2578) и other_product — ячейки склада-получателя, return — ячейки склада-отправителя (ERP-2579). В режиме strict их сумма равна количеству решения, иначе проведение отказывает. У поступления излишек уже лежит на складе — ячейки не указываются
      - `bin_id` string, uuid, required
      - `qty` string, required: Положительная decimal string в базовой единице номенклатуры
      - `bin_code` string: Только в ответе: код ячейки. При сохранении игнорируется
      - `bin_name` string: Только в ответе: название ячейки. При сохранении игнорируется
      - `handling_unit_id` string, uuid
  - `contact_id` string, uuid
  - `item_id` string, uuid
  - `supplier_document` SupplierDocument: Номер и дата документа поставщика (ERP-484, подшаг 5.3): по ним входящий НДС сверяется с книгой покупок. Оба поля необязательны
    - `number` string
    - `date` string, date
  - `date` string, date: Дата документа решения; пусто — рабочая дата
  - `comment` string: Комментарий решения; у close_without_document — обязательная причина закрытия без документа (ERP-2586)
  - `post` boolean: true — провести сразу; только у перемещения, решение по поступлению проводит человек

## Response `201`

Заведённый документ решения — черновик или проведённый; у отметки «Ждём» документа нет

- StockDiscrepancyResolveResult: Что заведено решением. У отметки «Ждём» документа нет: status — marked
  - `document_id` string, uuid
  - `number` string
  - `type_key` string
  - `status` string, required: Статус документа (draft, posted) или marked у отметки
  - `action` string
  - `lines` integer, required
  - `qty` string, required: Сумма количеств решённых строк

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю
- `409`: Конфликт версии, идемпотентности или бизнес-состояния
- `422`: Idempotency-Key уже использован для другого запроса: другое тело, другой адрес или другая операция. Код `idempotency.key_mismatch`; сохранённый ответ не раскрывается. Для новой команды берут новый ключ.
- `503`: Хранилище ключей идемпотентности недоступно, команда с заголовком Idempotency-Key не выполнялась. Код `idempotency.unavailable`; Retry-After говорит, когда повторить.

---

[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/3c60ded179f2?raw)
