https://lovischet.ru/api/openapi.yaml · /api/openapi.jsonlvs_demo_tokenDEMOx-api-key: <API ключ команды>Authorization: Bearer <API ключ> - альтернативный способ.?api_key=<API ключ> - fallback для чтения и отладки.x-tenant-id обычно не нужен для обычного team API key и используется в основном для legacy/fallback сценариев.401 с кодом api_key_inactive. Если передан demo token, API работает в dry-run режиме.| Метод | Назначение |
|---|---|
GET /api/v1/ref/catalog | Справочники для подстановки. |
GET /api/v1/invoices | Список документов команды. Query: q, date_from, date_to, limit, offset. |
GET /api/v1/invoices/{public_id} | Карточка документа, статусы, validation, metadata и share links. |
POST /api/v1/invoices | Создать документ в режиме editor_mode=api. Поддерживает root object или поле invoice. |
PUT /api/v1/invoices/{public_id} | Только полный update через поле invoice. Partial update не поддерживается. |
public_share_enabled, show_payment_qr)seller, buyer, manager, buyer_contact200 | Успешно |
207 | Документ сохранен, часть писем не отправлена |
400 | Ошибка данных |
401 | Проблема авторизации API (api_key_missing, api_key_invalid, api_key_inactive, api_key_over_tariff_limit) |
403 | Проблема scope/продавца/тарифа (tenant_scope_not_resolved, seller_org_not_allowed) |
404 | Документ не найден |
409 | Конфликт public_id, GUID в PUT или ограничение отправки |
413 | JSON payload слишком большой |
429 | Rate limit по IP, ключу или команде |
500 | Внутренняя ошибка |
5 МБ.413 payload_too_large.PUT partial update не поддерживается: нужен полный объект документа в поле invoice.share_gate показывает, доступна ли внешняя публикация сейчас, а notifications.blocked_by_service_gate - были ли письма остановлены сервисом.buyer_edo_id, после сохранения запускается синхронизация входящих связей по ЭДО.10 rps.429 и retry_after_sec.1С часто использует GET с параметрами для чтения, и POST для создания/обновления.
GET https://lovischet.ru/api/v1/invoices/DEMO?api_key=lvs_demo_token
// 1С (BSL) - POST /api/v1/invoices
Перем БазаURL, Токен, Соединение, Запрос, ТелоJSON, Ответ;
БазаURL = "https://lovischet.ru";
Токен = "lvs_demo_token";
Соединение = Новый HTTPСоединение(СтрЗаменить(БазаURL, "https://", ""), 443,,,,,Истина);
Запрос = Новый HTTPЗапрос("/api/v1/invoices");
Запрос.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
Запрос.Заголовки.Вставить("x-api-key", Токен);
ТелоJSON =
"{" +
" \"invoice\": {" +
" \"number\": \"1C-DEMO-001\"," +
" \"date\": \"2026-03-05\"," +
" \"currency\": \"RUB\"," +
" \"invoice_direction\": \"outgoing\"," +
" \"buyer\": {\"name\": \"ООО Покупатель\"}," +
" \"seller\": {\"name\": \"ООО Поставщик\", \"inn\": \"7700000000\"}," +
" \"items\": [{\"name\": \"Услуга\",\"qty\": 1,\"price\": 1000}]" +
" }," +
" \"notify_recipients\": Ложь" +
"}";
Запрос.УстановитьТелоИзСтроки(ТелоJSON, КодировкаТекста.UTF8);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Сообщить(Ответ.ПолучитьТелоКакСтроку());
<?php
$baseUrl = 'https://lovischet.ru';
$apiKey = 'lvs_demo_token';
$payload = [
'invoice' => [
'number' => 'PHP-DEMO-001',
'date' => '2026-03-05',
'currency' => 'RUB',
'invoice_direction' => 'outgoing',
'buyer' => ['name' => 'ООО Покупатель', 'email' => 'buyer@example.com'],
'seller' => ['name' => 'ООО Поставщик', 'inn' => '7700000000'],
'items' => [
['name' => 'Услуга', 'qty' => 2, 'unit' => 'шт', 'price' => 1700, 'vat_pct' => 20]
],
// медиа через API не передаются
'show_payment_qr' => true
],
'notify_recipients' => false,
];
$ch = curl_init($baseUrl . '/api/v1/invoices');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json; charset=utf-8',
'x-api-key: ' . $apiKey,
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_RETURNTRANSFER => true,
]);
$result = curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "HTTP: $code\n";
echo $result;
import requests
base_url = "https://lovischet.ru"
api_key = "lvs_demo_token"
headers = {
"x-api-key": api_key,
"Content-Type": "application/json; charset=utf-8",
}
payload = {
"invoice": {
"number": "PY-DEMO-001",
"date": "2026-03-05",
"currency": "RUB",
"invoice_direction": "outgoing",
"buyer": {"name": "ООО Покупатель", "email": "buyer@example.com"},
"seller": {"name": "ООО Поставщик", "inn": "7700000000"},
"items": [
{"name": "Сервис", "qty": 10, "unit": "мес", "price": 1700, "vat_pct": 20}
],
"show_payment_qr": True,
},
"notify_recipients": False,
}
r = requests.post(f"{base_url}/api/v1/invoices", headers=headers, json=payload, timeout=45)
print(r.status_code)
print(r.text)
d = requests.get(f"{base_url}/api/v1/invoices/DEMO", headers=headers, timeout=30)
print(d.status_code)
print(d.text)
curl -X POST "https://lovischet.ru/api/v1/invoices" \
-H "Content-Type: application/json" \
-H "x-api-key: lvs_demo_token" \
-d '{
"invoice": {
"number": "DEMO-2026-API-001",
"date": "2026-03-05",
"currency": "RUB",
"invoice_direction": "outgoing",
"public_share_enabled": true,
"information_system": "1С",
"seller": {
"name": "ООО Демо Поставщик",
"inn": "7700000000",
"bank_name": "ПАО Сбербанк",
"bik": "044525225",
"account": "40702810900000012345"
},
"buyer": {
"name": "ООО Демо Покупатель",
"inn": "7800000000",
"email": "demo.buyer@lovischet.ru"
},
"items": [
{"name":"Лицензия","qty":10,"unit":"мес","price":1700,"vat_pct":20}
],
"api_recipients": [
{"email":"director@example.com","name":"Иванов И.И.","position":"Директор"},
{"email":"buh@example.com","name":"Петрова А.А.","position":"Бухгалтер"}
],
"show_payment_qr": true
},
"notify_recipients": false
}'