Дерево страниц
Skip to end of metadata
Go to start of metadata

Режим "по умолчанию"

Каждый вновь зарегистрированный магазин работает в режиме "одна товарная позиция в одном заказе". Это режим работы по умолчанию и не требует дополнительных действий для получения чеков.

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

Активацию осуществляет отдел технической интеграции: acq_integration@life-pay.ru Для успешного подключения необходимы подписанные документы с компанией LIFE PAY.

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

Массив с перечисленными ниже данными отправляется в параметре 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

discount_total

Провайдер LifePay не принимает этот параметр. Используйте параметры discount_amount или discount_rate для каждой товарной позиции.


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

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

Один из:

ЗначениеПояснение
pieceштука
service

услуга

Если вы используете unit=service, то параметр payment_object должен принять соответствующее значение (service). Описание ниже в данном перечне параметров.
В случае игнорирования payment_object, значение будет приниматься по умолчанию и каждая оплата будет фискализироваться как commodity (значение по умолчанию).

Таким образом, если необходимо указать, что данная товарная позиция - это услуга, то рекомендуется либо указывать unit=piece в сочетании с payment_object=service, либо unit=service с обязательным указанием payment_object=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
Другое

supplier_inn
stringИНН поставщикаНет

ИНН поставщика. Должен быть корректным.



supplier_namestringНаименование организации поставщикаНетМаксимальная длина: 256
supplier_phonestringТелефон поставщикаНет

телефоны через запятую. Максимальная длина: 19

(для каждого элемента)


lifepay.agent_item_typestringПризнак агента по предмету расчета.Нет

Для подключения возможности передачи

данного параметра необходимо обратиться

в отдел acq_integration@life-pay.ru либо 

использовать для фискализации

отдельное API https://apidoc.life-pay.ru/cloud-print/index#


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

{
  "$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

// Вариант с НДС. Можно задавать различные виды НДС по позициям
{
    "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-формы описана в разделе создание кнопки оплаты.

Формирование чеков при частичной оплате товара.

Оплата товара состоит из нескольких транзакций. Допустим сумма была разделена на две части и была оплачена в разные дни. В таком случае понадобятся чеки, сформированные в три шага:

  1. Инициирование первой транзакции с товарными позициями, описанными в документации выше (payment_method отличается от full_payment). Провайдер ОФД распечатает чек частичной оплаты.
  2. Инициирование второй транзакции с товарными позициями, описанными в документации выше (payment_method отличается от full_payment). Провайдер ОФД распечатает чек частичной оплаты.
  3. Отправить запрос на https://ofd.life-pay.ru/input/. На этот URL необходимо передать только invoice_data с payment_method «full_payment», параметр check (подпись запроса) и first_tid. 
    Параметр first_tid равен значению tid из коллбэка к транзакции из первого шага. Провайдер ОФД распечатает чек полной оплаты, сумма которого будет равна сумме чеков из первого и второго шагов.

    Параметры из раздела Формат отправки данных в запросе от партнёра в третьем шаге не участвуют.

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

Функционал актуален для предприятий, использующих продукт Интернет Эквайринг от компании LIFE PAY, но печать чеков при этом осуществляется другим кассовым провайдером. Для работы в сети кассового провайдера нам понадобятся следующие параметры:

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" //Версия апи в АТОЛ Онлайн

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

1 комментарий

  1. В прошлом присутствовала поддержка "КОМТЕТ Касса" и "Kit Online".