Чек передается в авторизационном запросе . Для этого необходимо в запросе передать дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.
Пример структуры чека в параметре ChequeItems:
{"items":[ {"id": 1, "product": "123460176", "name": "Первый товар", "price": 201.45, "quantity": 42.345, "amount": 8530.40, "tax": "vat10", "hscode": "8528722001", "fpmode": 1}, {"id": 2, "product": "123460189", "name": "Второй товар", "price": 15301.01, "quantity": 0.128, "amount": 1958.53, "tax": "vat20", "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) | |
hscode | Нет | string(13) | Код номенклатуры товара (код ТН ВЭД 10 цифр) |
fpmode | Нет** | int | |
AgentMode | int | Признак агента по предмету расчета | |
TransferOperatorPhone | string(19) | Телефон оператора перевода | |
TransferOperatorName | string(64) | Наименование оператора перевода | |
TransferOperatorAddress | string(256) | Адрес оператора перевода | |
TransferOperatorINN | string(12) | ИНН оператора перевода | |
PaymentReceiverOperatorPhone | string(19) | Телефон оператора по приёму платежей | |
PaymentAgentOperation | string(24) | Операция платёжного агента | |
PaymentAgentPhone | string(19) | Телефон платёжного агента | |
SupplierPhone | string(19) | Телефон поставщика | |
SupplierName | string(64) | Наименование поставщика | |
SupplierINN | string(12) | ИНН поставщика | |
Excite | number(15,2) | Акциз | |
CountryOfOrigin | string(3) | Код страны происхождения товара | |
NumberOfCustomsDeclaration | string(32) | Номер таможенной декларации |
*Должен быть определен один из параметров - код товара или его наименование, либо оба параметра должны быть переданы (при формировании чека они объединяются в одну строку).
**Параметры 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": "vat20", "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>vat20</tax> <fpmode>1</fpmode> </chequeitem> |
Подтверждение может быть проведено как на всю сумму оплаты, так и на часть суммы. Допускается совершение частичного подтверждения на сумму, не превышающую суммы оплаты, если операция оплаты по кредитной карте была совершена через процессинг, имеющий соответствующие настройки.
Чек подтверждения может содержать все или часть позиций, которые присутствовали в чеке оплаты.
Для каждой позиции чека подтверждения параметры product, name, price должны быть безусловно эквивалентны этим параметрам соответствующей позиции чека оплаты.
Сумма параметров amount всех позиций чека подтверждения должна быть равна сумме подтверждения из поля Amount запроса на подтверждение.
В случае подтверждения на полную сумму не обязательно передавать набор структур ChequeItem соответствующий всему чеку, переданному в заказе. Для подтверждения на полную сумму чек не является обязательным.
Отмена отдельных позиций чека может быть выполнена оператором в личном кабинете или посредством обращения к веб-сервису cancel (в формате POST) или wscancel (в формате SOAP).
Для отмены оплаты по отдельным позициям чека через веб-сервис нужно выполнить запрос (в кодировке UTF-8) к серверу АПК Ассист.
URL запроса для отмены или возврата средств и список параметров запроса отмены оплаты совпадают с указанными здесь значениями . Для передачи чека отмены добавляется лишь повторяющаяся структура ChequeItem, в которой передаются позиции чека, как в следующем примере.
Пример структуры позиции чека ChequeItem:
<chequeitem> <id>1</id> <product>123460176</product> <name>Первый товар</name> <price>201.45</price> <quantity>21.12</quantity> <amount>8530.40</amount> </chequeitem> |
В случае проведения отмены на полную сумму не обязательно передавать набор структур ChequeItem соответствующий всему чеку, переданному в заказе. Для отмены на полную сумму чек не является обязательным.
Чек отмены может содержать все или часть позиций, которые присутствовали в чеке оплаты или в чеке подтверждения при двустадийном механизме работы.
Для каждой позиции чека отмены параметры product, name, price должны быть безусловно эквивалентны этим параметрам соответствующей позиции чека оплаты или чека подтверждения при двустадийном механизме работы.
Сумма параметров amount всех позиций чека отмены должна быть равна сумме отмены из поля Amount запроса на отмену.
Для каждой позиции чека отмены значения параметров quantity и amount не должны быть больше, чем значения соответствующих параметров quantity и amount чека оплаты или чека подтверждения (при двустадийном механизме работы) с учетом значений параметров quantity и amount по этой позиции из уже проведенных ранее отмен.
Значения параметров price и amount всех позиций в чеке должны быть в одной валюте, и эта валюта должна совпадать с валютой запроса (параметр Currency в запросе).
Если указанные выше условия не соблюдаются, чек признается неверным и происходит ошибка запроса.
Для инициации рекуррентного платежа необходимо в первоначальном запросе на авторизацию передать значение параметра RecurringIndicator=1 и значения параметров, задающих диапазон сумм последующих рекуррентных платежей, периодичность оплат (в днях) и дату окончания подписки.
Затем с указанной периодичностью предприятие инициирует платеж, задавая сумму, а необходимая платежная информация (данные кредитной карты) берется из первоначальной оплаты.
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": "vat20", "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>vat20</tax> <fpmode>1</fpmode> </chequeitem> |