---
title: "Создать типизированный документ взаиморасчётов"
method: POST
path: "/api/v1/finance/settlements/documents"
tags: ["Finance settlements"]
---

# Создать типизированный документ взаиморасчётов

`POST /api/v1/finance/settlements/documents`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/finance/settlements/documents`
- 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

Вид документа определяет обязательные связи и сумму; продажи и закупки требуют статью ОПиУ, распределение оплаты — обязательство и оплату, зачёт аванса — аванс и обязательство.
Документ без юрлица принадлежит бизнесу: его передают полем `business_id` в теле или параметром `business`; разные значения в теле и параметре — ответ 400.
Читает `Idempotency-Key` — повтор того же запроса с тем же ключом отдаёт созданный документ, а не второй. Продажа и закупка вдобавок узнают повтор по внешнему ключу `source_system` + `source_ref` + `external_id`, но его знает только интеграция, которая его ведёт; остальные виды документов без заголовка ничем от дубля не защищены.

## Query parameters

- `business` string, uuid

## Headers

- `X-Tenant` string, required
- `Idempotency-Key` string

## Request body

- FinanceSettlementDocumentCreate
  - `type_key` 'finance_settlement_baseline' | 'finance_receivable_opening' | 'finance_receivable' | 'finance_payable_opening' | 'finance_payable' | 'finance_advance' | 'finance_advance_offset' | 'finance_sale' | 'finance_purchase' | 'finance_payment_allocation' | 'finance_sale_return' | 'finance_advance_contact_transfer', required
  - `number` string
  - `date` string, date
  - `company_id` string, uuid
  - `business_id` string, uuid: Бизнес документа без юрлица; то же, что параметр business, при расхождении — 400
  - `contact_id` string, uuid, required
  - `currency` string, required
  - `amount` string: Положительная decimal string для долгов, авансов, сделок, зачёта и распределения
  - `due_date` string, date: Обязательна для долга, продажи и закупки
  - `obligation_id` string, uuid: Обязательно для зачёта аванса, распределения оплаты и возврата по продаже (продажа-основание)
  - `payment_id` string, uuid: Оплата-источник аванса либо обязательная оплата для распределения
  - `sources` FinanceSettlementSourceAllocationInput[]
    - `document_id` string, uuid, required
    - `amount` string, required: Положительная decimal string; сумма строк должна совпасть с amount документа
  - `advance_id` string, uuid: Обязателен для зачёта аванса и переноса аванса между контрагентами (finance_advance_contact_transfer): переносимый аванс; контрагент документа — получатель, источник — тот, за кем числится остаток
  - `order_id` string, uuid: Продажа или закупка: у аванса — его заказ, у переноса аванса между контрагентами — заказ получателя; пусто — без заказа
  - `pnl_item_id` string, uuid: Обязательна для продажи и закупки
  - `project_id` string, uuid: Путешествие или проект продажи и закупки
  - `side` 'receivable_advance' | 'payable_advance': Обязательна только для аванса
  - `stock_return_id` string, uuid: Только возврат по продаже: складской возврат от покупателя по этой продаже; без amount сумма — доля продажи по количеству
  - `comment` string
  - `source_system` string: Ключ идемпотентности сделки (только продажа и закупка): система-источник — учётная система клиента или ключ стороннего приложения
  - `source_ref` string: Какая именно база/кабинет клиента внутри source_system; пусто — единственный источник
  - `external_id` string: Идентификатор сделки в source_system; повтор того же (source_system, source_ref, external_id) возвращает уже созданный документ вместо второго
  - `vat_amount` string: Только закупка: «в т.ч. НДС» документа поставщика (ERP-484, подшаг 5.3). Обязательна, если на дату бизнес очищает суммы и юрлицо принимает налог к вычету; 0 — налог не выделен. Вне периода непустое значение — 400
  - `supplier_document` SupplierDocument: Номер и дата документа поставщика (ERP-484, подшаг 5.3): по ним входящий НДС сверяется с книгой покупок. Оба поля необязательны
    - `number` string
    - `date` string, date
  - `lines` FinanceSaleLineInput[]: Только продажа (ERP-1265): строки товаров и услуг. Сумма продажи — сумма строк; переданная рядом amount обязана с ней совпасть. Налог считается по строке — по виду товара строки и режиму юрлица на дату
    - `product_id` string, uuid: Товар строки; без него строка обязана назвать name
    - `unit_id` string, uuid: Единица измерения строки
    - `unit` string: Единица словами, когда справочной нет
    - `name` string: Наименование строки; у строки с товаром необязательно — его даёт карточка товара
    - `quantity` string, required: Положительная decimal string
    - `price` string, required: Цена единицы в режиме prices_include_vat документа
    - `discount` string: Скидка строки суммой, в том же режиме цены
    - `kind` '1' | '3': ПрТовРаб формата ФНС: 1 товар, 3 услуга; пусто — товар, если назван товар, иначе услуга
  - `prices_include_vat` boolean: Только вместе со строками: цены строк включают налог (умолчание) либо налог начисляется сверху

## Response `201`

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

- CoreDocument
  - `id` string, uuid, required
  - `type_id` string, uuid, required
  - `type_key` string, required
  - `type_name` string, required
  - `number` string, required
  - `date` string, date, required
  - `status` 'draft' | 'posted' | 'cancelled', required
  - `basis_type` string, uuid, required
  - `basis_id` string, uuid, required
  - `basis_number` string, required
  - `entity_refs` object, required
  - `payload` object, required
  - `comment` string, required
  - `is_marked_deleted` boolean, required
  - `created_by` integer, nullable, required
  - `created_by_name` string, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `posted_at` string, required
  - `cancelled_at` string, required
  - `custom` object: Значения своих полей кабинета (графы вида core.document.<ключ вида>). Отдаёт карточка документа; списки поле не несут

## Other responses

- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `404`: Запись не найдена или не видима текущему пользователю
- `422`: Idempotency-Key уже использован для другого запроса: другое тело, другой адрес или другая операция. Код `idempotency.key_mismatch`; сохранённый ответ не раскрывается. Для новой команды берут новый ключ.
- `503`: Раздел расчётов недоступен (`internal.unavailable`) либо недоступно хранилище ключей идемпотентности (`idempotency.unavailable`). Во втором случае команда не выполнялась; `Retry-After` говорит, когда повторить.

---

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