Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

API для работы с кассовыми провайдерами LifePay/Атол Онлайн/Комтет касса

Для работы в сети кассового провайдера нам понадобятся следующие параметры:

Блок кода
languagejs
login="hgdhsgf-sdfgtght-hytyju" //Логин в сети провайдера
password="kjhoijdkfjghhwagdsdfs" //Параметр apikey при интеграции с Life Pay
INN="XXXXXXXXX" // ИНН организации
partner_email="email@mail.org" //Актуальный адрес электронной почты
shop_hostname="https://site.ru" //Домен магазина
access_group_code="group_code_XXXXX" //Идентификатор группы ККТ
api_version="XX.0X" //Только для провайдера АТОЛ Онлайн

Предоставить их можно в письме для отдела технической интеграции.

Примечание
Передача данных для печати чека становится возможной только после внесения правок на стороне сервиса!

Процесс формирования массива данных для печати фискального чека.

Массив с перечисленными ниже данными отправляется в параметре invoice_data среди прочих параметров при инициации платежа.

Таблица 1. Спецификация поля invoice_data

ПараметрТипНазначениеОбязательныйОграниченияПример
items
ArrayПозиции по счету/чекуДаНе пустой массив объектов
(см. Таблицу 2)

[{"code": "21321312122", "name": "Маракуя", "unit": "kg", "price": 340.00, "quantity": 1, "sum":340.00, "vat_mode": "none:}, {"code": "21321312123", "name": "Кокос", "unit": "piece", "price": 85.00, "quantity": 1, "sum":85.00, "vat_mode": "none"}]

vat_total
NumberВ т.ч. НДСнет> 085.22
discount_total
NumberВ т.ч. скидканет> 012.22

Таблица 2. Спецификация элемента массива invoice_data/items

ПараметрТипНазначениеОбязательныйОграниченияПример
code
StringКод товараНет-1000000000021
name
StringНаименование товараДаНе более 256 символовМарципан
price
NumberЦена за единицуДа>=0145.00
unit
StringЕдиница измеренияДа

Один из:

ЗначениеПояснение
pieceштука
service
услуга
package
комплект
gграмм
kgкилограмм
tтонна
mlмиллилитр
lлитр
m3кубометр
hrчас
mметр
kmкилометр
piece
quantityNumberКоличество единицДа>02, 3.5
sumNumberЦенаДа>=0249.50
vat_modeStringТип НДСДа

Один из:

ЗначениеПояснение
noneНДС не облагается
vat1010%, включая
vat11010%, поверх
vat1818%, включая
vat11818%, поверх
vat2020%, включая
vat12020%, поверх
vat18
vat_amountNumberРазмер НДСНет>052.22
discount_rateNumberСкидка в процентахНет>05.0

discount_amount

NumberСкидка в рублях
(вкл. в стоимость)
Нет>0

25.3

payment_methodStringПризнак способа расчётаНет

Один из:

ЗначениеПояснение
full_prepayment
Предоплата 100%
prepayment
Предоплата
advance
Аванс
full_payment
Полный расчёт
partial_payment
Частичный расчёт
credit
Передача в кредит
credit_payment
Оплата кредита

payment_objectStringПризнак предмета расчётаНет

Один из:

ЗначениеПояснение
commodity
Товар (Значение по умолчанию. 
Передается, в том числе, при отсутствии параметра)
excise
Подакциозный товар
job
Работа
service
Услуга
gambling_bet
Ставка азартной игры
gambling_prize
Выигрыш азартной игры
lottery
Лотерейный билет
lottery_prize
Выигрыш лотереи
intellectual_activity
Предоставление результатов 
интеллектуальной деятельности
payment
Платёж
agent_commission
Агентское вознаграждение
composite
Составной предмет расчёта
another
Другое

Листинг 1. JSON-схема поля invoice_data

Блок кода
languagejs
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Invoice data",
  "type": "object",
  "required": [
    "items"
  ],
  "additionalProperties": false,
  "properties": {
    "items": {
      "type": "array",
      "minItems": 1,
      "maxItems": 100,
      "items": {
        "type": "object",
        "required": [
          "name",
          "price",
          "unit",
          "quantity",
          "sum",
          "vat_mode"
        ],
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "price": {
            "type": "number",
            "minimum": 0
          },
          "unit": {
            "enum": [
              "piece",
              "service",
              "package",
              "g",
              "kg",
              "t",
              "ml",
              "l",
              "m3",
              "hr",
              "m",
              "km"
            ]
          },
          "quantity": {
            "type": "number",
            "minimum": 0,
            "exclusiveMinimum": true
          },
          "sum": {
            "type": "number",
            "minimum": 0
          },
          "vat_mode": {
            "enum": ["none", "vat0", "vat10", "vat110", "vat18", "vat118", "vat20", "vat120"]
          },
          "vat_amount": {
            "type": "number",
            "minimum": 0,
            "exclusiveMinimum": true
          },
          "discount_rate": {
            "type": "number",
            "minimum": 0,
            "exclusiveMinimum": true
          },
          "discount_amount": {
            "type": "number",
            "minimum": 0,
            "exclusiveMinimum": true
          },
          "payment_method": {
            "enum": ["full_prepayment", "prepayment", "advance", "full_payment", "partial_payment", "credit", "credit_payment"]
          },
          "payment_object": {
            "enum": ["commodity", "excise", "job", "service", "gambling_bet", "gambling_prize",
              "lottery", "lottery_prize", "intellectual_activity", "payment", "agent_commission", "composite", "another"]
          }
        }
      }
    },
    "vat_total": {
      "type": "number",
      "minimum": 0,
      "exclusiveMinimum": true
    },
    "discount_total": {
      "type": "number",
      "minimum": 0,
      "exclusiveMinimum": true
    }
  }
}

Листинг 2. Пример заполненного поля invoice_data

Блок кода
languagejs
// Вариант с НДС. Можно задавать различные виды НДС по позициям
{
    "items": [
        {"code": "21321312122", "name": "Маракуя", "unit": "kg", "price": 340.00, "quantity": 1, "sum": 340.00, "vat_mode": "vat18", "vat_amount": 51.86},
        {"code": "21321312123", "name": "Кокос", "unit": "piece", "price": 85.00, "quantity": 1, "sum": 85.00, "vat_mode": "vat10", "vat_amount": 7.73}
    ],
    "vat_total": 59.59
}

// Если НДС не облагается
{
    "items": [
        {"code": "21321312122", "name": "Маракуя", "unit": "kg", "price": 340.00, "quantity": 1, "sum":340.00, "vat_mode": "none"},
        {"code": "21321312123", "name": "Кокос", "unit": "piece", "price": 85.00, "quantity": 1, "sum":85.00, "vat_mode": "none"}
    ]
}

Пример input для кнопки, передающей invoice_data

Блок кода
<input type='hidden' name='invoice_data' value='{ "items": [ { "code": "054000001R", "name": "Клипса пистон распорный решетки воздухозаборника Лада Ларгус, Рено Логан 054000001R", "unit": "piece", "price": 40.5, "quantity": 1, "sum": 40.5, "vat_mode": "none"} ] }' />
Подсказка
Генерация html-формы описана в разделе создание кнопки оплаты.

Оглавление