ДеньгиOnline

2017-07-29 03:29:09

Действие check

Предзапрос на произведение выплаты

Перед проведением выплаты (действие pay) необходимо проверить:

  • возможность выплаты в указанную услугу,
  • размер средств на балансе,
  • валидность аккаунта получателя в системе сервис-провайдера.

Для этого выполняется предзапрос на произведение выплаты - действие check, в результате которого проект получает номер инвойса для запроса на произведение выплаты. 

Внимание!

Успех запроса check (т.е. получение ответа со всеми необходимыми параметрами), НЕ ГАРАНТИРУЕТ успех запроса pay (т.е. проведения выплаты)!

Предзапрос осуществляется только для получения параметров, необходимых для осуществления запроса на выплату. Более того, если с момента запроса check прошло достаточно большое время, считается, что успешный результат проверки более не может быть гарантирован, и созданный платеж получит статус 993 - INVOICE_LIFETIME_EXPIRED.

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

Запрос, помимо обязательных общих параметров, содержит в теге params следующие параметры:

Параметр Описание Тип данных Обязательность
txn_id

ID транзакции во внешней системе (системе Партнера)

ID должен быть уникальным, в противном случае будет возвращена ошибка 25 - DUPLICATE_TXN
string (255) да
paysystem ID услуги integer / string да
account

ID аккаунта в системе получателя платежа (сервис-провайдера). Например, номер карты.

Для проведения платежей в некоторые услуги требуется указывать дополнительные параметры.
Список параметров и требования к ним приведены в теге params ответа на запрос commissions.
integer / string

да

 

amount

Сумма выплаты

Если сумма не указана:

  • будут выведены курсы пересчёта из валюты запроса в валюту услуги;
  • её необходимо передать в числе параметров действия pay.

Если сумма указана – будет выведена информация о конвертации.

integer / double (4)

нет

 

currency

ID валюты платежа

Если валюта не указана, то считается, что сумма платежа указана в валюте основного баланса проекта.

Внимание!

Валюта платежа не может быть изменена!
Если в check-запросе указана одна валюта, а в pay-запросе - другая, будет возвращена ошибка 21 - BAD_CURRENCY

string / integer
ISO 4217 number-3

нет

 

Параметры ответа

Ответ Системы в формате xml содержит, помимо общих, следующие теги:

Параметр Описание Тип данных
invoice

Номер инвойса.

Используйте его для действий pay и pay_status

integer
income currency="ХХХ" Сумма и валюта запроса на выплату

(сумма) integer;

(валюта) integer / string 
ISO 4217 number-3

amount currency="ХХХ" Сумма и валюта основного баланса партнера
outcome currency="ХХХ" Сумма и валюта выплаты в системе-получателе
rate income="ХХХ" outcome="ХХХ" total="ХХХ"

Курсы конвертации:

  • income – из валюты запроса в валюту баланса партнера;
  • outcome – из валюты баланса проекта в валюту системы-получателя;
  • total – из валюты запроса в валюту системы-получателя

decimal(11.4)
разделитель – точка

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

<?xml version="1.0" encoding="UTF-8"?>
<request>
	<action>check</action>
	<project>1234</project>
	<timestamp>1360928308</timestamp>
		<params>
			<txn_id>511e1e34d785b</txn_id>
			<paysystem>654321</paysystem>
			<account>user@server.com</account>
			<amount>12.34</amount>
		</params>
	<sign>deb5627204b9e604d4582e80424f8ee6</sign>
</request>

Пример ответа (успех)

<?xml version="1.0" encoding="UTF-8"?>
<response>
	<status>1</status>
	<reference>501582</reference>
	<timestamp>1360928308</timestamp>
	<invoice>30876</invoice>
	<income currency="643">12.34</income>
	<amount currency="643">12.34</amount>
	<outcome currency="643">12.34</outcome>
	<rate income="1" outcome="1" total="1"></rate>
</response>

Пример ответа (ошибка)

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>19</status>
    <reference>198</reference>
    <timestamp>1358259068</timestamp>
</response>