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

Ключ

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

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

Примечание

Передача нескольких товарных позиций для чека становится возможной только после внесения правок на стороне сервиса! По умолчанию по переданному 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
Примечание
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Внимание!

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

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

...

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

...

code

...

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
Оплата кредита

...

Один из:

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

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

...

languagejs

...

        "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

Блок кода

...

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

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

Оглавление