В том случае, если предприятие не может доставить покупателю оплаченный по кредитной карте товар или услугу, либо покупатель отказался от сделки, можно отменить авторизацию по кредитной карте или сделать возврат средств (полный или частичный). Совершить отмену или возврат средств можно в Личном кабинете предприятия в системе АПК Ассист либо с помощью веб-сервиса.
В системе АПК Ассист возможны следующие виды возвратов и отмен:
Отмена авторизации (on-line отмена) – процедура отмены авторизации по кредитной карте до момента формирования финансовой транзакции. Отмену авторизации обычно можно сделать в течение тех же суток, в которые была совершена авторизациия. Отмену авторизации можно сделать позднее чем через сутки в том случае, если у предприятия есть соглашение с АПК Ассист об отложенном финансовом подтверждении, или предприятие работает по двустадийному механизму работы и еще не совершено финансовое подтверждение оплаты. В любом случае отмена авторизации не может быть совершена позже установленного процессингом срока.
Частичная отмена – допустима для процессингов, имеющих соответствующие настройки (в частности, UCS, Мультикарта), до момента формирования финансовой транзакции. Если после успешной авторизации была совершена частичная отмена, то финансовая транзакция будет сформирована на оставшуюся сумму платежа. Частичная отмена отплаты для предприятий, работающих по двустадийному механизму, возможна только после совершения финансового подтверждения (но до момента отправки финансовой транзакции), и с финансовой точки зрения аналогична частичному подтверждению оплаты.
Возврат средств (refund) – процедура частичного или полного возврата денежных средств покупателю по оплате, ранее совершенной в интернет-магазине предприятия с использованием кредитной карты. Операция refund осуществляется после формирования финансовой транзакции.
Операция refund осуществляется для всех возвратов по картам DCL, JCB, AMEX.
Операция refund осуществляется для всех возвратов на частичную сумму.
Операция refund осуществляется для возвратов на полную сумму, если для процессинга допустим только такой тип операции возврата средств.
Операция refund осуществляется на полную сумму для процессингов UCS, Райффайзенбанк по картам VISA и MasterCard в том случае, если причиной отмены является отказ держателя карты (параметр CancelReason=2).
Отмена финансовой транзакции – процедура отмены операции оплаты с использованием кредитной карты, по которой была проведена авторизация, после формирования финансовой транзакции. Операция отмены финансовой транзакции подразумевает полный возврат денежных средств с учетом возможной разницы курсов валют на даты оплаты и возврата средств.
Отмена финансовой транзакции осуществляется только на полную сумму оплаты и только для процессингов UCS, Райффайзенбанк по картам VISA и MasterCard в том случае, если причиной является отказ магазина от операции (параметр CancelReason=1) или операция оплаты – мошенническая (параметр CancelReason=3).
Обратите внимание, что для операции отмены финансовой транзакции некоторые процессинги (в частности, UCS) устанавливают особые финансовые условия.
Для процессинга Райффайзенбанк период проведения отмены финансовой транзакции ограничен и составляет 39 дней (после истечения этого периода возможно проведение refund).
Порядок проведения отмен и возвратов в Личном кабинете описан в соответствующем разделе инструкции по работе с Личным кабинетом.
Можно также совершить отмену или возврат средств при помощи веб-сервиса. Для этого нужно послать HTTP POST или SOAP запрос (в кодировке UTF-8) к серверу АПК Ассист.
URL запроса для формата HTTP POST: https://<SERVER-NAME>/cancel/cancel.cfm
URL запроса для формата SOAP: https://<SERVER-NAME>/cancel/wscancel.cfm
Сервис wscancel в ответе на запрос может отдавать несколько вложенных операций, если в результате запроса на отмену было инициировано несколько операций отмены.
При возврате денежных средств по какому-либо из электронных кошельков сумма возврата не должна превышать баланс мерчанта за текущий день (сумма всех успешных платежей по данному электронному кошельку за текущий день с учетом комиссии банка минус сумма всех успешных возвратов за текущий день). Частичные отмены оплат по электронным кошелькам запрещены в течение календарных суток (по часовому поясу Москвы).
Особенностью возвратов платежей по WebMoney, выполненных с помощью web-интерфейсов, является передача системой АПК Ассист ответа со статусом операции «In Process» (responsecode=AS300) на запрос отмены заказа. Это связано с задержкой при выдаче результата отмены платежной системой WebMoney. Для получения реального результата необходимо отправить дополнительный запрос на получение результатов операций по номеру заказа через несколько минут после запроса на отмену. В случае нескольких отмен результат запроса будет содержать несколько вложенных операций типа 300 (Отмена), имеющих различные значения параметра billnumber в расширенном формате (например, 5700027202722028.3).
Все отмены оплат по QIWI (как полные, так и частичные) запрещены в течение календарных суток (по часовому поясу Москвы).
При возвратах платежей по QIWI, выполненных с помощью web-интерфейсов, обычно система АПК Ассист сразу передает на запрос отмены заказа соответствующий успешный статус, однако, в некоторых случаях передается ответ со статусом операции «In Process» (responsecode=AS300). Это связано с задержкой при выдаче результата отмены платежной системой QIWI. Для получения реального результата в этом случае следует отправить дополнительный запрос на получение результатов операций по номеру заказа через несколько минут после запроса на отмену. В случае нескольких отмен результат запроса будет содержать несколько вложенных операций типа 300 (Отмена), имеющих различные значения параметра billnumber в расширенном формате (например, 5700027202722028.3).
Список параметров запроса:
Название | Обязательное поле | Принимаемые значения | Значение по умолчанию | Описание |
Billnumber | Да | 15 или 16 цифр Расширенный формат | Номер платежа, соответствующий заказу в системе АПК Ассист, допускается передача расширенного номера платежа | |
Merchant_ID | Да | Число | Идентификатор предприятия в АПК Ассист | |
Login | Да | 8 - 20 символов | Логин (лат. буквы и цифры, символ _) | |
Password | Да | 8 - 20 символов | Пароль (лат. буквы и цифры) | |
Amount | Нет* | Число, 15 цифр (разделители «.», «,») | Сумма авторизации | Сумма возврата средств |
Currency | Нет* | 3 символа | Код валюты авторизации | Код валюты отмены или возврата средств. Может быть использован только код валюты авторизации |
CancelReason | Нет | 1 – Отказ магазина | 1 | Причина отмены или возврата |
Language | Нет | RU – русский | RU | Язык выдачи результатов |
ClientIP | Нет | Максимум 15 цифр, 4 разделителя «.» | IP компьютера оператора, производящего отмену/возврат. | |
Format | Нет | 1 – CSV | Формат входных данных, 4 для сервиса wscancel | Формат выдачи результатов |
* Параметры Amount, Currency могут присутствовать или отсутствовать в запросе только одновременно. В случае отсутствия параметров операция отмены оплаты будет проведена на полную сумму.
Примечание. Все параметры, передаваемые в запросе, проходят автоматическую валидацию в АПК Ассист. Правила валидации описаны в табл.5.15 .
Для совершения операции отмены можно передать параметр billnumber как в обычном формате (если по заказу была одна успешная операция оплаты), так и в расширенном формате. При использовании расширенного формата обязательно должен быть указан номер успешной операции оплаты (в некоторых случаях это может быть не первая по счету операция, например, 5111111000965142.2).
Отмена или возврат средств является успешной, если код возврата операции отмены responsecode AS000 (операция успешно завершена), оба кода firstcode=0, secondcode=0, статус заказа при этом становится Canceled (Отменен) или PartialCanceled (Отменен частично).
Для неуспешной отмены код возврата responsecode принимает значения AS100-AS998. Если запрос на возврат или отмену не может быть обработан, в результате запроса вернутся ненулевые значения параметров firstcode, secondcode.
Тип совершаемой транзакции (on-line отмена, возврат средств (refund), отмена финансовой транзакции, частичная отмена) будет определен системой АПК Ассист автоматически в зависимости от суммы (полная или частичная отмена), процессинга, типа карты, наличия финансовой транзакции для родительской авторизации и причины возврата.
Интерфейс для формата HTTP POST (cancel)
Пример запроса HTTP POST для отмены оплаты по банковской карте:
<FORM ACTION="https://<SERVER-NAME>/cancel/cancel.cfm" method="POST"> <INPUT TYPE="hidden" NAME="BillNumber" VALUE="511111100000001"> <INPUT TYPE="hidden" NAME="Merchant_ID" VALUE="Ваш Merchant_ID"> <INPUT TYPE="hidden" NAME="Login" VALUE="Ваш логин"> <INPUT TYPE="hidden" NAME="Password" VALUE="Ваш пароль"> <INPUT TYPE="hidden" NAME="Amount" VALUE="Сумма"> <INPUT TYPE="hidden" NAME="Currency" VALUE="Валюта"> <INPUT TYPE="hidden" NAME="ClientIP" VALUE="IP-адрес"> <INPUT TYPE="hidden" NAME="Language" VALUE="Язык выдачи результата"> <INPUT TYPE="hidden" NAME="Format" VALUE="Формат выдачи результата"> <INPUT TYPE="Submit"></FORM>
Список параметров ответа:
Название | Значение |
ordernumber | Номер заказа |
responsecode | Код возврата |
recommendation | Рекомендации |
message | Сообщение |
ordercomment | Комментарий |
orderdate | Дата заказа по Гринвичу (GMT) |
amount | Сумма операции |
currency | Валюта операции |
meantypename | Тип платежного средства |
meannumber | Номер платежного средства |
lastname | Фамилия плательщика |
firstname | Имя плательщика |
middlename | Отчество плательщика |
issuebank | Название банка-эмитента |
Email плательщика | |
bankcountry | Страна банка-эмитента |
rate | Курс валюты |
approvalcode | Код авторизации |
meansubtype | Подтип платежного средства |
cardholder | Держатель платежного средства |
cardexpirationdate | Срок действия карты |
ipaddress | IP-адрес плательщика |
protocoltypename | Протокол |
testmode | Тестовый режим |
customermessage | Сообщение о результате для покупателя |
orderstate | Cтатус заказа |
processingname | Процессинг |
operationtype | Тип операции |
billnumber | Расширенный формат billnumber |
orderamount | Оригинальная сумма операции |
ordercurrency | Оригинальная валюта операции |
slipno | Номер финансовой транзакции, отправляемый в процессинг |
packetdate | Дата формирования запроса по Гринвичу (GMT) |
signature |
Пример результата запроса отмены платежа или возврата средств в формате XML:
<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<!DOCTYPE result [
<!ATTLIST result
firstcode CDATA #REQUIRED
secondcode CDATA #REQUIRED
count CDATA #REQUIRED>
<!ELEMENT result (orders?)>
<!ELEMENT orders (order)>
<!ELEMENT order (ordernumber?,
responsecode?, recommendation?, message?, ordercomment?, orderdate?, amount?,
currency?, meantypename?, meannumber?, lastname?, firstname?, middlename?,
issuebank?, email?, bankcountry?, rate?, approvalcode?, meansubtype?,
cardholder?, cardexpirationdate?, ipaddress?,
protocoltypename?, testmode?, customermessage?,
orderstate?, processingname?, operationtype?, billnumber?, orderamount?,
ordercurrency?, slipno?, packetdate?, signature?, pareq?, acsurl?)>
<!ELEMENT ordernumber (#PCDATA)>
<!ELEMENT responsecode (#PCDATA)>
<!ELEMENT recommendation (#PCDATA)>
<!ELEMENT message (#PCDATA)>
<!ELEMENT ordercomment (#PCDATA)>
<!ELEMENT orderdate (#PCDATA)>
<!ELEMENT amount (#PCDATA)>
<!ELEMENT currency (#PCDATA)>
<!ELEMENT meantypename (#PCDATA)>
<!ELEMENT meannumber (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT middlename (#PCDATA)>
<!ELEMENT issuebank (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT bankcountry (#PCDATA)>
<!ELEMENT rate (#PCDATA)>
<!ELEMENT approvalcode (#PCDATA)>
<!ELEMENT meansubtype (#PCDATA)>
<!ELEMENT cardholder (#PCDATA)>
<!ELEMENT cardexpirationdate (#PCDATA)>
<!ELEMENT ipaddress (#PCDATA)>
<!ELEMENT protocoltypename (#PCDATA)>
<!ELEMENT testmode (#PCDATA)>
<!ELEMENT customermessage (#PCDATA)>
<!ELEMENT orderstate (#PCDATA)>
<!ELEMENT processingname (#PCDATA)>
<!ELEMENT operationtype (#PCDATA)>
<!ELEMENT billnumber (#PCDATA)>
<!ELEMENT orderamount (#PCDATA)>
<!ELEMENT ordercurrency (#PCDATA)>
<!ELEMENT slipno (#PCDATA)>
<!ELEMENT packetdate (#PCDATA)>
<!ELEMENT signature (#PCDATA)>
<!ELEMENT pareq (#PCDATA)>
<!ELEMENT acsurl (#PCDATA)>]>
<result firstcode="0" secondcode="0" count="1">
<orders><order>
<ordernumber>0001-01</ordernumber>
<responsecode>AS000</responsecode>
<recommendation></recommendation>
<message>Завершено успешно.</message>
<ordercomment>тестовый платеж</ordercomment>
<orderdate>01.01.2011 10:51:53</orderdate>
<amount>100.00</amount>
<currency>RUB</currency>
<meantypename>VISA</meantypename>
<meannumber>411111****1111</meannumber>
<lastname>Testov</lastname>
<firstname>Test</firstname>
<middlename>Testovich</middlename>
<issuebank>BANK</issuebank>
<email>test@testpost.ru</email>
<bankcountry>Россия</bankcountry>
<rate>1</rate>
<approvalcode>F39530</approvalcode>
<meansubtype>Corporate Purchasing Card</meansubtype>
<cardholder>TEST</cardholder>
<cardexpirationdate>12/20</cardexpirationdate>
<ipaddress>10.23.23.23</ipaddress>
<protocoltypename></protocoltypename>
<testmode>1</testmode>
<customermessage>Завершено успешно.</customermessage>
<orderstate>Canceled</orderstate>
<processingname>Name</processingname>
<operationtype>300</operationtype>
<billnumber>511111100000001.2</billnumber>
<orderamount>100.00</orderamount>
<ordercurrency>RUB</ordercurrency>
<slipno>111111</slipno>
<packetdate>01.01.2011 12:36:31</packetdate>
<signature></signature>
</order></orders></result>
Примечание. Поле <slipno> используется только для процессингов UCS, Райффайзенбанк, Мультикарта и Русский стандарт. Возможные значения этого параметра в ответах описаны в табл.5.14 .
Пример результата запроса в формате XML, вернувшего ошибку (неправильный пароль):
<?xml version="1.0" encoding="utf-8" standalone="yes" ?> <!DOCTYPE result [...]> <result firstcode="7" secondcode="102" count="0"></result>
С описанием первого и второго кодов автоматизированных интерфейсов можно ознакомиться в Таблице 5.12 . Также в таблицах 5.1, 5.2, 5.4, 5.8 Приложения описаны возможные статусы заказа, типы операций, коды возврата и коды валют соответственно. В качестве значения поля <meannumber> возвращаются первые 6 и последние 4 цифры номера карты, остальные цифры скрыты символом *.
Веб-сервис для формата SOAP (wscancel)
Описание веб-сервиса для формата SOAP можно увидеть на странице:
https://<SERVER-NAME>/cancel/wscancel.wsdl
Пример запроса для отмены оплаты по банковской карте:
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header/>
<Body>
<WSCancelRequestParams>
<merchant_id xmlns="">423422</merchant_id>
<billnumber xsi:type="xsd:string" xmlns="">500000210031071.1</billnumber>
<login xsi:type="xsd:string" xmlns="">login</login>
<password xsi:type="xsd:string" xmlns="">password</password>
<amount xsi:type="xsd:string" xmlns="">23.23</amount>
<currency xsi:type="xsd:string" xmlns="">RUB</currency>
</WSCancelRequestParams>
</Body>
</Envelope>
Список параметров ответа:
Название | Значение |
Параметры заказа (секция <order>) | |
billnumber | Уникальный номер заказа в системе АПК Ассист |
ordernumber | Номер заказа |
testmode | Тестовый режим |
ordercomment | Комментарий |
orderamount | Оригинальная сумма заказа |
ordercurrency | Оригинальная валюта заказа |
rate | Курс валюты |
orderdate | Дата заказа по Гринвичу (GMT) |
orderstate | Статус заказа |
Данные о плательщике (секция <customer>) | |
firstname | Имя плательщика |
lastname | Фамилия плательщика |
middlename | Отчество плательщика |
Email плательщика | |
Параметры операции (повторяющаяся секция <operation>) | |
billnumber | Уникальный номер операции (расширенный формат: billnumber.<номер операции>) |
operationtype | Код типа операции |
operationstate | Состояние операции |
amount | Сумма операции |
currency | Валюта операции |
ipaddress | IP-адрес плательщика |
meantype_id | Тип платежного средства |
meansubtype | Подтип платежного средства |
meannumber | Номер платежного средства |
cardholder | Держатель платежного средства |
cardexpirationdate | Срок действия карты |
issuebank | Название банка-эмитента |
bankcountry | Страна банка-эмитента |
responsecode | Код возврата |
message | Сообщение о результате операции |
customermessage | Сообщение о результате для покупателя |
recommendation | Рекомендация |
approvalcode | Код авторизации |
protocoltypename | Протокол |
processingname | Процессинг |
operationdate | Дата и время операции (GMT) |
slipno | Номер финансовой транзакции, отправляемый в процессинг |
Свойства пакета данных (внутри <result>) | |
packetdate | Дата формирования запроса по Гринвичу (GMT) |
signature | Подпись. Формируется по следующему алгоритму: 1. Формируется объединённая строка из параметров (в их строковом представлении, в формате как они переданы в ответе): merchant_id, ordernumber, orderamount, ordercurrency, orderstate, packetdate (без разделителей) 2. Полученная строка подписывается закрытым ключом АПК Ассист. 3. Итоговая последовательность байт кодируется в BASE64. |
Примечание. Поле <slipno> используется только для процессингов UCS, Райффайзенбанк, Мультикарта и Русский стандарт. Возможные значения этого параметра в ответах описаны в табл.5.14 .
Пример результата запроса отмены платежа или возврата средств:
Внимание! Для корректной работы с веб-сервисами по защищенному TLS-соединению необходимо иметь на своей стороне в хранилище доверенных корневых сертификатов следующий сертификат:
- корневой сертификат от GlobalSign: GlobalSign Root CA R1 (https://www.globalsign.com/repository/ca-certificates/).
Перед началом работы следует проверить наличие этого сертификата в хранилище и добавить его в случае необходимости.