---
title: "Разобрать входящий пакет по файлам"
method: GET
path: "/api/v1/docflow/messages/{id}/papers"
tags: ["Docflow intake"]
---

# Разобрать входящий пакет по файлам

`GET /api/v1/docflow/messages/{id}/papers`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/docflow/messages/{id}/papers`
- 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`)

Бумаги пакета (ERP-2063). Пакет оператора — конверт, а не документ: в одном пакете вида «ДоговорВх» может лежать допсоглашение к договору и счёт. Поэтому вид определяется У КАЖДОГО содержательного файла (извещения и формализованные титулы не считаются): по тексту первой страницы, затем по имени файла, и только у пакета из одного файла — по слову оператора. Определённое — ПРЕДЛОЖЕНИЕ: человек сам выбирает вид каждого файла, в том числе когда разбор ничего не понял (kind пустой).

По каждому файлу: предложенный вид и откуда он взят (kind_source), у допсоглашения — назначение (purpose: terms меняет условия договора, deal — отдельная покупка или продажа), номер, дата, сумма и валюта, прочитанные из файла, номер и дата договора, который бумага назвала основанием, предложенный договор (parent: заведённая карточка или файл-договор этого же пакета), у счёта — номер ДС или спецификации из основания (base_deal) и бумага сделки этого же пакета, по которой он выставлен (deal), и карточка документооборота, уже заведённая по этому файлу. Рядом — договоры контрагента у юрлица пакета, из которых выбирают основание, открытые закупки поставщика у того же юрлица (purchases), куда кладут счёт, акт, УПД и накладную, закупка, в которой бумага уже лежит (order), контрагент, с которым свело зеркало, и число файлов, ещё ждущих решения. Только чтение: ничего не меняет. Завести карточки по решению человека — POST того же адреса.

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Tenant` string, required

## Response `200`

Пакет по файлам: вид, реквизиты, предложенный договор и заведённая карточка каждого файла

- DocflowPackagePapers: Входящий пакет, разобранный по файлам (ERP-2063): каждый файл — своя бумага со своей карточкой.
  - `message` string, uuid, required
  - `papers` DocflowPackagePaper[], required
    - `attachment` string, uuid, required
    - `name` string, required: Имя файла словами оператора
    - `kind` string, required: Вид уже заведённой карточки, иначе предложенный разбором. Пустая строка — разбор не понял, вид выбирает человек. У файла с карточкой — любой вид документооборота, у остальных — из перечня DocflowPackagePaperKind.
    - `kind_source` '' | 'text' | 'name' | 'operator' | 'card', required: Откуда взят вид: text — по тексту первой страницы, name — по имени файла, operator — по слову оператора (только у пакета из одного файла), card — у файла уже есть карточка; пусто — вид не определён
    - `number` string: Номер бумаги, прочитанный из файла
    - `date` string: Дата бумаги в форме ГГГГ-ММ-ДД, прочитанная из файла
    - `amount` string: Сумма строкой, как в бумаге: через число с плавающей точкой теряются копейки
    - `currency` string: Валюта, если бумага её назвала; пусто — не сказано
    - `base_number` string: Номер договора, который бумага назвала основанием: «к договору 332/26» у ДС, «Основание: Договор № 332/26» у счёта
    - `base_date` string: Дата договора-основания, если бумага её назвала
    - `parent` DocflowPackagePaperParent: Договор, под которым стоит бумага: уже заведённая карточка (card) или файл-договор этого же пакета (attachment), которому карточку заведёт та же команда. Назван ровно один из двух.
      - `card` string, uuid
      - `attachment` string, uuid
      - `title` string: Название договора для показа человеку: заголовок карточки или имя файла
    - `card` DocflowMessageFlowLink: Карточка документооборота в пакете — обратная сторона связи edo_links карточки. Пакет доказывает отправку и подпись, а содержание живёт в карточке; здесь видно, чьё содержание он вёз и чем карточка ему приходится.
      - `id` string, uuid, required
      - `document` string, uuid, required
      - `role` 'primary' | 'attachment' | 'basis', required: Чем карточка приходится конверту: основной документ, приложение или основание
      - `version` integer, 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: Вид документа внутреннего контура. Вид называет бумагу, а не учётную операцию: продажу и закупку из бумаги делают отдельные команды.
      - `status` 'draft' | 'registered' | 'archived', required
      - `title` string, required
      - `number` string, required
      - `date` string, date, required
      - `created_at` string, date-time, required
      - `external_attachment_id` string: Файл пакета, по которому заведена карточка (ERP-2063): идентификатор вложения у оператора (external_id), а без него — «id:» и id вложения. У пакета «ДС + счёт» своя карточка у каждого файла. Нет у карточки на весь пакет — так заводила приёмка до разбора по файлам
    - `order` DocflowPackagePaperOrder: Закупка, в которой лежит бумага пакета.
      - `id` string, uuid, required
      - `number` string
      - `title` string
    - `purpose` 'terms' | 'deal': Назначение допсоглашения: у заведённой карточки — её, иначе предложенное по тексту. terms — меняет условия договора, deal — отдельная покупка или продажа по договору. Только у вида amendment
    - `base_deal` string: Номер допсоглашения или спецификации, названный в основании счёта: «2» из «ДС № 2»
    - `deal` DocflowPackagePaperParent: Договор, под которым стоит бумага: уже заведённая карточка (card) или файл-договор этого же пакета (attachment), которому карточку заведёт та же команда. Назван ровно один из двух.
      - `card` string, uuid
      - `attachment` string, uuid
      - `title` string: Название договора для показа человеку: заголовок карточки или имя файла
  - `contracts` DocflowPackageContract[], required: Договоры этого контрагента у юрлица пакета: из них выбирают основание ДС и договор закупки
    - `id` string, uuid, required
    - `title` string, required
    - `number` string
    - `date` string: Дата договора в форме ГГГГ-ММ-ДД
  - `purchases` DocflowIntakePurchase[], required: Открытые закупки этого поставщика у юрлица пакета: в них кладут счёт, акт, УПД и накладную полем order команды. Пусто, когда контрагент не выбран или закупок нет
    - `order_id` string, uuid, required
    - `number` string, required: Номер закупки
    - `title` string
    - `date` string: Дата закупки ГГГГ-ММ-ДД
    - `amount` string, required: Заказано
    - `remaining` string, required: Осталось исполнить: заказано минус проведённые исполнения
    - `currency` string
    - `contract_number` string: Договор закупки
    - `contract_id` string, uuid
    - `deal_paper_id` string, uuid
    - `reason` 'linked' | 'amount' | 'open', required: Почему предложена: linked — бумага уже лежит в ней; amount — остаток равен сумме бумаги; open — бумага помещается в остаток
    - `pnl_item_required` boolean: Первому акту этой закупки нужна статья расходов: у закупки её нет, а операции заказа в финансах ещё нет. Приёмка без pnl_item_id ответит 409 docflow.edo.intake_pnl_item_required
    - `suggested_pnl_item` DocflowIntakePnlItem: Подсказка статьи расходов первого акта закупки (ERP-1810), по порядку: статья закупки, статья оплаты закупки или её счёта, статья последнего акта этого поставщика, правило разнесения контрагента. Только расходная статья ОПиУ в обращении.
      - `id` string, uuid, required
      - `name` string, required: Название статьи — так, как его назвал кабинет
      - `source` 'order' | 'payment' | 'last_act' | 'rule': Откуда подсказка: order — статья закупки; payment — статья её оплаты или оплаты её счёта; last_act — статья последнего акта поставщика; rule — правило разнесения контрагента
    - `goods` boolean: В закупке товар, и склад включён (ERP-1810): строки бумаги на товар закупки «Принять к учёту» заводит черновиком приёмки склада по закупке (проводит его склад), строки на услуги — актом поставщика
    - `warehouse_id` string, uuid
    - `warehouse_name` string: Название склада приёмки
  - `contact` string, uuid
  - `pending` integer, required: Сколько файлов ещё без карточки и не отмечены skip

## Other responses

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

---

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