---
title: "Проверить доступность проведения, отмены и пометки удаления"
method: GET
path: "/api/v1/stock/documents/{id}/blockers"
tags: ["Stock documents"]
---

# Проверить доступность проведения, отмены и пометки удаления

`GET /api/v1/stock/documents/{id}/blockers`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/stock/documents/{id}/blockers`
- 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

Это предупреждающий снимок ядра; окончательную защиту держит транзакция самого действия.

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Tenant` string, required

## Response `200`

Разрешённые действия и причины отказа

- CoreDocumentBlockers
  - `document_id` string, uuid, required
  - `status` 'draft' | 'posted' | 'cancelled', required
  - `post` CoreDocumentActionCheck, required
    - `allowed` boolean, required
    - `reasons` CoreDocumentBlockReason[], required
      - `code` 'no_poster' | 'marked_deleted' | 'posted' | 'not_posted' | 'payload_invalid' | 'movement_invalid' | 'balance_negative' | 'ledger_incomplete' | 'period_closed', required
      - `message` string, required
      - `detail` string
      - `shortages` CoreBalanceShortage[]
        - `register_key` string, required
        - `register_name` string, required
        - `dims` object, required
        - `resource` string, required
        - `balance` string, required
        - `shortage` string, required
        - `conflicts` CoreConflictingRegistrar[], required
          - `id` string, uuid, required
          - `number` string, required
          - `type_key` string, required
          - `type_name` string, required
          - `date` string, date, required
          - `status` 'draft' | 'posted' | 'cancelled', required
          - `sign` -1 | 1, required
      - `detail_code` string: Код отказа проводчика внутри причины (например stock_backdated_conflict); detail для него собран на языке запроса.
      - `detail_params` object: Параметры отказа с кодом detail_code: из них собрана фраза detail.
  - `cancel` CoreDocumentActionCheck, required
    - `allowed` boolean, required
    - `reasons` CoreDocumentBlockReason[], required
      - `code` 'no_poster' | 'marked_deleted' | 'posted' | 'not_posted' | 'payload_invalid' | 'movement_invalid' | 'balance_negative' | 'ledger_incomplete' | 'period_closed', required
      - `message` string, required
      - `detail` string
      - `shortages` CoreBalanceShortage[]
        - `register_key` string, required
        - `register_name` string, required
        - `dims` object, required
        - `resource` string, required
        - `balance` string, required
        - `shortage` string, required
        - `conflicts` CoreConflictingRegistrar[], required
          - `id` string, uuid, required
          - `number` string, required
          - `type_key` string, required
          - `type_name` string, required
          - `date` string, date, required
          - `status` 'draft' | 'posted' | 'cancelled', required
          - `sign` -1 | 1, required
      - `detail_code` string: Код отказа проводчика внутри причины (например stock_backdated_conflict); detail для него собран на языке запроса.
      - `detail_params` object: Параметры отказа с кодом detail_code: из них собрана фраза detail.
  - `mark_deleted` CoreDocumentActionCheck, required
    - `allowed` boolean, required
    - `reasons` CoreDocumentBlockReason[], required
      - `code` 'no_poster' | 'marked_deleted' | 'posted' | 'not_posted' | 'payload_invalid' | 'movement_invalid' | 'balance_negative' | 'ledger_incomplete' | 'period_closed', required
      - `message` string, required
      - `detail` string
      - `shortages` CoreBalanceShortage[]
        - `register_key` string, required
        - `register_name` string, required
        - `dims` object, required
        - `resource` string, required
        - `balance` string, required
        - `shortage` string, required
        - `conflicts` CoreConflictingRegistrar[], required
          - `id` string, uuid, required
          - `number` string, required
          - `type_key` string, required
          - `type_name` string, required
          - `date` string, date, required
          - `status` 'draft' | 'posted' | 'cancelled', required
          - `sign` -1 | 1, required
      - `detail_code` string: Код отказа проводчика внутри причины (например stock_backdated_conflict); detail для него собран на языке запроса.
      - `detail_params` object: Параметры отказа с кодом detail_code: из них собрана фраза detail.

## Other responses

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

---

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