Перейти к содержанию

kkt/receipt - Формирование кассового чека

  • HTTP-метод: POST
  • URL: /kkt/receipt
  • Форма взаимодействия: Сервер-сервер
  • Формат тела запроса: application/json
  • Аутентификация: HTTP Basic Auth (PublicId / ApiSecret)
  • Назначение: формирование и пробитие кассового чека (54-ФЗ) по ранее созданной транзакции. Формат запроса соответствует объекту Receipt CloudPayments.

URL

1
https://cloud.wallet.kvell.group/kkt/receipt
1
/kkt/receipt

Структура запроса

Верхний уровень

Поле Тип Обяз. Описание
Inn str ИНН продавца.
Type str Признак расчёта: Income, IncomeReturn, Expense, ExpenseReturn.
CustomerReceipt object Состав чека — см. ниже.
InvoiceId str ✔* Номер заказа/счёта на стороне мерчанта. По нему чек связывается с ранее проведённой транзакцией.
AccountId str Идентификатор пользователя.

* Формально необязателен в схеме, но фактически обязателен: сервис ищет транзакцию по InvoiceId, и без неё чек сформировать не получится.

CustomerReceipt

Поле Тип Обяз. Описание
Items array Позиции чека — см. ниже.
Amounts object Сумма платежа: одно из Electronic, AdvancePayment, Credit, Provision.
TaxationSystem int Система налогообложения: 0 общая, 1 УСН доход, 2 УСН доход-расход, 3 ЕНВД, 4 ЕСХН, 5 патент. По умолчанию 0.
Email str E-mail покупателя для отправки чека.
Phone str Телефон покупателя (формат +71234567890) для отправки ссылки на чек.
CalculationPlace str Место осуществления расчёта.
CustomerInfo str Наименование организации или ФИО покупателя.
CustomerInn str ИНН покупателя.
isBso bool true, если чек является бланком строгой отчётности.
CashierName str Имя кассира. Если не передано — берётся из настроек кассира в ЛК.
AdditionalReceiptInfos array Дополнительная информация общая для чека (многострочная).
NonCashPayments array Сведения о безналичной оплате (тег ОФД 1234).

CustomerReceipt поддерживает и остальные реквизиты 54-ФЗ (маркировка, признак агента, отраслевые реквизиты, данные покупателя для документов старше ФФД 1.2 и т.д.) — полный список соответствует официальной схеме Receipt CloudPayments.

Items[]

Поле Тип Обяз. Описание
Label str Наименование товара или услуги.
Price decimal Цена за единицу.
Quantity str Количество.
Amount decimal Price * Quantity с учётом скидки.
Vat int Ставка НДС: 0, 5, 7, 10, 20, 22, 105, 110, 120, 122.
Method int Способ расчёта: 1 предоплата 100%, 2 предоплата, 3 аванс, 4 полный расчёт, 5 частичный расчёт и кредит, 6 передача в кредит, 7 оплата кредита.
Object int Предмет расчёта: товар, работа, услуга, платёж и т.д. (полный список — тег ОФД 1212).
MeasurementUnit str Единица измерения.
Excise int Сумма акциза.

Позиция также поддерживает поля для маркированного товара (RawMarkCode, MarkPartQuantity, ProductCodeData), данные агента (AgentSign, AgentData, PurveyorData) и отраслевые реквизиты — полный список соответствует официальной схеме Item CloudPayments.

Структура ответа

Поле Тип Описание
Success bool Результат запроса.
Message string Описание ошибки.
Warning string Предупреждение, если чек пробит с замечаниями.
WarningCodes string Коды предупреждений.
Model.Id string Идентификатор чека.
Model.ErrorCode int Код ошибки, если чек не удалось пробить.
Model.ReceiptLocalUrl string Ссылка на PDF чека.

Пример запроса

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "Inn": "7710140679",
  "Type": "Income",
  "InvoiceId": "1234567",
  "CustomerReceipt": {
    "Items": [
      {
        "Label": "Оплата товаров в example.com",
        "Price": 100,
        "Quantity": "1",
        "Amount": 100,
        "Vat": 20
      }
    ],
    "TaxationSystem": 0,
    "Amounts": {
      "Electronic": 100
    },
    "Email": "user@example.com"
  }
}

Пример ответов

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
  "Success": true,
  "Message": null,
  "Warning": null,
  "WarningCodes": null,
  "Model": {
    "Id": "6811d4a17bab1c4b44c19371",
    "ErrorCode": null,
    "ReceiptLocalUrl": "https://storage.yandexcloud.net/.../receipt.pdf"
  }
}
1
2
3
4
{
  "Success": false,
  "Message": "<описание причины отказа>"
}

Примечания

  • Транзакция с указанным InvoiceId должна существовать в системе — чек формируется на основе данных ранее созданной транзакции, а не как самостоятельный документ.
  • Запрос идемпотентен по заголовку X-Request-ID — см. Обзор.