API: товарная накладная ТОРГ-12
POST /api/v1/documents/torg12
Формирует печать товарной накладной (без сохранения в кабинете) и возвращает PDF или XLSX.
Список шаблонов: GET /api/v1/documents/torg12/templates
Пример
{
"format": "pdf",
"template": 300,
"response": "json",
"number": "15",
"date": "2026-08-23",
"seller": {
"name": "ООО Ромашка",
"inn": "7701234567",
"kpp": "770101001",
"okpo": "12345678",
"address": "г. Москва",
"phone": "495-000-00-00",
"director": "Иванов Иван Иванович",
"director_post": "Генеральный директор",
"accountant": "Сидорова Анна",
"stamp_url": "https://example.com/stamp.png",
"director_sign": "https://example.com/director.png",
"accountant_sign": "https://example.com/accountant.png",
"bank": {
"name": "ПАО Сбербанк",
"bik": "044525225",
"location": "г. Москва",
"correspondent_account": "30101810400000000225",
"checking_account": "40702810900000000001"
}
},
"buyer": {
"name": "ООО Покупатель",
"inn": "7707654321",
"address": "г. Москва"
},
"items": [
{
"name": "Сплит-система",
"product_code": "ABC-1",
"unit": "шт",
"quantity": 2,
"price": 10000,
"vat": 20,
"packaging": "кор.",
"places": 2,
"weight_gross": 15
}
]
}
items можно передать объектом с числовыми ключами. Пустой массив ([]) не считается ошибкой: в таблицу попадёт одна пустая строка.
Основные поля
| Поле | Описание |
|---|---|
format | pdf (по умолчанию) или xlsx |
template | код печатной формы, по умолчанию 300 |
number, date | номер и дата; если не переданы, остаются пустыми |
seller, buyer | реквизиты сторон (поставщик и плательщик) |
items | позиции; пустой массив печатает одну пустую строку |
currency | код валюты, по умолчанию 643 |
print_stamp | печать и подписи |
decimal_places | знаков после запятой в печати: 0–3; (алиасы decimals, znaki; см. Обзор) |
number_format | отображение сумм: apostrophe (1'500.00) или space (1 500,00); (см. Обзор) |
subdivision | структурное подразделение |
basis | основание (договор и т.п.) |
basis_number, basis_date | номер и дата основания |
transport_number, transport_date | транспортная накладная |
vat_correct | ручная сумма НДС в итоговой строке, например 1135.65. Если не передана, НДС считается по позициям |
response | file или json |
Шаблоны
template | Название |
|---|---|
300 | ТОРГ-12 |
Актуальный список всегда в GET /api/v1/documents/torg12/templates.
Позиция
| Поле | Описание |
|---|---|
name | наименование |
quantity | обязательно, кроме пустой строки |
price | обязательно, кроме пустой строки |
vat | ставка НДС |
unit | ед. изм. |
unit_code | код единицы измерения |
product_code | код товара |
packaging | вид упаковки |
qty_in_place | количество в одном месте |
places | количество мест |
weight_gross | масса брутто |
vat_value | игнорируется, считается на сервере |
sum | игнорируется, считается на сервере |
Строки is_header и is_subtotal принимаются, но в печатную форму ТОРГ-12 не выводятся.
Для примера выше сумма будет 20000.00, НДС 3333.33.
Грузоотправитель и грузополучатель
По умолчанию грузоотправитель — продавец (org), грузополучатель — покупатель (buyer).
"shipper": {
"type": "other",
"name": "ООО Склад",
"inn": "7701111222",
"kpp": "770101001",
"okpo": "87654321",
"address": "г. Москва",
"phone": "495-111-11-11",
"bank": {
"name": "ПАО Сбербанк",
"bik": "044525225",
"checking_account": "40702810900000000002"
}
},
"consignee": {
"type": "other",
"name": "ООО Филиал",
"inn": "7703333444",
"address": "г. Казань"
}
shipper.type: org или other.
consignee.type: buyer или other.
Передача груза
{
"cargo_allowed_by": "Иванов И.И.",
"cargo_allowed_caption": "Кладовщик",
"cargo_released_by": "Петров П.П.",
"cargo_released_caption": "Экспедитор",
"cargo_accepted_by": "Сидоров С.С.",
"cargo_accepted_caption": "Кладовщик",
"cargo_received_by": "Кузнецов К.К.",
"cargo_received_caption": "Директор",
"shipment_date": "2026-08-23",
"receipt_date": "2026-08-24",
"receipt_same_as_shipment": false
}
| Поле | Описание |
|---|---|
cargo_allowed_by | отпуск груза разрешил (Ф.И.О.) |
cargo_allowed_caption | отпуск груза разрешил (должность); пусто — должность руководителя |
cargo_released_by | отпуск груза произвел (Ф.И.О.) |
cargo_released_caption | отпуск груза произвел (должность); пусто — должность руководителя |
cargo_accepted_by | груз принял (Ф.И.О.) |
cargo_accepted_caption | груз принял (должность); пусто — должность руководителя покупателя |
cargo_received_by | груз получил (Ф.И.О.) |
cargo_received_caption | груз получил (должность); пусто — должность руководителя покупателя |
shipment_date | дата отгрузки |
receipt_date | дата получения |
receipt_same_as_shipment | дата получения совпадает с датой отгрузки (true) |