Создание счетов
Метод для создания или обновления счетов на оплату в Цифре из 1С.
Запрос
POST /api/invoice/create
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
SecretKey |
string | Да | Секретный ключ |
Data |
array | Да | Массив счетов для создания/обновления
Структура Data[] |
Структура Data[]
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
Guid |
string | Да | Идентификатор счета в 1C |
CompanyGuid |
string | Да | Идентификатор контрагента |
CompanyName |
string | Да | Название компании |
Date |
datetime | Нет | Дата счета |
Status |
string | Нет | Статус счета. Возможные значения: "Оплачен", "Оплачен частично", "Отменен". По умолчанию: "Не оплачен" |
ContractGuid |
string | Нет | Идентификатор договора |
ContractName |
string | Нет | Название договора |
Sum |
float | Нет | Сумма счета |
Products |
array | Нет | Продукция в счете с ценами
Структура Products[] |
Структура Products[]
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
Guid |
string | Да | Идентификатор продукции в 1C |
Name |
string | Да | Наименование товара |
Price |
float | Нет | Цена товара (по умолчанию 0). Поддерживается формат с запятой или точкой |
Quantity |
float | Нет | Количество (по умолчанию 0). Поддерживается формат с запятой или точкой |
Sum |
float | Нет | Сумма товара (по умолчанию 0). Поддерживается формат с запятой или точкой. Используется для автоматического определения VatInPrice |
VatRate |
float | Нет | Процент НДС (по умолчанию 0). Может быть указан с символом процента (например, "20%") или без него (например, 20) |
VatMount |
float | Нет | Сумма НДС (по умолчанию 0). Поддерживается формат с запятой или точкой. Используется для автоматического определения VatInPrice |
VatInPrice |
boolean | Нет | Включен ли НДС в цену. Определяется автоматически, если не указано
Подробнее об автоопределении |
Автоматическое определение VatInPrice
Если поле VatInPrice не указано в товарах счета, система автоматически определяет его значение на основе математических расчетов:
НДС не включен в цену (VatInPrice = false):
Когда Sum ≈ Price × Quantity (с погрешностью 0.01)
НДС включен в цену (VatInPrice = true):
Когда Sum ≈ (Price × Quantity) + VatMount (с погрешностью 0.01)
Примеры автоматического определения:
Пример 1: НДС не включен
{
"Price": 1000,
"Quantity": 2,
"Sum": 2000,
"VatRate": 20,
"VatMount": 400
}
// Результат: VatInPrice = false, так как Sum = Price × Quantity = 2000
Пример 2: НДС включен
{
"Price": 1000,
"Quantity": 2,
"Sum": 2400,
"VatRate": 20,
"VatMount": 400
}
// Результат: VatInPrice = true, так как Sum = (Price × Quantity) + VatMount = 2400
Пример запроса
{
"SecretKey": "2akgzOCYsAxLwpNl",
"Data": [
{
"Guid": "22db4291-154f-11ec-973e-244bfecb4e0a",
"CompanyGuid": "33ab5192-265g-22fc-a84f-355cgfdc5f1b",
"CompanyName": "ООО Поставки",
"Date": "2024-03-27 10:45:01",
"Status": "Оплачен",
"ContractGuid": "44cd6203-376h-33gd-b95g-466dghde6g2c",
"ContractName": "№11 от 29.04.2022",
"Sum": 15000,
"Products": [
{
"Guid": "55de7314-487i-44he-c06h-577ehife7h3d",
"Name": "Бетон М150",
"Quantity": 4,
"Price": 4000,
"Sum": 16000,
"VatRate": 20,
"VatMount": 3200,
"VatInPrice": false
}
]
}
]
}
Ответ
Коды ответов
| Код | Описание |
|---|---|
201 |
Успешное создание. Все данные обработаны без ошибок (success: true) |
200 |
Частичный успех. Часть данных обработана, но есть ошибки валидации (success: true) |
400 |
Неверный тип данных. Data должен быть массивом (success: false) |
403 |
Секретный ключ не найден (success: false) |
500 |
Ошибка сервера. Внутренняя ошибка обработки (success: false) |
Успешный ответ (201)
{
"success": true,
"message": "Создано счетов: 2",
"data_id": 123
}
Ответ с ошибками (200)
{
"success": true,
"message": "Создано счетов: 1. Ошибок GUID счетов: 1. Ошибок названия компании: 1. Ошибок создания компании: 1. Товаров без GUID: 2. Товаров без названия: 1",
"data_id": 123
}
Ошибка валидации данных (400)
{
"success": false,
"message": "Неверный тип данных",
"data_id": 123
}
Ошибка авторизации (403)
{
"success": false,
"message": "Секретный ключ не найден",
"data_id": null
}
Ошибка сервера (500)
{
"success": false,
"message": "Произошла ошибка: подробное описание ошибки",
"data_id": 123
}
Примечания
- Обязательные поля счета:
Guid,CompanyName,CompanyGuid - Обязательные поля товара:
Guid,Name - Перед созданием счета система автоматически создает или находит компанию по
CompanyNameиCompanyGuid - Если указан
ContractGuid, система ищет существующий договор или создает новый с указаннымContractName - Счет связывается с договором через поле
parent_id, если договор найден или создан - Валидация товаров: товары без обязательных полей (
Guid,Name) будут пропущены, но счет будет создан. Информация о пропущенных товарах отображается в ответе - Если поле
VatInPriceне указано, оно определяется автоматически на основе математических расчетов - Не отправляйте за раз более 2000 счетов или более 1 МБ данных