Перейти к основному содержимому

API: акт сверки взаиморасчётов

POST /api/v1/documents/asv

Формирует печать акта сверки взаимных расчётов между организацией (seller) и контрагентом (buyer) без сохранения в кабинете. Возвращает PDF или XLSX.

Список шаблонов: GET /api/v1/documents/asv/templates

Пример​

{
"format": "pdf",
"template": 440,
"response": "json",
"number": "7",
"date": "2026-03-31",
"currency": "643",
"period_from": "2026-01-01",
"period_to": "2026-03-31",
"incoming_debit": "1000",
"incoming_credit": "",
"act_place": "г. Москва",
"agreement": "yes",
"contract": "Договор № 5 от 10.01.2026",
"print_stamp": true,
"seller": {
"name": "ООО Ромашка",
"inn": "7701234567",
"director": "Иванов Иван Иванович",
"director_post": "Генеральный директор",
"stamp_url": "https://example.com/stamp.png",
"director_sign": "https://example.com/director.png"
},
"buyer": {
"name": "ООО Василёк",
"inn": "7707654321",
"director": "Петров Пётр Петрович",
"director_post": "Генеральный директор"
},
"operations": [
{
"title": "Акт оказания услуг",
"number": "3",
"date": "2026-02-01",
"debit": "5000"
},
{
"title": "Платёжное поручение",
"number": "12",
"date": "2026-02-05",
"credit": "2000"
}
]
}

В акте сверки нет товарных позиций, поэтому items передавать не нужно: строки таблицы задаются в operations.

Основные поля​

ПолеОписание
formatpdf (по умолчанию) или xlsx
templateкод печатной формы, по умолчанию 440
number, dateномер и дата акта (также принимаются doc_number, doc_date)
period_fromначало периода сверки Y-m-d
period_toконец периода сверки Y-m-d; эта дата стоит в строке «Сальдо на …» и в тексте о задолженности (печатается как «31 марта 2026»)
incoming_debitвходящее сальдо по дебету: долг контрагента перед организацией на начало периода
incoming_creditвходящее сальдо по кредиту: долг организации перед контрагентом на начало периода
operationsоперации за период (см. Операции)
act_placeместо составления акта, печатается справа от даты
agreementyes — заполнить колонку «По данным контрагента» зеркальными данными; no (по умолчанию) — оставить её пустой для заполнения контрагентом. Принимаются также true/false, 1/0
contractдоговор (алиас dogovor); сохраняется в данных документа, в бланке 440 не выводится
sellerорганизация, составляющая акт (левая колонка)
buyerконтрагент (правая колонка)
currencyкод валюты, по умолчанию 643; символ валюты выводится в тексте о задолженности
print_stampвывести печать и подпись организации
number_formatотображение сумм: apostrophe (1'500.00) или space (1 500,00); (см. Обзор)
responsefile или json

Суммы (incoming_debit, incoming_credit, operations.*.debit, operations.*.credit) передаются числом или строкой с точкой, без знака минус. Пустое значение считается нулём.

Операции​

Каждая строка operations — одна операция за период. Для организации это строка в левой колонке. При agreement: yes та же операция печатается в правой колонке, но с переставленными дебетом и кредитом.

ПолеОписание
titleнаименование операции или документа, например «Акт оказания услуг»
numberномер документа; добавляется к наименованию как «№ 3»
dateдата документа Y-m-d; добавляется к наименованию как «от 1 февраля 2026 г.»
debitдебет: отгрузка, оказанные услуги, выполненные работы (увеличивает долг контрагента)
creditкредит: оплата от контрагента (уменьшает его долг)

Строка в печати собирается так: title, затем № number, затем от date г.. Например, {"title": "Акт оказания услуг", "number": "3", "date": "2026-02-01"} печатается как «Акт оказания услуг № 3 от 1 февраля 2026 г.». Если наименование уже целиком передано в title (вместе с номером и датой), повторно номер и дата не добавятся.

Строки печатаются в том порядке, в котором переданы. Отдельной колонки «Дата» в таблице нет.

Сальдо и задолженность​

Сервер сам считает обороты и конечное сальдо, присланные итоги не используются:

  1. Обороты за период — сумма debit и сумма credit по всем операциям.
  2. Сальдо на конец периода = (incoming_debit + обороты по дебету) − (incoming_credit + обороты по кредиту).
  3. Если результат больше нуля, сальдо печатается в колонке «Дебет», если меньше — в колонке «Кредит». Если долга нет, в колонке «Дебет» печатается 0.

Под таблицей выводится текст о задолженности:

  • дебетовое сальдо или ноль: «на {period_to} задолженность в пользу {seller.name} {сумма} {валюта}»;
  • кредитовое сальдо: «на {period_to} задолженность в пользу {buyer.name} {сумма} {валюта}».

При agreement: yes для колонки контрагента всё зеркально: его входящее сальдо — это (incoming_credit, incoming_debit), его дебет — наш кредит, и текст о задолженности строится с его стороны.

Для примера выше:

  • входящее сальдо: дебет 1000
  • обороты: дебет 5000, кредит 2000
  • сальдо на 31 марта 2026: дебет 4000
  • текст: «на 31 марта 2026 задолженность в пользу ООО Ромашка 4'000.00 руб.»

Стороны​

Для печати акта сверки из seller и buyer используются:

ПолеОписание
nameнаименование: шапка «между … и …», вступительный текст, подписи
directorФИО подписанта (расшифровка подписи и вступительный текст)
director_postдолжность подписанта (алиасы director_status, director_caption)
stamp / stamp_urlпечать организации (только seller)
director_signподпись руководителя организации (только seller)

Остальные реквизиты (inn, kpp, адрес, банк) принимаются как у других документов, но в бланке 440 не печатаются.

Вступительный текст собирается автоматически: «Мы, нижеподписавшиеся, {seller.director_post} {seller.name} {seller.director} с одной стороны, и {buyer.director_post} {buyer.name} {buyer.director}, с другой стороны, составили настоящий акт сверки…». Незаполненные части заменяются линией для подписи от руки.

Печать и подпись организации выводятся только при print_stamp или если переданы изображения подписи/печати.

Шаблоны​

templateНазвание
440Акт сверки взаиморасчётов

Актуальный список всегда в GET /api/v1/documents/asv/templates.

Пример ответа шаблонов:

{
"data": [
{ "id": 440, "name": "Акт сверки взаиморасчётов" }
]
}

Ответ JSON​

При "response": "json":

{
"data": {
"id": null,
"type": "asv",
"number": "7",
"date": "2026-03-31",
"format": "pdf",
"template": 440,
"filename": "Акт сверки взаиморасчётов № 7 от 31 марта 2026 г.pdf",
"url": "https://example.com/temp-file/....pdf",
"totals": {
"sum": "4000.00",
"vat": [],
"balance": {
"incoming_debit": "1000.00",
"incoming_credit": "0.00",
"turnover_debit": "5000.00",
"turnover_credit": "2000.00",
"closing_debit": "4000.00",
"closing_credit": "0.00",
"closing_side": "debit"
}
}
},
"meta": {
"limit": 100,
"used": 1,
"remaining": 99
}
}
ПолеОписание
data.totals.sumсумма конечного сальдо (задолженности) без знака
data.totals.vatвсегда пустой массив: НДС в акте сверки не считается
data.totals.balance.incoming_debit, incoming_creditвходящее сальдо
data.totals.balance.turnover_debit, turnover_creditобороты за период
data.totals.balance.closing_debit, closing_creditсальдо на конец периода; заполнена только одна сторона
data.totals.balance.closing_sidedebit — долг контрагента перед организацией (или ноль), credit — долг организации перед контрагентом
metaдневной лимит API

Заголовки ответа: X-RateLimit-Limit, X-RateLimit-Remaining.

Ошибки​

КодПричина
422неверные данные, например нечисловой debit/credit, отрицательная сумма, дата не в формате даты или неизвестный template
429исчерпан дневной лимит

Пример ошибки валидации:

{
"message": "Переданные данные некорректны.",
"errors": {
"operations.0.debit": ["..."]
}
}