С момента регистрации платеж проходит стадии жизненного цикла, изменяющие его статус. Каждый статус задается уникальным числовым идентификатором.
Проведение платежа считается завершенным, когда он достигает финального статуса. Значения статусов с указанием признака финальности приведены в разделе Статусы платежей.
Для проверки успешного прохождения платежа, вы должны периодически выполнять данный запрос до получения успешного или неуспешного финального статуса. Запрос позволяет получить текущий статус платежа.
Между двумя последовательными запросами проверки статуса одного и того же платежа следует соблюдать интервал не менее 10 минут.<?xml version="1.0" encoding="utf-8"?>
<request>
<request-type>pay</request-type>
<extra name="password">XXXXXX</extra>
<terminal-id>123</terminal-id>
<status>
<payment>
<transaction-number>12345678</transaction-number>
<to>
<account-number>79181234567</account-number>
</to>
</payment>
</status>
</request>
Тег | Описание |
---|---|
request | Группирующий тег. Дочерние теги содержат параметры платежа. |
request-type | Тип запроса (равен идентификатору запроса пополнения QIWI Кошелька: pay ) |
terminal-id | Идентификатор агента в системе QIWI Wallet |
extra name="password" | Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet |
status | Группирующий тег, содержит список платежей, по которым необходимо получить текущий статус. Данный тег может содержать один или более тегов payment |
payment | Группирующий тег, содержит данные единичного платежа, статус которого запрашивается. |
transaction-number | Номер транзакции платежа в информационной системе Контрагента. Должен совпадать с номером, указанным при создании этого платежа. В сочетании с идентификатором Контрагента номер транзакции однозначно идентифицирует платёж в системе QIWI Wallet. Значение остается неизменным в течение жизненного цикла платежа. |
to | Группирующий тег, содержит информацию о платеже |
to/account-number | Идентификатор Клиента в системе QIWI Wallet (номер телефона Клиента системы QIWI Wallet в международном формате) |
При возникновении сетевых ошибок (например, таймауты при соединении или чтении ответа), HTTP-ошибок (HTTP-статус не равен 200, пустой ответ), некорректных XML-документов (например, c отсутствующими тегами и/или атрибутами) вы должны сделать повторный запрос. В таких случаях информация о статусе платежа не доступна, поэтому вы не должны отклонять платеж на своей стороне.
Формат ответа зависит от того, как сервер обработал запрос:
- ответ без ошибок обработки запроса - в случае, когда запрос обработан корректно;
- ответ с ошибкой обработки запроса - в случае, когда сервер не смог обработать запрос.
При возврате ответов с ошибками запроса или с нефинальными статусами платежей вы должны сделать повторный запрос проверки статуса платежа.
Если вы не уверены в корректной расшифровке ответа API, обратитесь в Службу поддержки: [email protected].Если запрос обработан корректно, то в ответе возвращаются сведения о статусе платежа в теге <payment>
.
<?xml version="1.0" encoding="utf-8"?>
<response>
<result-code fatal="false">0</result-code>
<payment status='60' transaction-number='12345678' txn_id='759640439' result-сode='0' message='' msg='' final-status='true' fatal-error='false' txn-date='12.03.2012 14:24:38' />
<balances>
<balance code="643">90.79</balance>
<balance code="840">0.00</balance>
</balances>
</response>
Параметры ответа:
Тег | Описание | Атрибуты |
---|---|---|
response | Группирующий тег ответа. | Отсутствуют. |
result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. |
payment | Описание платежа, статус которого запрошен. В случае запроса статуса по нескольким платежам в ответе содержится соответствующее количество тегов payment. В случае, если запрашиваемый платеж не найден в системе QIWI Wallet, соответствующий тег payment будет отсутствовать в ответе. | status – статус платежа в системе QIWI Wallet;txn_id – идентификатор транзакции платежа в системе QIWI Wallet;transaction-number – номер транзакции платежа в информационной системе Контрагента;result-code – код ошибки обработки платежа;message , msg - текстовое описание ошибки;final-status – логический признак финального статуса платежа;fatal-error - логический признак фатальности ошибки обработки платежа (фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки);txn-date – дата приема платежа в систему QIWI Wallet. |
balances | Группирующий тег, содержит информацию о балансе всех активных счетов Контрагента в системе QIWI Wallet. | Отсутствуют. |
balances/balance | Текущий баланс единичного счета Контрагента в системе QIWI Wallet. | code - цифровой код валюты счета (в формате ISO 4217). |
Если сервер не смог обработать запрос на получение статуса платежа, API возвращает ответ с кодом произошедшей ошибки. В этом случае информация о статусе платежа отсутствует в ответе, поэтому вы должны продолжать запросы статуса, не отклоняя платеж на своей стороне.
<?xml version="1.0" encoding="utf-8"?>
<response>
<result-code fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300</result-code>
</response>
Параметры ответа:
Тег | Описание | Атрибуты |
---|---|---|
result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства. При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования;message , msg - текстовое описание ошибки. |