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.
Основные поля
| Поле | Описание |
|---|---|
format | pdf (по умолчанию) или 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 | место составления акта, печатается справа от даты |
agreement | yes — заполнить колонку «По данным контрагента» зеркальными данными; no (по умолчанию) — оставить её пустой для заполнения контрагентом. Принимаются также true/false, 1/0 |
contract | договор (алиас dogovor); сохраняется в данных документа, в бланке 440 не выводится |
seller | организация, составляющая акт (левая колонка) |
buyer | контрагент (правая колонка) |
currency | код валюты, по умолчанию 643; символ валюты выводится в тексте о задолженности |
print_stamp | вывести печать и подпись организации |
number_format | отображение сумм: apostrophe (1'500.00) или space (1 500,00); (см. Обзор) |
response | file или 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 (вместе с номером и датой), повторно номер и дата не добавятся.
Строки печатаются в том порядке, в котором переданы. Отдельной колонки «Дата» в таблице нет.
Сальдо и задолженность
Сервер сам считает обороты и конечное сальдо, присланные итоги не используются:
- Обороты за период — сумма
debitи суммаcreditпо всем операциям. - Сальдо на конец периода = (
incoming_debit+ обороты по дебету) − (incoming_credit+ обороты по кредиту). - Если результат больше нуля, сальдо печатается в колонке «Дебет», если меньше — в колонке «Кредит». Если долга нет, в колонке «Дебет» печатается
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_side | debit — долг контрагента перед организацией (или ноль), credit — долг организации перед контрагентом |
meta | дневной лимит API |
Заголовки ответа: X-RateLimit-Limit, X-RateLimit-Remaining.
Ошибки
| Код | Причина |
|---|---|
422 | неверные данные, например нечисловой debit/credit, отрицательная сумма, дата не в формате даты или неизвестный template |
429 | исчерпан дневной лимит |
Пример ошибки валидации:
{
"message": "Переданные данные некорректны.",
"errors": {
"operations.0.debit": ["..."]
}
}