Skip to main content
Version: LIFE PAY Online 1.0

Оплата по 54-ФЗ

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

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

caution

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

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

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

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

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

ПараметрТипНазначениеОбязательныйОграниченияПример
itemsArrayПозиции по счету/чекуДаНе пустой массив объектов(см. Таблицу 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_totalNumberВ т.ч. НДСнет> 085.22
discount_totalNumberВ т.ч. скидканет> 012.22
discount_total

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

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

ПараметрТипНазначениеОбязательныйОграниченияПример
codeStringКод товараНет-1000000000021
nameStringНаименование товараДаНе более 256 символовМарципан
priceNumberЦена за единицуДа>=0145.00
unitStringЕдиница измеренияДаОдин из: piece (штука); service (услуга); package (комплект); g (грамм); kg (килограмм); t (тонна); ml (миллилитр); l (литр); m3 (кубометр); hr (час); m (метр); km (километр );piece
quantityNumberКоличество единицДа>02, 3.5
sumNumberЦенаДа>=0249.50
vat_modeStringТип НДСДаОдин из: none (НДС не облагается); vat10 (10% включая); vat110 (10% поверх); vat18 (18% включая); vat118 (18% поверх); vat20 (20% включая); vat120 (20% поверх)vat18
vat_amountNumberРазмер НДСНет>052.22
discount_rateNumberСкидка в процентахНет>05.0
discount_amountNumberСкидка в рублях (вкл. в стоимость)Нет>025.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_innStringИНН поставщикаНет-ИНН поставщика. Должен быть корректным.
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 из коллбэка к транзакции из первого шага. Провайдер ОФД распечатает чек полной оплаты, сумма которого будет равна сумме чеков из первого и второго шагов.
info

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

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

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

login="XXXXXX-XXXXXX-XXXXXX" //Логин в сети провайдера
password="XXXXXXXXXXXXXXXXXXXXXXXX" //Параметр 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" //Версия апи в АТОЛ Онлайн

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