Процесс возврата платежа состоит из четырёх этапов:

  • Магазин обращается на сервер банка с запросом возврата платежа.
  • Сервер банка находит соответствующую оригинальную транзакцию и проверяет возможность выполнения возврата.
  • В случае успешной проверки формирует запрос в процессинговый центр банка-эквайера на выполнение возврата.
  • Получив ответ от процессингового центра банка-эквайера, возвращает ответ магазину в виде XML-сообщения.

Адрес сервера

  • Тестовая среда: https://pps03.fuib.com/merchantapi/refund

Аутентификация магазина

Аутентификация выполняется по HTTP Basic Authentication. Логин — идентификатор магазина, пароль — MerchantApiPassword устанавливается банком и сообщается магазину по запросу.

Параметры GET-запроса

Параметр Обязательность Тип Описание
trx_id String Идентификатор транзакции. Длина 32 символа.
p.rrn String Идентификатор платежа в процессинговом центре банка-эквайера.
amount Number Сумма платежа в валюте оригинальной транзакции. Возможен возврат части суммы, для этого нужно указать сумму, не превышающую сумму оригинальной транзакции.

Пример GET-запроса

https://pps03.fuib.com/merchantapi/refund?trx_id=46622B749D0946EB37791DA383E315A9&p.rrn=009666668732&amount=27282

Параметры ответа банка

Параметр Тип Описание
message_id String
result.code Number Результат операции возврата платежа. 1 — успешный, 2 — неуспешный.
result.desc String Описание результата. Максимальная длина 125 символов.
result.refund.rrn String Идентификатор платежа в процессинговом центре банка-эквайера.
result.refund.authcode String Код авторизации, который отражается у банка-эмитента, банка-эквайера и платежной системы.

Пример ответа банка, если возврат выполнен успешно

<?xml version="1.0"?>
<MerchantAPI>
	<Message id="Message2685">
		<RefundResponse>
			<version>1.0</version>
			<Result>
				<code>1</code>
				<desc>OK</desc>
				<Refund>
					<rrn>009666668732</rrn>
					<authcode>101509</authcode>
				</Refund>
			</Result>
		</RefundResponse>
	</Message>
</MerchantAPI>

Пример ответа банка, если возврат не выполнен

<?xml version="1.0"?>
<MerchantAPI>
	<Message id="Message2685">
		<RefundResponse>
			<version>1.0</version>
			<Result>
				<code>2</code>
				<desc>Operation failed</desc>
			</Result>
		</RefundResponse>
	</Message>
</MerchantAPI>

Пример ответа банка, если неверно сформирован запрос

<?xml version="1.0"?>
<MerchantAPI>
	<Message id="Message2685">
		<RefundResponse>
			<version>1.0</version>
			<Result>
				<code>3</code>
				<desc>Parameters not matching</desc>
			</Result>
		</RefundResponse>
	</Message>
</MerchantAPI>