---
title: "Получить очередь расхождений"
method: GET
path: "/api/v1/stock/discrepancies"
tags: ["Stock documents"]
---

# Получить очередь расхождений

`GET /api/v1/stock/discrepancies`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/stock/discrepancies`
- 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): недостачи и излишки
поступлений от поставщиков и расхождения приёмок перемещений в одном
списке. Очередь вычисляется из учёта на лету — своей таблицы у неё нет;
строка закрывается проведёнными документами решения. Строка — «документ ×
строка документа × вид» (`kind`: `shortage` или `surplus`).

`source`: `receipt` — поступления (недостача против документа
поставщика, излишек сверх него), `transfer` — перемещения (то, что
ушло в путь и не приехало, или приехало сверх). Статус строки: `open` —
нужно решить, `waiting` — решили ждать, `pending` — есть черновик
решения (`decision_document_id`), `resolved` — решено проведённым
документом (`resolution` — чем), `in_transit` — остаток ещё в пути.
Отбор `status=open` (по умолчанию) отдаёт «нужно решить» вместе с
черновиками решений; `waiting`, `resolved` и `all` — отдельно.

Излишек поступления («в документе 10, факт 11») лежит на складе в
системном состоянии «К разбору» — в «Доступно» его нет. Решения строки
перечислены в `actions`.

Видны документы юрлиц и складов сотрудника. Нужно право чтения склада.

## Query parameters

- `source` 'receipt' | 'transfer'
- `status` 'open' | 'waiting' | 'resolved' | 'all'
- `warehouse_id` string, uuid
- `contact_id` string, uuid
- `document_id` string, uuid
- `date_from` string, date
- `date_to` string, date
- `limit` integer
- `offset` integer

## Headers

- `X-Tenant` string, required

## Response `200`

Страница очереди расхождений

- StockDiscrepancyPage
  - `count` integer, required: Всего строк по отбору
  - `limit` integer, required
  - `offset` integer, required
  - `results` StockDiscrepancy[], required
    - `source` 'receipt' | 'transfer', required: receipt — приёмка от поставщика, transfer — приёмка перемещения (отправка)
    - `document_id` string, uuid, required
    - `document_number` string, required
    - `document_date` string, date, required
    - `document_type_key` string, required
    - `counterparty_id` string, uuid
    - `counterparty_name` string, required
    - `from_warehouse_id` string, uuid
    - `from_warehouse_name` string
    - `to_warehouse_id` string, uuid
    - `to_warehouse_name` string, required
    - `line_id` string, uuid, required
    - `product_id` string, uuid, required
    - `product_sku` string, required
    - `product_name` string, required
    - `unit` string, required: Подпись базовой единицы; количества строки — в ней
    - `kind` 'shortage' | 'surplus', required: shortage — недостача, surplus — излишек
    - `expected` string, required: Ожидали: по документу поставщика или по отправке
    - `actual` string, required: Приняли по факту
    - `diff` string, required: Факт минус ожидали: у недостачи отрицательная, у излишка положительная
    - `open_qty` string, required: Остаток к решению: расхождение за вычетом уже решённого
    - `amount` string, required: Сумма остатка к решению в валюте учёта
    - `since` string, date, required: С какой даты расхождение: дата документа
    - `status` 'open' | 'waiting' | 'pending' | 'resolved' | 'in_transit', required: open — нужно решить, waiting — решили ждать, pending — есть черновик решения, resolved — решено, in_transit — остаток ещё в пути (решения пока нет)
    - `resolution` 'wait' | 'claim_delivery' | 'supplier_acknowledged' | 'writeoff' | 'charge_culprit' | 'return' | 'other_product' | 'receive_free' | 'pay_supplier' | 'close_without_document': Чем решено или что решили; пусто — решения нет
    - `resolution_comment` string: Причина решения без документа: у close_without_document — обязательная причина закрытия (ERP-2586)
    - `decision_document_id` string, uuid
    - `decision_document_type_key` string: Вид документа решения: экран открывает черновик на складском экране вида; у списания претензии и корректировки приёмки складского экрана нет — их черновик проводят из строки
    - `expected_series` string: Только перемещение: ожидаемая серия — подсказка
    - `received_series` string: Только перемещение: серия по факту приёмки
    - `series_mismatch` boolean: Только перемещение: приняли не ту серию, что ожидали — пометка, не расхождение
    - `actions` string[], required: Решения, доступные строке; пусто у строки с черновиком, решённой и «ещё в пути». Недостача поступления: wait, claim_delivery, supplier_acknowledged, writeoff. Излишек поступления: pay_supplier, receive_free, return. Недостача перемещения: wait, charge_culprit, return, writeoff, other_product. Излишек перемещения: receive_free. Тому, кто уже ждёт, wait не предлагается

## Other responses

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

---

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