Чек в заказе
Чек передается в авторизационном запросе . Для этого необходимо в запросе передать дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.
Пример структуры чека в параметре ChequeItems:
{"items":[ {"id": 1, "product": "123460176", "name": "Первый товар", "price": 201.45, "quantity": 42.345, "amount": 8530.40, "tax": "vat10", "fpmode": 1}, {"id": 2, "product": "123460189", "name": "Второй товар", "price": 15301.01, "quantity": 0.128, "amount": 1958.53, "tax": "vat18", "fpmode": 1} ]}
В структуре передаются следующие параметры позиций чека:
Название | Обязательное поле | Тип значения | Описание |
id | Да | int | Позиция в чеке (уникальное число для чека) |
product | Да/Нет* | string(50) | Код товара по справочнику товаров магазина |
name | Да/Нет* | string(250) | Наименование товара |
price | Да | float(10.2) | Стоимость единицы товара (услуги) |
quantity | Да | float | Количество/объем товара/услуги в единицах измерения товара (может быть дробным числом) |
amount | Да | float(15.2) | Стоимость позиции price*quantity |
tax | Да** | string(10) | |
fpmode | Нет** | int |
*Должен быть определен один из параметров - код товара или его наименование, либо оба параметра должны быть переданы (при формировании чека они объединяются в одну строку).
**Параметры tax и fpmode не передаются в запросе на отмену или возврат средств.
Значения параметров price и amount всех позиций в чеке должны быть в одной валюте, и эта валюта должна совпадать с валютой заказа (параметр OrderCurrency в авторизационном запросе).
Сумма всех позиций чека (по параметру amount) должна быть равна сумме заказа (параметр OrderAmount в авторизационном запросе).
Если указанные выше условия не соблюдаются, чек признается неверным и происходит ошибка авторизационного запроса.
Чек при подтверждении
При двустадийном механизме работы финансовое подтверждение интернет-магазин может осуществить в течение 4 дней в Личном кабинете либо с помощью веб-сервиса.
Для подтверждения оплаты нужно отправить запрос на сервер АПК Ассист методом HTTP POST или SOAP (в кодировке UTF-8).
URL запроса для передачи финансового подтверждения и список параметров запроса подтверждения оплаты совпадают с указанными здесь. Для передачи чека подтверждения в запросе HTTP POST добавляется лишь дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.
Пример структуры чека в параметре ChequeItems:
{"items":[ {"id": 1, "product": "123460176", "name": "Первый товар", "price": 201.45, "quantity": 21.12, "amount": 8530.40, "tax": "vat10", "fpmode": 1} {"id": 2, "product": "123460189", "name": "Второй товар", "price": 15301.01, "quantity": 0.064, "amount": 979.26, "tax": "vat18", "fpmode": 1} ]}
Для передачи чека подтверждения в SOAP запросе добавляется лишь дополнительная повторяющаяся структура ChequeItem, в которой передаются позиции чека, как в следующем примере.
Пример структуры позиций чека ChequeItem:
<chequeitem> <id>1</id> <product>123460176</product> <name>Первый товар</name> <price>201.45</price> <quantity>21.12</quantity> <amount>8530.40</amount> <tax>vat10</tax> <fpmode>1</fpmode> </chequeitem> <chequeitem> <id>2</id> <product>123460176</product> <name>Первый товар</name> <price>15301.01</price> <quantity>0.064</quantity> <amount>979.26</amount> <tax>vat18</tax> <fpmode>1</fpmode> </chequeitem>
Подтверждение может быть проведено как на всю сумму оплаты, так и на часть суммы. Допускается совершение частичного подтверждения на сумму, не превышающую суммы оплаты, если операция оплаты по кредитной карте была совершена через процессинг, имеющий соответствующие настройки.
Чек подтверждения может содержать все или часть позиций, которые присутствовали в чеке оплаты.
Для каждой позиции чека подтверждения параметры product, name, price должны быть безусловно эквивалентны этим параметрам соответствующей позиции чека оплаты.
Сумма параметров amount всех позиций чека подтверждения должна быть равна сумме подтверждения из поля Amount запроса на подтверждение.
В случае подтверждения на полную сумму не обязательно передавать набор структур ChequeItem соответствующий всему чеку, переданному в заказе. Для подтверждения на полную сумму чек не является обязательным.