---
title: "Сверить коды склада юрлица с ЧЗ"
method: POST
path: "/api/v1/marking/reconcile"
tags: ["Marking codes"]
---

# Сверить коды склада юрлица с ЧЗ

`POST /api/v1/marking/reconcile`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/marking/reconcile`
- 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`)

«Сверить с ЧЗ»: прогон сверки в фоне. Читаются коды юрлица «в обороте» из ЧЗ (по каждой включённой товарной группе) и коды, числящиеся на складах юрлица по регистру `marking_codes` на сегодня; коды склада, которых нет в выдаче ЧЗ, досверяются поштучно, чтобы назвать причину. Итог — расхождения трёх видов: `stock_only` (на складе, а в ЧЗ не в обороте у юрлица), `gismt_only` (в обороте у юрлица, а на складах не числится) и `status_mismatch` (код вложен в агрегат). Сверка не двигает склад и не добавляет кодов в реестр; досверенным кодам реестра освежается статус ЧЗ. Нужен действующий вход по УКЭП. Одна идущая сверка на юрлицо; ход — в `GET /api/v1/marking/reconcile`.

## Headers

- `X-Tenant` string, required

## Request body

- MarkingReconcileInput
  - `company_id` string, uuid, required

## Response `202`

Сверка запущена

- MarkingReconcileStarted
  - `run` MarkingReconcileRun, required
    - `id` string, uuid, required
    - `company_id` string, uuid, required
    - `status` 'running' | 'done' | 'failed' | 'interrupted', required
    - `phase` 'read_gismt' | 'read_stock' | 'check' | 'compare' | 'finished', required: Шаг прогона
    - `gismt_codes` integer, required: Кодов юрлица «в обороте» прочитано из ЧЗ
    - `stock_codes` integer, required: Кодов на складах юрлица по регистру
    - `checked_codes` integer, required: Кодов склада досверено поштучно
    - `summary` object, required: Расхождений по видам: {"stock_only": n, ...}
    - `error` string: Почему сверка остановилась
    - `started_by` integer
    - `started_at` string, date-time, required
    - `heartbeat_at` string, date-time, required
    - `finished_at` string, date-time

## Other responses

- `400`: Юрлицо не распознано или у него нет включённых групп
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Юрлицо не найдено или недоступно
- `409`: Сверка этого юрлица уже идёт (`marking.reconcile.running`)
- `502`: Нет действующего входа в ЧЗ или ЧЗ отказал
- `503`: Сверка недоступна на сервере

---

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