Цифра ↔ 1С

Создание счетов

Метод для создания или обновления счетов на оплату в Цифре из 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
}

Примечания

См. также