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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Подсказка
titleРежим "по умолчанию"

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

Примечание

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

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

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

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

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

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

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

...

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"}]

...

vat_total

...

discount_total

...

ПараметрТипНазначениеОбязательныйОграниченияПример

...

items

...

name

...

price

...

unit

...

Один из:

ЗначениеПояснение
pieceштука
service
услуга
package
комплект
gграмм
kgкилограмм
tтонна
mlмиллилитр
lлитр
m3кубометр
hrчас
mметр
kmкилометр

...

Один из:

ЗначениеПояснение
noneНДС не облагается
vat1010%, включая
vat11010%, поверх
vat1818%, включая
vat11818%, поверх
vat2020%, включая
vat12020%, поверх

...

discount_amount

...

25.3

...

Один из:

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

...

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
Примечание
titlediscount_total

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


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

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

Один из:

ЗначениеПояснение

...

pieceштука

...

service

...

услуга

...

Раскрыть

...

title

...

Работа

...

service

...

Услуга

...

gambling_bet

...

Ставка азартной игры

...

gambling_prize

...

Выигрыш азартной игры

...

lottery

...

Лотерейный билет

...

lottery_prize

...

Выигрыш лотереи

...

intellectual_activity

...

Предоставление результатов 
интеллектуальной деятельности

...

payment

...

Платёж

...

agent_commission

...

Агентское вознаграждение

...

composite

...

Составной предмет расчёта

...

another

...

Другое
Внимание!

Если вы используете 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

Блок кода
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",
      

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

...

languagejs

...

        "

...

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

Блок кода

...

languagejs

...

<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, но печать чеков при этом осуществляется другим кассовым провайдером. Для работы в сети кассового провайдера нам понадобятся следующие параметры:

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

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

Оглавление