Особенности осуществления отдельных видов возвратов и отмен:


Отмена авторизации (on-line отмена)

Выполняется обычно  в течение тех же суток, в которые была совершена авторизациия. Отмену авторизации можно сделать позднее чем через сутки в том случае, если у предприятия есть соглашение с АПК Ассист об отложенном финансовом подтверждении, или предприятие работает по двустадийному механизму работы и еще не совершено финансовое подтверждение оплаты. В любом случае отмена авторизации не может быть совершена позже установленного процессингом срока.

Частичная отмена

Допустима для процессингов, имеющих соответствующие настройки (в частности, UCS, Мультикарта), до момента формирования финансовой транзакции. Если после успешной авторизации была совершена частичная отмена, то финансовая транзакция будет сформирована на оставшуюся сумму платежа. Частичная отмена отплаты для предприятий, работающих по двустадийному механизму, возможна только после совершения финансового подтверждения (но до момента отправки финансовой транзакции), и с финансовой точки зрения аналогична частичному подтверждению оплаты.

Возврат средств (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) к серверу АПК Ассист.

Особенности возвратов по электронным кошелькам

При возврате денежных средств по какому-либо из электронных кошельков сумма возврата не должна превышать баланс мерчанта за текущий день (сумма всех успешных платежей по данному электронному кошельку за текущий день с учетом комиссии банка минус сумма всех успешных возвратов за текущий день). Частичные отмены оплат по электронным кошелькам запрещены в течение календарных суток (по часовому поясу Москвы).

Особенностью возвратов платежей по WebMoney, выполненных с помощью web-интерфейсов, является передача системой АПК Ассист ответа со статусом операции «In Process» (responsecode=AS300) на запрос отмены заказа. Это связано с задержкой при выдаче результата отмены платежной системой WebMoney. Для получения реального результата необходимо отправить дополнительный запрос на получение результатов операций по номеру заказа через несколько минут после запроса на отмену. В случае нескольких отмен результат запроса будет содержать несколько вложенных операций типа 300 (Отмена), имеющих различные значения параметра billnumber в расширенном формате (например, 5700027202722028.3).

Все отмены оплат по QIWI (как полные, так и частичные) запрещены в течение календарных суток (по часовому поясу Москвы).

При возвратах платежей по QIWI, выполненных с помощью web-интерфейсов, обычно система АПК Ассист сразу передает на запрос отмены заказа соответствующий успешный статус, однако, в некоторых случаях передается ответ со статусом операции «In Process» (responsecode=AS300). Это связано с задержкой при выдаче результата отмены платежной системой QIWI. Для получения реального результата в этом случае следует отправить дополнительный запрос на получение результатов операций по номеру заказа через несколько минут после запроса на отмену. В случае нескольких отмен результат запроса будет содержать несколько вложенных операций типа 300 (Отмена), имеющих различные значения параметра billnumber в расширенном формате (например, 5700027202722028.3).


Интерфейс для формата 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

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.2018 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.2018 12:36:31</packetdate> 
<signature></signature>
</order></orders></result>

Примечание. Поле <slipno> используется только для процессингов UCS, Райффайзенбанк, Мультикарта и Русский стандарт. Возможные значения этого параметра в ответах описаны в справочнике .

Пример результата запроса в формате XML, вернувшего ошибку (неправильный пароль):

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<!DOCTYPE result [...]> 
<result firstcode="7" secondcode="102" count="0"></result> 

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

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. Формируется объединённая строка из параметров (в их строковом представлении, в формате как они переданы в ответе): billnumber, ordernumber, responsecode, amount, currency, meannumber, approvalcode, orderstate, packetdate (без разделителей)

2. Полученная строка подписывается закрытым ключом АПК Ассист.

3. Итоговая последовательность байт кодируется в BASE64.

Пример результата запроса отмены платежа или возврата средств:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws="http://www.paysecure.ru/ws/">
<soapenv:Body><ws:WSCancelResponseParams>
        <order>
            <billnumber>500000210031071</billnumber>
            <ordernumber>14092012-002</ordernumber>
            <testmode>0</testmode>
            <ordercomment>тестовый платеж</ordercomment>
            <orderamount>4010.00</orderamount>
            <ordercurrency>RUB</ordercurrency>
            <rate>1</rate>
            <orderdate>14.09.2017 09:29:38</orderdate>
            <orderstate>Canceled</orderstate>
            <customer>
                <firstname>Testov</firstname>
                <lastname>Test</lastname>
                <middlename>T</middlename>
                <email>test@test.ru</email>
            </customer>
            <operation>
                <billnumber>500000210031071.3</billnumber>
                <operationtype>300</operationtype>
                <operationstate>Завершено успешно.</operationstate>
                <amount>4010.00</amount>
                <currency>RUB</currency>
                <ipaddress>10.10.10.10</ipaddress>
                <meantype_id>1</meantype_id>
                <meansubtype></meansubtype>
                <meannumber>411111****1111</meannumber>
                <cardholder>TEST</cardholder>
                <cardexpirationdate>12/20</cardexpirationdate>
                <issuebank>Bank T</issuebank>
                <bankcountry>Россия</bankcountry>
                <responsecode>AS000</responsecode>
                <message></message>
                <customermessage>Завершено успешно</customermessage>
                <recommendation></recommendation>
                <approvalcode>X34209</approvalcode>
                <protocoltypename></protocoltypename>
                <processingname>Fake</processingname>
                <operationdate>14.09.2017 09:33:51</operationdate>
                <slipno>112211</slipno>
            </operation>
        </order>
        <packetdate>14.09.2017 09:33:57</packetdate>
        <signature>kA0DAAIRzfHw5YyCW...bQnThrGPVGBK6gh9bxUl1w==</signature>
  </ws:WSCancelResponseParams></soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws="http://www.paysecure.ru/ws/">
<soapenv:Body><ws:WSCancelResponseParams>
        <order>
           <billnumber>5774168101038147</billnumber>
           <ordernumber>14092012-002</ordernumber>
           <testmode>0</testmode>
           <ordercomment>тестовый платеж</ordercomment>
           <orderamount>4010.00</orderamount>
           <ordercurrency>RUB</ordercurrency>
           <rate>1</rate>
           <orderdate>14.09.2012 09:29:38</orderdate>
           <orderstate>Canceled</orderstate>
           <customer>
              <firstname>Ирина</firstname>
              <lastname>Иванова</lastname>
              <middlename>Ивановна</middlename>
              <email>test@test.ru</email>
           </customer>
           <operation>
              <billnumber>5774168101038147.3</billnumber>
              <operationtype>300</operationtype>
              <operationstate>Завершено успешно.</operationstate>
              <amount>4010.00</amount>
              <currency>RUB</currency>
              <ipaddress>10.10.10.10</ipaddress>
              <meantype_id>1</meantype_id>
              <meansubtype></meansubtype>
              <meannumber>411111****1111</meannumber>
              <cardholder>TEST</cardholder>
              <cardexpirationdate>12/20</cardexpirationdate>
              <issuebank>SBERBANK OF RUSSIA</issuebank>
              <bankcountry>Россия</bankcountry>
              <responsecode>AS000</responsecode>
              <message></message>
              <customermessage>Завершено успешно</customermessage>
              <recommendation></recommendation>
              <approvalcode>X34209</approvalcode>
              <protocoltypename></protocoltypename>
              <processingname>Fake</processingname>
              <operationdate>14.09.2012 09:33:51</operationdate>
              <slipno></slipno>
           </operation>
           <operation>
              <billnumber>5774168101038147.4</billnumber>
              <operationtype>600</operationtype>
              <operationstate>Завершено успешно.</operationstate>
              <amount>401.00</amount>
              <currency>RUB</currency>
              <ipaddress>10.10.10.10</ipaddress>
              <meantype_id>12</meantype_id>
              <meansubtype></meansubtype>
              <meannumber>411111****1111</meannumber>
              <cardholder>TEST</cardholder>
              <cardexpirationdate>12/20</cardexpirationdate>
              <issuebank>SBERBANK OF RUSSIA</issuebank>
              <bankcountry>Россия</bankcountry>
              <responsecode>AS000</responsecode>
              <message></message>
              <customermessage>Завершено успешно</customermessage>
              <recommendation></recommendation>
              <approvalcode></approvalcode>                    
              <protocoltypename></protocoltypename>
              <processingname>SberTest</processingname>
              <operationdate>14.09.2012 09:33:51</operationdate>
              <slipno></slipno>
           </operation>
        </order>
        <packetdate>14.09.2012 09:33:57</packetdate>
        <signature>kA0DAAIRzfHw5YyCW...bQnThrGPVGBK6gh9bxUl1w==</signature>
   </ws:WSCancelResponseParams></soapenv:Body>
</soapenv:Envelope>


Пример результата запроса, вернувшего ошибку (неверная сумма):

<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.generalException</faultcode><faultstring/><detail><ns:WSException
xmlns:ns="http://www.paysecure.ru/ws/">
<firstcode>5</firstcode><secondcode>108</secondcode>
</ns:WSException></detail>
</soapenv:Fault></soapenv:Body></soapenv:Envelope>

Наверх