---
title: "Получить документы внутреннего контура"
method: GET
path: "/api/v1/docflow/flow/documents"
tags: ["Docflow flow"]
---

# Получить документы внутреннего контура

`GET /api/v1/docflow/flow/documents`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/docflow/flow/documents`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)

Список карточек внутреннего документооборота: договоры, спецификации, акты и прочие бумаги кабинета. Каждая строка — ПОЛНАЯ карточка текущей редакции вместе с файлами и связями. Листа согласования в ней нет: согласование вынесено в самостоятельную сущность со своим предметом и читается операциями крыла согласований.

Отбор awaiting_my_approval=true оставляет только то, что ждёт решения ТЕКУЩЕГО человека: действующее лицо сервер берёт из сессии, назвать в отборе чужого нечем. Допустимых значений ровно два — true и false; любое другое отвечает отказом 400, а не молча игнорируется. Значение false отбор не сужает и равнозначно его отсутствию.

Набор строк называется items — как у остальных страниц этого контура. Крыло обмена с контрагентами (ЭДО) в том же модуле исторически называет его results, и это расхождение здесь названо вслух, а не оставлено на догадку читателя.

Без явного status архивные документы скрыты. Отбор related_to возвращает связную компоненту графа связей документа целиком, и архивные в ней остаются: разорванная история — это не история.

## Query parameters

- `search` string
- `kind` 'contract' | 'specification' | 'amendment' | 'invoice' | 'act' | 'upd' | 'goods_waybill' | 'transport_waybill' | 'consignment_note' | 'transport_order' | 'tax_invoice' | 'correction' | 'return' | 'discrepancy_act' | 'reconciliation_act' | 'power_of_attorney' | 'other': Вид документа внутреннего контура. Вид называет бумагу, а не учётную операцию: продажу и закупку из бумаги делают отдельные команды.
- `status` 'draft' | 'registered' | 'archived'
- `company_id` string, uuid
- `contact_id` string, uuid
- `related_to` string, uuid
- `awaiting_my_approval` 'true' | 'false'
- `validity` 'active' | 'expiring' | 'expired'
- `regular` 'true' | 'false'
- `kinds` string
- `contact_ids` string
- `deal` 'yes' | 'no'
- `with` string
- `limit` integer
- `offset` integer

## Headers

- `X-Tenant` string, required

## Response `200`

Страница документов

- DocflowFlowPage: Страница карточек. Набор строк называется items — как у остальных страниц этого крыла; крыло обмена с контрагентами в том же модуле исторически называет его results.
  - `items` DocflowFlowDocument[], required
    - `id` string, uuid, required
    - `company_id` string, uuid, required
    - `business_id` string, uuid: Бизнес бумаги. У бумаги без юрлица (company_id — нулевой id) он один называет сторону «мы»; в печати стоит его название
    - `execution_cutover` boolean: Бизнес юрлица бумаги прошёл отсечку этапа 4: мастер «Принять акт» и «Создать продажу / закупку» у бумаги сняты
    - `company_name` string, required
    - `contact_id` string, uuid, required
    - `contact_name` string, required
    - `kind` 'contract' | 'specification' | 'amendment' | 'invoice' | 'act' | 'upd' | 'goods_waybill' | 'transport_waybill' | 'consignment_note' | 'transport_order' | 'tax_invoice' | 'correction' | 'return' | 'discrepancy_act' | 'reconciliation_act' | 'power_of_attorney' | 'other', required: Вид документа внутреннего контура. Вид называет бумагу, а не учётную операцию: продажу и закупку из бумаги делают отдельные команды.
    - `direction` 'incoming' | 'outgoing' | 'internal', required
    - `status` 'draft' | 'registered' | 'archived', required
    - `archived_from` 'draft' | 'registered': Из какого состояния бумага ушла в архив
    - `version` integer, required
    - `identity_editable` boolean, required: Ложь означает: стороны и вид уже закреплены редакцией или связью и не меняются
    - `content` DocflowFlowContent, required: Реквизиты бумаги — то, что переписано с документа.
      - `title` string, required
      - `number` string
      - `date` string, date, required
      - `contract` DocflowFlowContractTerms: Условия договора в старой форме. Остаётся читаемой и принимается, но новую коммерческую часть описывает commercial. У договора без лимита (mode=framework) суммы и валюты в условиях нет вовсе — искусственного нуля здесь не бывает. Коммерческая часть рядом с ним законна только с payment_rule, у которого названа сумма платежа: это бессрочный договор с регулярным платежом. Без неё это рамочный договор, суммы которого ведутся спецификациями, и commercial с ним не сохраняется.
        - `mode` 'framework' | 'fixed', required
        - `subject` string, required
        - `valid_from` string, date, required
        - `valid_until` string, date
        - `amount` string: Только у mode=fixed
        - `currency` string
        - `payment_terms` string
        - `renewal_terms` string
        - `order_funnel_id` string, uuid: Воронка продаж или закупок договора: продажи или закупки по договору идут в неё (пометка кабинета, не текст бумаги)
        - `responsibles` DocflowFlowResponsible[]: Ответственные по договору с долями: продажи и закупки периодов получают их по умолчанию; сумма долей — ровно 100
          - `employee_id` string, uuid, required
          - `share` string, required: Доля в процентах десятичным текстом
      - `commercial` DocflowFlowCommercial: Коммерческая часть бумаги — сумма, валюта, строки и графики. Пустая amount законна только вместе с payment_rule, у которого названа сумма платежа: у бессрочного договора итога нет и быть не может, а строк оригинала и этапов работ у такой сделки не бывает — их суммы обязаны сойтись с итогом.
        - `currency` string, required
        - `amount` string, required: Десятичным текстом; пусто — итога нет или его выводит правило графика
        - `payment_terms` string
        - `due_date` string, date
        - `lines` DocflowFlowCommercialLine[]
          - `id` string, uuid, required
          - `product_id` string, uuid
          - `product_name` string
          - `name` string, required
          - `unit` string
          - `quantity` string
          - `price` string
          - `amount` string, required
          - `vat_amount` string, nullable: null означает, что налог не переписывали, а не что строка без налога
          - `vat_rate` string: Ставка строки в записи документа: «22%», «22/122», «без НДС». Пусто — по учётной политике юрлица на дату документа
          - `article` string: Ручной артикул товара для покупателя (ДопСведТов@АртикулТов). Пусто — по настройке покупателя
          - `code` string: Ручной код товара для покупателя (ДопСведТов@КодТов). Пусто — по настройке покупателя
        - `milestones` DocflowFlowScheduleStage[]: Этапы работ
          - `id` string, uuid, required
          - `label` string
          - `date` string, date
          - `amount` string, required: Десятичным текстом, не числом с плавающей точкой
          - `due_trigger` string: Чем открывается срок платежа: датой или закрытием этапа
          - `after_stage_id` string, uuid
          - `delay_days` integer: Дней после события срока
        - `payments` DocflowFlowScheduleStage[]: График платежей; при payment_rule — его раскрытие
          - `id` string, uuid, required
          - `label` string
          - `date` string, date
          - `amount` string, required: Десятичным текстом, не числом с плавающей точкой
          - `due_trigger` string: Чем открывается срок платежа: датой или закрытием этапа
          - `after_stage_id` string, uuid
          - `delay_days` integer: Дней после события срока
        - `payment_rule` DocflowFlowPaymentRule: Регулярный график оплат одним правилом: сумма платежа, период, день, начало и ровно одно из трёх окончаний — число платежей, последняя дата или open («пока действует договор»). Сервер раскрывает правило в строки payments сам; план финансов и расчёты видят только строки, как при ручном графике. При названной сумме платежа сумма документа (commercial.amount) может быть пустой: с count или until она вычисляется как N × платёж, с open её нет вовсе. Бессрочное правило раскрывается на горизонт в 12 ближайших платежей — это план, а не весь договор.
          - `amount` string: Сумма одного платежа десятичным текстом; пусто — сумма документа делится поровну. Обязательна, когда суммы документа нет
          - `period` 'month' | 'week' | 'quarter', required
          - `day` integer, required: День месяца (month, quarter; короткий месяц прижимает к своему концу) или день недели ISO 1..7 (week). При заданном day_kind сервер записывает 31, и день задаёт day_kind
          - `day_kind` 'last' | 'last_workday': Какой день месяца платёжный, только для month и quarter: last — последний день месяца, last_workday — последний рабочий день месяца по производственному календарю РФ (праздники ст. 112 ТК РФ и переносы выходных). Пусто — число из day. Для week — отказ 422
          - `advance` boolean: Оплата вперёд — за следующий период: даты платежей не меняются, а период, за который платёж, на шаг правила позже (платёж 30.10 — за ноябрь). От этого периода считаются период, название и строки условий продажи или закупки периода и конец периода для бумаг; первый период (orders.from) и срок договора сравниваются с ним же. С shares не сочетается: отказ 422 docflow.flow.payment_advance_shares
          - `start` string, date, required: Первый платёж — ближайшая дата не раньше этой
          - `count` integer: Число платежей; задаётся вместо until
          - `until` string, date: Последняя допустимая дата включительно; задаётся вместо count
          - `open` boolean: Пока действует договор: окончания нет, итога нет, раскрываются ближайшие 12 платежей
          - `orders` DocflowFlowPaymentRuleOrders: «Заводить продажу или закупку на каждый период» — только у договора (kind=contract). Зарегистрированный договор сам заводит на каждую наступившую стадию правила подтверждённый продажу или закупку ядра (source_kind=contract, external_id «<id договора>/<период>»): сразу после регистрации и фоновым проходом раз в час. Один договор и один период — один продажа или закупка навсегда: отменённый не воскресает, период не позже последнего продажи или закупки договора не заводится. Будущие периоды не заводятся; исполнение и бумаги периода — вручную.
            - `from` string, date: Первый период: стадии раньше этой даты продаж или закупок не получают. Пусто — с начала правила, прошедшие периоды догоняются
            - `product_id` string, uuid
            - `product_name` string: Название услуги на момент выбора; пишет сервер, присланное не читается
            - `papers` DocflowFlowPeriodPapers: Счёт и закрывающая бумага каждого периода регулярного договора продажи, которые договор выпускает сам. Без поля бумаги выпускают вручную
              - …
            - `project_id` string, uuid
            - `department_id` string, uuid
            - `cfo_id` string, uuid
          - `shares` DocflowFlowPaymentShare[]: Оплата периода долями: проценты вместе ровно 100. Продажа или закупка периода получает график оплат из долей. Пусто — один платёж периода в дату правила
            - `percent` string, required: Доля суммы периода в процентах десятичным текстом, до двух знаков
            - `day` integer: День периода: число месяца стадии (month, quarter) или день недели ISO 1..7 (week)
            - `after_act_days` integer: Срок через столько дней после акта периода
      - `correction` DocflowFlowCorrection: Содержание УКД по возврату покупателя: строки исходного УПД «до» и остаток «после». Снимается при выпуске и дальше не пересчитывается.
        - `return_id` string, uuid, required
        - `return_number` string
        - `return_date` string, date
        - `basis_id` string, uuid, required
        - `basis_number` string, required
        - `basis_date` string, date, required
        - `lines` DocflowFlowCorrectionLine[], required
          - `id` string, uuid, required
          - `number` integer, required: Номер строки в исходном УПД
          - `product_id` string, uuid
          - `name` string, required
          - `unit` string
          - `unit_code` string: Код единицы по ОКЕИ
          - `vat_rate` string, required
          - `article` string: Ручной артикул строки, перенесённый из строки УПД; пусто — по настройке покупателя
          - `code` string: Ручной код строки, перенесённый из строки УПД
          - `before` DocflowFlowCorrectionState, required
            - `quantity` string, required
            - `price` string: Цена за единицу без налога
            - `amount_without_vat` string, required
            - `vat_amount` string: Пусто у необлагаемой строки
            - `amount_with_vat` string, required
          - `after` DocflowFlowCorrectionState, required
            - `quantity` string, required
            - `price` string: Цена за единицу без налога
            - `amount_without_vat` string, required
            - `vat_amount` string: Пусто у необлагаемой строки
            - `amount_with_vat` string, required
      - `transfer` DocflowFlowAgentTransfer: Передача товара агенту или комиссионеру и возврат от него (ERP-2178): УПД с функцией ДОП и особым обстоятельством СпОбстФДОП. Только у вида upd. Карточку из черновика площадки («Упд по акту приемки» Wildberries) заводит сервер, строки и коды в ней — слово площадки.
        - `case` '00005' | '00006', required: 00005 — передача агенту или комиссионеру, 00006 — возврат от него
        - `platform` string: Площадка, составившая черновик (wildberries); пусто у бумаги, набранной у нас
        - `source_id` string, uuid
        - `source_title` string: Как документ назван у площадки
        - `operation` string: Содержание операции словами черновика
        - `basis` DocflowFlowAgentTransferRef[]
          - `name` string, required
          - `number` string
          - `date` string, date
        - `lines` DocflowFlowAgentTransferLine[]
          - `line_id` string, uuid, required
          - `gtin` string
          - `marks` object[], required
            - `transport_package` string: Код транспортной упаковки (SSCC монопаллеты)
            - `count` string: Количество единиц при передаче по GTIN
            - `codes` string[]
            - `packages` string[]
      - `amendment_purpose` 'terms' | 'deal': Назначение допсоглашения (ERP-2063), только у вида amendment: terms — меняет условия договора (цену, срок, абонентскую плату), deal — оформляет отдельную покупку или продажу по договору и ведёт себя как спецификация: может быть основанием сделки, его условия услуг в договор не идут. Не прислано у ДС — terms; у другого вида — отказ
      - `specification_purpose` 'terms' | 'deal': Назначение спецификации (ERP-2083), только у вида specification: terms — условия или прайс на срок договора (строки условий идут в сделки периодов, своей сделки нет), deal — партия, основание своей сделки. Не прислано — по содержанию: есть строки условий — terms, иначе deal; у другого вида — отказ
      - `recognized` DocflowFlowRecognized: Прочитанное машиной из файла карточки — НА ПРОВЕРКУ. Живёт отдельно от условий договора: в условия сумма и срок попадают только рукой человека. Пустое поле означает «не прочиталось», а не ноль. Приёмка входящего договора в PDF заполняет его текстом бумаги.
        - `source` string: Имя вложения словами оператора: по нему человек откроет ту же бумагу и сверит
        - `amount` string: Десятичная строка
        - `currency` string
        - `valid_from` string, date
        - `valid_until` string, date
      - `custom` object: Значения своих полей кабинета (графы вида docflow.document.<вид>). В save не прислано — не меняются; правятся действием custom
    - `files` DocflowFlowFile[]
      - `id` string, uuid, required
      - `name` string, required
      - `size` integer, required: Байт; не больше 26214400
      - `sha256` string, required
      - `content_type` string, required
      - `uploaded_by` integer, required
      - `uploaded_at` string, date-time, required
      - `scan_status` 'clean' | 'skipped': Вердикт антивируса у файла, пришедшего сессией загрузки; у файла формы поля нет
    - `relations` DocflowFlowRelation[]
      - `id` string, uuid, required
      - `kind` 'basis' | 'attachment' | 'amends' | 'replaces', required
      - `target_id` string, uuid, required
      - `target_version` integer, required: Закреплённая редакция другой бумаги
    - `accounting_links` DocflowFlowAccountingLink[]
      - `id` string, uuid, required
      - `owner` 'finance' | 'stock', required
      - `document_id` string, uuid, required
      - `source_action` string: Команда, породившая связь: create_plan, accept_act и подобные
      - `source_version` integer: Редакция бумаги, закреплённая командой
      - `target_version` integer: Редакция учётного документа, из которой сделана бумага
    - `commercial_tax` DocflowFlowCommercialTaxLine[]: Только в ответе чтения карточки: вычисленные суммы НДС строк из источника печати. В редакцию документа не записываются
      - `line_id` string, uuid, required
      - `rate` string: Ставка для показа; пусто, если политика не дала ставку
      - `amount` string: НДС десятичным текстом; пусто, если налог не определён
    - `edo` DocflowFlowEDOState: Ответ контрагента по документу, как его понимает карточка: подписал, отказал или аннулировали по соглашению сторон. Пересказа состояний оператора здесь нет — регламентов у него десятки, и свой словарь на них отстал бы от первой же правки закона. Живёт в редакции карточки и поэтому попадает в её историю сам.
      - `message` string, uuid, required
      - `outcome` 'signed' | 'refused' | 'cancelled', required: Подписал, отказал (отклонение либо уведомление об уточнении) или аннулирован по соглашению сторон
      - `state_name` string: Состояние словами оператора: показывается как есть, человек сверяет его с кабинетом оператора
      - `occurred_at` string, date-time, required: Когда это случилось у оператора
    - `edo_links` DocflowFlowEDOLink[]: Конверты, которыми карточка уходила и приходила. Заполняется только при чтении карточки и в редакцию не пишется: связь живёт своей строкой, её правит синхронизация, а редакция неизменяема
      - `id` string, uuid, required
      - `connection` string, uuid, required
      - `message` string, uuid
      - `role` 'primary' | 'attachment' | 'basis', required: Чем карточка приходится конверту: основной документ, приложение или основание
      - `file` string, uuid
      - `external_doc_id` string, required: Идентификатор документа у оператора
      - `external_attachment_id` string: Идентификатор вложения у оператора: им адресуется замена файла при повторной отправке
      - `draft` boolean, required: Черновик, который ещё можно удалить у оператора
      - `direction` string, required: Слова оператора о самом пакете, собранные при чтении карточки
      - `number` string, required
      - `date` string, required
      - `state_code` string, required
      - `state_name` string, required
      - `attachments` DocflowFlowEDOAttachment[]: Содержательные файлы конверта, показанные в карточке ссылкой, а не копией: байты лежат в хранилище кабинета один раз. Извещений здесь нет. Заполняется только при чтении одной карточки
        - `id` string, uuid, required
        - `message` string, uuid, required
        - `name` string, required
        - `kind` string, required: document, title либо пусто
        - `content_type` string, required
        - `size_bytes` integer, required
        - `stored` boolean, required: Байты скачаны в наше хранилище; ложь — файл пока живёт только у оператора
      - `created_by` integer, nullable
      - `created_at` string, date-time, required
    - `gaps` string[]: Чего карточке не хватает до полноты: содержательного файла, подтверждённой суммы, срока действия (последний — только у договора и дополнительного соглашения). Считается при чтении одной карточки и в редакцию не пишется. Пустой список у карточки из ЭДО означает, что приёмка зарегистрировала её сразу; непустой — что карточка осталась черновиком и ждёт подтверждения человека.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `updated_by` integer, required
  - `has_more` boolean, required
  - `state_counts` object: Только по запросу with=counts. Сколько карточек в каждой пилюле списка договоров при прочих отборах: expiring входит в active, а удалённые не считаются нигде.
    - `draft` integer, required
    - `active` integer, required
    - `expiring` integer, required
    - `expired` integer, required
    - `archived` integer, required

## Other responses

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