Вопросы
bss@qiwi.com
NAV Navbar
Примеры

Введение

Последнее обновление: 2020-07-14

API выплат на карты и QIWI Кошельки предназначено для платежных агентов КИВИ Банк (АО), позволяет зачислять деньги на банковские карты клиентов, выпущенные платежными системами VISA, MasterCard, МИР, а также на кошельки пользователей (балансы учетных записей клиентов в системе QIWI Wallet).

Что позволяет протокол

  1. Выплачивать деньги на карты, эмитированные банками РФ и зарубежными банками.
  2. Выплачивать через Систему Быстрых Платежей (СБП).
  3. Выплачивать деньги на QIWI кошельки клиентов — pay(1).
  4. Проверять текущий статус транзакции перевода — status.
  5. Проверять возможность проведения выплаты на QIWI Кошелек — check-deposit-possible.
  6. Следить за балансом на агентском счете для выплат — ping.

Как это работает

Выплаты на банковские карты

  1. Пользователь передает вам сумму пополнения и номер карты, которую нужно пополнить.
  2. Вы отправляете запрос выплаты на карту банка РФ или запрос выплаты на карту зарубежного банка в Top-Up API QIWI Кошелька для выплаты средств на указанную карту.
  3. Вы проверяете текущий статус платежа. Платеж должен принять финальный статус.
  4. При успешном финальном статусе платежа средства автоматически перечисляются на указанную банковскую карту с вашего агентского счета.
  5. При неуспешном финальном статусе платежа вы возвращаете средства пользователю.

Выплаты через СБП

  1. Пользователь передает вам сумму пополнения, Идентификатор Банка Получателя из списка в формате xlsx (скачать), csv (скачать) и Идентификатор Получателя (номер телефона), карту которого нужно пополнить.
  2. Вы отправляете запрос выплаты через СБП в Top-Up API QIWI Кошелька для выплаты средств по указанному Идентификатору Получателя в выбранный банк получателя.
  3. Вы проверяете текущий статус платежа. Платеж должен принять финальный статус.
  4. При успешном финальном статусе платежа средства автоматически перечисляются через СБП по указанному Идентификатору Получателя с вашего агентского счета.
  5. При неуспешном финальном статусе платежа вы возвращаете средства пользователю.

Выплаты на QIWI Кошельки

  1. Пользователь передает вам сумму пополнения и номер QIWI кошелька, который нужно пополнить.
  2. Вы отправляете запрос в Top-Up API QIWI Кошелька на проверку возможности проведения платежа.
  3. Вы отправляете запрос в Top-Up API QIWI Кошелька на пополнение указанного кошелька.
  4. Вы проверяете текущий статус платежа. Платеж должен принять финальный статус.
  5. При успешном финальном статусе платежа средства автоматически перечисляются на баланс указанного кошелька с вашего агентского счета.
  6. При неуспешном финальном статусе платежа вы возвращаете средства пользователю.

Обратная связь

По вопросам интеграции и сотрудничества пишите на bss@qiwi.com.

Формат взаимодействия

Взаимодействие происходит посредством пересылки запросов и ответов на них системы QIWI Wallet. Запросы и ответы – XML-документы в кодировке UTF-8.

В API используются только HTTP POST-запросы, XML-документ помещается в теле HTTP-запроса. Используется только HTTPS-протокол.

Справка по формату значений тегов и атрибутов XML.

Запросы в производственной среде отправляются по протоколу HTTPS на URL:

https://api.qiwi.com/xml/topup.jsp

При авторизации по клиентскому сертификату запросы в производственной среде отправляются по протоколу HTTPS на URL:

https://private-api.qiwi.com/xml/topup.jsp

Необходимо проверять подлинность сервера QIWI с помощью цепочки сертификации и не устанавливать соединение, если проверка не пройдет успешно.

Аутентификация запросов выполняется по логину и паролю, помещаемым в XML-тегах terminal-id и extra name="password", соответственно. Логин и пароль выдаются при подключении к системе QIWI Wallet. Смена пароля выполняется через сотрудников КИВИ Банк (АО) или сотрудников уполномоченного представителя КИВИ Банк (АО).

Для повышения безопасности информационного обмена также может использоваться аутентификация по цифровой подписи или по клиентскому сертификату.

Единственным признаком, на основе которого вы можете принимать решение о успешности или неуспешности выполнения платежа на своей стороне, является статус транзакции в системе QIWI Wallet. Как только вы получили для вашего платежа идентификатор транзакции txn_id в системе QIWI Wallet, вы можете проверить статус транзакции методом Проверка статуса платежа.

Каждому платежу (набору реквизитов: сумма, валюта, идентификатор сервиса) вы должны присваивать уникальный идентификатор.

Этапы процесса информационного взаимодействия при выплате на карту

sequenceDiagram participant Agent as Агент participant qb as Система QIWI Wallet Agent->>qb:Выплата на карту (запрос "pay") qb->>Agent:Ответ (статус платежа или ошибка) Agent->>Agent:Финальный статус платежа? alt Если финальный статус не получен loop Цикл до получения финального статуса Agent->>qb:Проверка статуса платежа (запрос "status") qb->>Agent:Ответ (текущий статус платежа) end end alt Успех / Финал qb->>qb:Выплата средств на карту Клиента end alt Неуспех / Финал Agent->>Agent:Возврат средств Клиенту end

Этапы процесса информационного взаимодействия при пополнении QIWI кошелька

sequenceDiagram participant Agent as Агент participant qb as Система QIWI Wallet Agent->>qb:Проверка возможности
проведения платежа
(запрос "check-deposit-possible") qb->>Agent:Ответ alt Проведение платежа возможно Agent->>qb:Пополнение учетной записи Клиента
(запрос "pay") qb->>qb:Создание кошелька
при отсутствии учетной записи qb->>Agent:Ответ (статус платежа или ошибка) Agent->>Agent:Финальный статус платежа? alt Если финальный статус не получен loop Цикл до получения финального статуса Agent->>qb:Проверка статуса платежа пополнения
(запрос "status") qb->>Agent:Ответ (текущий статус платежа) end end alt Успех / Финал qb->>qb:Зачисление средств на кошелек Клиента end alt Неуспех / Финал Agent->>Agent:Возврат средств Клиенту end end

Аутентификация по SSL

Последнее обновление: 2019-11-11 | Редактировать на GitHub

Помимо аутентификации по логину и паролю, может быть использована аутентификация по сертификатам, а также электронная цифровая подпись.

Аутентификация по цифровой подписи

Для аутентификации по цифровой подписи Контрагент должен создать пару RSA-ключей, например, с помощью утилиты OpenSSL. Размер ключа должен быть 2048 бит, ключ должен быть закодирован в BASE64.

Как создать ключи

openssl genrsa -out private.key 2048

Далее введите пароль и подтвердите:

Enter pass phrase for private.key:

В папке выполнения команды будет создан файл с приватным ключом: private.key.

openssl rsa -in private.key -pubout -out public.key

Как подписывать запросы

POST /xml/topup.jsp HTTP/1.1
Content-Type: application/xml
Host: api.qiwi.com
X-Digital-Sign: XXXXXXXX
X-Digital-Sign-Alg: SHA1withRSA

  1. Для каждого XML-пакета вычисляется хэш от текста XML-запроса с использованием выбранного алгоритма MD5 / SHA1, подписывается сохраненным закрытым ключом и кодируется по схеме Base64. Таким образом формируется ЭЦП пакета.
  2. В заголовке HTTP запроса передаются следующие параметры для выполнения авторизации и проверки целостности данных пакета:
    • X-Digital-Sign – ЭЦП пакета;
    • X-Digital-Sign-Alg – алгоритм вычисления ЭЦП, выбранный для вычисления хеша. Поддерживаются алгоритмы:
      • MD5withRSA
      • SHA1withRSA

Аутентификация по клиентскому сертификату

Для аутентификации по клиентскому сертификату Контрагенту необходимо создать, а затем передать запрос на сертификат и открытый ключ в QIWI.

1. Создание CSR-запроса на сертификат

Запрос на сертификат генерируется одновременно с закрытым ключом, например, с помощью утилиты OpenSSL:

openssl req -new -nodes -batch -subj "/C=RU/ST=Russia/L=Moscow/O=QIWI/emailAddress=mail@qiwi.ru" -newkey rsa:2048 -keyout private.key -out cert_request.csr

В запросе Контрагент указывает свои данные: язык, страну, город, название организации и email. В примере запроса указаны данные QIWI.

В папке, в которой была выполнена команда, будет создан файл cert_request.csr и файл закрытого ключа private.key.

Далее формируется открытый ключ, соответствующий закрытому. Выполните команду:

openssl rsa -in private.key -pubout -out public.key

2. Получение сертификата

Открытый ключ и запрос на сертификат необходимо передать менеджеру QIWI. Менеджер возвращает Контрагенту СА-сертификат и клиентский сертификат, сформированный в ответ на запрос.

3. Отправка запросов

Запросы к API должны отправляться по адресу:

https://private-api.qiwi.com/xml/topup.jsp

Пример запроса с сертификатом:

user@pc:~/station$ openssl s_client -connect private-api.qiwi.com/xml/topup.jsp:443 -showcerts -CAfile ./CA/our_CA -cert ./my_cert -key ./private_key.pem

Выплаты на карты банков РФ

Последнее обновление: 2018-11-01

Операция используется для выплаты средств на банковские карты платежных систем. Выплата средств в системе QIWI Wallet представляет собой списание средств с авансового депозита агента и зачисление на банковские карты международных платежных систем «Visa International», «MasterCard International Incorporated», платежной системы «Мир», эмитированные кредитными организациями РФ. Платежная система определяется по номеру карты.

После выполнения запроса платеж начинает свой жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует свой статус платежа. Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа вы должны периодически (но не чаще одного раза в 10 минут) выполнять запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа. Коды финальных статусов указаны в списке возвращаемых API статусов платежа.

Формат запроса

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

<?xml version="1.0" encoding="utf-8"?>
<request>
  <request-type>pay</request-type>
  <terminal-id>123</terminal-id>
  <extra name="password">***</extra>
  <auth>
    <payment>
      <transaction-number>12345678</transaction-number>
      <from>
        <ccy>RUB</ccy>
      </from>
      <to>
        <amount>1115.00</amount>
        <ccy>RUB</ccy>
        <service-id>34020</service-id>
        <account-number>4265111122334411</account-number>
      </to>
    </payment>
  </auth>
</request>
Тег Описание
request Группирующий тег. Дочерние теги содержат параметры платежа.
request-type Тип запроса (идентификатор запроса выплаты: pay)
terminal-id Идентификатор агента в системе QIWI Wallet
extra name="password" Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet
auth Группирующий тег, описывает платежные данные
payment Группирующий тег, описывает единичный платеж. В запросе может присутствовать только один тег payment.
transaction-number Номер транзакции в информационной системе агента. Его необходимо использовать при проверке статуса платежа. Номер транзакции и идентификатор terminal-id однозначно определяют транзакцию в системе QIWI Wallet.
from Группирующий тег, содержит информацию о сумме, полученной агентом от клиента
from/ccy Валюта счета агента, с которого будет произведено списание денежных средств (в качестве значения используется цифровой или буквенный код валюты по ISO 4217)
from/service-id Идентификатор источника (канала) пополнения (необязательный параметр). Параметр используется в случае необходимости разделения потоков пополнения, сохраняя единый баланс агента.
to Группирующий тег, содержит информацию о платеже
to/amount Сумма к зачислению на карту
to/service-id Идентификатор сервиса, на который производится зачисление средств при выплате (константа: 34020)
to/account-number Номер карты Visa / MasterCard / МИР (без пробелов) для зачисления средств при выплате. Только карты, эмитированные кредитными организациями РФ.
to/ccy Валюта выплаты (только RUB).

Формат ответа

При возникновении сетевых ошибок (например, таймауты при соединении или чтении ответа), HTTP-ошибок (HTTP-статус не равен 200, пустой ответ), некорректных XML-документов (например, c отсутствующими обязательными тегами и/или атрибутами) вы должны перейти к опросу статуса платежа до получения успешного или неуспешного финального статуса платежа. Поскольку при возникновении данных ошибок информация о статусе транзакции не доступна, вы не должны отклонять платеж на своей стороне.

Формат ответа API зависит от того, как сервер обработал запрос:

Ответ без ошибок обработки

<?xml version="1.0" encoding="utf-8"?>
<response>
<result-code fatal="false">0</result-code>
<payment status='60' txn_id='6060' transaction-number='12345678' result-code='0' message='Ok' msg='Ok' final-status='true' fatal-error='false' txn-date='02.03.2011 14:35:46'  >
  <from>
    <amount>1115.00</amount>
    <ccy>643</ccy>
  </from>
  <to>
    <service-id>34020</service-id>
    <amount>955.00</amount>
    <ccy>643</ccy>
    <account-number>4111********1123</account-number>
  </to>
</payment>
<balances>
<balance code="428">0.00</balance>
<balance code="643">200.00</balance>
<balance code="840">12.20</balance>
</balances>
</response>

Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге <payment>.

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

Тег Описание Атрибуты
response Группирующий тег ответа. Отсутствуют.
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса в целом.
payment Описание принятого платежа. statusстатус платежа в системе QIWI Wallet;
txn_id – идентификатор транзакции в системе QIWI Wallet. Если не заполнен, платеж не был зарегистрирован из-за временной ошибки. Попробуйте повторить запрос позже;
transaction-number – номер транзакции в информационной системе Контрагента;
result-codeкод ошибки обработки платежа;
message, msg - текстовое описание ошибки;
final-status – логический признак финального статуса платежа;
fatal-error - логический признак фатальности ошибки обработки платежа (фатальная ошибка означает, что повторный запрос с теми же реквизитами приведет к повторению той же ошибки);
txn-date – дата приема платежа в систему QIWI Wallet.
from Группирующий тег, содержит информацию о списанных средствах. Отсутствуют.
from/amount Сумма, списанная со счета Контрагента. Отсутствуют.
from/ccy Валюта счета (в качестве значения используется цифровой или буквенный код валюты по ISO 4217). Отсутствуют.
from/service-id Идентификатор источника (канала) пополнения (необязательный параметр). Параметр используется в случае необходимости разделения потоков пополнения, сохраняя единый баланс агента.  
to Группирующий тег, содержит информацию о платеже. Отсутствуют.
to/amount Сумма к зачислению на карту. Отсутствуют.
to/service-id Идентификатор сервиса, на который производится зачисление средств при выплате. Отсутствуют.
to/account-number Номер карты Клиента (маскированный). Отсутствуют.
to/ccy Валюта выплаты (цифровой или буквенный код валюты по ISO 4217). Отсутствуют.
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 – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования;
message, msg - текстовое описание ошибки.

Выплаты на карты зарубежных банков

Последнее обновление: 2020-10-08

Операция используется для выплаты средств на банковские карты, выпущенные зарубежными банками. Выплата средств в системе QIWI Wallet представляет собой списание средств с авансового депозита агента и зачисление на банковские карты международных платежных систем «Visa International», «MasterCard International Incorporated», эмитированные зарубежными кредитными организациями. Платежная система определяется по номеру карты.

После выполнения запроса платеж начинает свой жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует свой статус платежа. Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа вы должны периодически (но не чаще одного раза в 10 минут) выполнять запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа. Коды финальных статусов указаны в списке возвращаемых API статусов платежа.

Формат запроса

Справка по формату значений тегов и атрибутов XML.

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

<?xml version="1.0" encoding="utf-8"?>
<request>
  <request-type>pay</request-type>
  <terminal-id>123</terminal-id>
  <extra name="password">***</extra>
  <auth>
    <payment>
      <transaction-number>12345678</transaction-number>
      <from>
        <ccy>RUB</ccy>
        <extra name="source_first_name">Иван</extra>
        <extra name="source_last_name">Иванов</extra>
        <extra name="source_address">Можайское шоссе 38-2-46</extra>
        <extra name="source_city">Moscow</extra>
        <extra name="source_country_code">RU</extra>
        <extra name="source_zip_code">121354</extra>
        <extra name="source_resident">0</extra>
        <extra name="source_birthday">16.12.1990</extra>
      </from>
      <to>
        <amount>1115.00</amount>
        <ccy>RUB</ccy>
        <service-id>36655</service-id>
        <account-number>4265111122334411</account-number>
        <extra name="comment">Перевод на карту</extra>
        <extra name="target_card_holder">Petrov Petr</extra>
      </to>
    </payment>
  </auth>
</request>

Внутри тега payment поля с тегом extra могут располагаться в любом порядке

Тег Описание
request Группирующий тег. Дочерние теги содержат параметры платежа.
request-type Тип запроса (идентификатор запроса выплаты: pay)
terminal-id Идентификатор агента в системе QIWI Wallet
extra name="password" Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet
auth Группирующий тег, описывает платежные данные
payment Группирующий тег, описывает единичный платеж. В запросе может присутствовать только один тег payment.
transaction-number Номер транзакции в информационной системе агента. Его необходимо использовать при проверке статуса платежа. Номер транзакции и идентификатор terminal-id однозначно определяют транзакцию в системе QIWI Wallet.
from Группирующий тег, содержит информацию о сумме, полученной агентом от клиента
from/ccy Валюта счета агента, с которого будет произведено списание денежных средств (в качестве значения используется цифровой или буквенный код валюты по ISO 4217)
from/extra name="source_first_name" Имя плательщика
from/extra name="source_last_name" Фамилия плательщика
from/extra name="source_address" Адрес плательщика
from/extra name="source_city" Город адреса плательщика
from/extra name="source_country_code" 2-х буквенный код страны по ISO 3166-1 alpha-2
from/extra name="source_zip_code" Почтовый индекс плательщика
from/extra name="source_resident" Признак резидента (0 – нерезидент, 1 - резидент)
from/extra name="source_birthday" Дата рождения
from/service-id Идентификатор источника (канала) пополнения (необязательный параметр). Параметр используется в случае необходимости разделения потоков пополнения, сохраняя единый баланс агента.
to Группирующий тег, содержит информацию о платеже
to/amount Сумма к зачислению на карту
to/service-id Идентификатор сервиса, на который производится зачисление средств при выплате (константа: 36655)
to/account-number Номер карты Visa / MasterCard (без пробелов) для зачисления средств при выплате. Только карты, эмитированные зарубежными кредитными организациями.
to/ccy Валюта выплаты (только RUB, USD, EUR).
to/extra name="comment" Комментарий к платежу
to/extra name="target_card_holder" Фамилия и имя получателя на латинице в формате LastName FirstName

Формат ответа

При возникновении сетевых ошибок (например, таймауты при соединении или чтении ответа), HTTP-ошибок (HTTP-статус не равен 200, пустой ответ), некорректных XML-документов (например, c отсутствующими обязательными тегами и/или атрибутами) вы должны перейти к опросу статуса платежа до получения успешного или неуспешного финального статуса платежа. Поскольку при возникновении данных ошибок информация о статусе транзакции не доступна, вы не должны отклонять платеж на своей стороне.

Формат ответа API зависит от того, как сервер обработал запрос:

Ответ без ошибок обработки

<?xml version="1.0" encoding="utf-8"?>
<response>
<result-code fatal="false">0</result-code>
<payment status='60' txn_id='6060' transaction-number='12345678' result-code='0' message='Ok' msg='Ok' final-status='true' fatal-error='false' txn-date='02.03.2011 14:35:46'  >
  <from>
    <amount>1115.00</amount>
    <ccy>643</ccy>
  </from>
  <to>
    <service-id>36655</service-id>
    <amount>955.00</amount>
    <ccy>643</ccy>
    <account-number>4111********1123</account-number>
  </to>
</payment>
<balances>
<balance code="428">0.00</balance>
<balance code="643">200.00</balance>
<balance code="840">12.20</balance>
</balances>
</response>

Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге <payment>.

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

Тег Описание Атрибуты
response Группирующий тег ответа. Отсутствуют.
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса в целом.
payment Описание принятого платежа. statusстатус платежа в системе QIWI Wallet;
txn_id – идентификатор транзакции в системе QIWI Wallet. Если не заполнен, платеж не был зарегистрирован из-за временной ошибки. Попробуйте повторить запрос позже;
transaction-number – номер транзакции в информационной системе Контрагента;
result-codeкод ошибки обработки платежа;
message, msg - текстовое описание ошибки;
final-status – логический признак финального статуса платежа;
fatal-error - логический признак фатальности ошибки обработки платежа (фатальная ошибка означает, что повторный запрос с теми же реквизитами приведет к повторению той же ошибки);
txn-date – дата приема платежа в систему QIWI Wallet.
from Группирующий тег, содержит информацию о списанных средствах. Отсутствуют.
from/amount Сумма, списанная со счета Контрагента. Отсутствуют.
from/ccy Валюта счета (в качестве значения используется цифровой или буквенный код валюты по ISO 4217). Отсутствуют.
from/service-id Идентификатор источника (канала) пополнения (необязательный параметр). Параметр используется в случае необходимости разделения потоков пополнения, сохраняя единый баланс агента.  
to Группирующий тег, содержит информацию о платеже. Отсутствуют.
to/amount Сумма к зачислению на карту. Отсутствуют.
to/service-id Идентификатор сервиса, на который производится зачисление средств при выплате. Отсутствуют.
to/account-number Номер карты Клиента (маскированный). Отсутствуют.
to/ccy Валюта выплаты (цифровой или буквенный код валюты по ISO 4217). Отсутствуют.
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 – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования;
message, msg - текстовое описание ошибки.

Выплаты через СБП

Последнее обновление: 2022-05-23 | Редактировать на GitHub

Операция используется для выплаты средств через Систему быстрых переводов (СБП). Позволяет делать переводы любому банку-участнику СБП по номеру мобильного телефона.

После выполнения запроса платеж начинает свой жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует свой статус платежа. Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа вы должны периодически (но не чаще одного раза в 10 минут) выполнять запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа. Признак финального статуса указан в списке возвращаемых API статусов платежа.

Формат запроса

Справка по формату значений тегов и атрибутов XML.

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

<?xml version="1.0" encoding="utf-8"?>
<request>
  <request-type>pay</request-type>
  <terminal-id>123</terminal-id>
  <extra name="password">***</extra>
  <auth>
    <payment>
      <transaction-number>12345678</transaction-number>
      <from>
        <ccy>RUB</ccy>
      </from>
      <to>
        <amount>10007.03</amount>
        <ccy>RUB</ccy>
        <service-id>38413</service-id>
        <account-number>70070310009</account-number>
        <extra name="bankId">100000000008</extra>
      </to>
    </payment>
  </auth>
</request>

Внутри тега payment поля с тегом extra могут располагаться в любом порядке

Тег Описание
request Группирующий тег. Дочерние теги содержат параметры платежа.
request-type Тип запроса (идентификатор запроса выплаты: pay)
terminal-id Идентификатор агента в системе QIWI Wallet
extra name="password" Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet
auth Группирующий тег, описывает платежные данные
payment Группирующий тег, описывает единичный платеж. В запросе может присутствовать только один тег payment.
transaction-number Номер транзакции в информационной системе агента. Его необходимо использовать при проверке статуса платежа. Номер транзакции и идентификатор terminal-id однозначно определяют транзакцию в системе QIWI Wallet.
from Группирующий тег, содержит информацию о сумме, полученной агентом от клиента
from/ccy Валюта счета агента, с которого будет произведено списание денежных средств. Указывается цифровой или буквенный код валюты по ISO 4217.
from/service-id Идентификатор источника (канала) пополнения (необязательный параметр). Параметр используется в случае необходимости разделения потоков пополнения, сохраняя единый баланс агента.
to Группирующий тег, содержит информацию о платеже
to/amount Сумма к зачислению
to/ccy Валюта выплаты (только RUB)
to/service-id Идентификатор сервиса, на который производится зачисление средств при выплате (константа: 38413)
to/account-number Идентификатор Получателя в СБП
to/extra name="bankId" Идентификатор Банка Получателя в СБП. Список банков, доступных для оплаты через СБП: в формате xlsx (скачать), csv (скачать).

Формат ответа

При возникновении сетевых ошибок (например, таймауты при соединении или чтении ответа), HTTP-ошибок (HTTP-статус не равен 200, пустой ответ), некорректных XML-документов (например, c отсутствующими обязательными тегами и/или атрибутами) вы должны перейти к опросу статуса платежа до получения успешного или неуспешного финального статуса платежа. Поскольку при возникновении данных ошибок информация о статусе транзакции не доступна, вы не должны отклонять платеж на своей стороне.

Формат ответа API зависит от того, как сервер обработал запрос:

Ответ без ошибок обработки

<response>
  <result-code fatal="false">0</result-code>
  <payments>
    <payment status='50' txn_id='20323739405' transaction-number='12345678' result-code='0' message='Ок' final-status='false' fatal-error='false' txn-date='14.04.2022 09:40:09'  >
      <from>
        <amount>10007.03</amount>
        <ccy>643</ccy>
      </from>
      <to>
        <service-id>38413</service-id>
        <amount>10007.03</amount>
        <ccy>643</ccy>
        <account-number>70070310009</account-number>
      </to>
    </payment>
  </payments>
  <balances><balance code="643">6776332.87</balance></balances><balances-ovd><balance-ovd code="643">6776332.87</balance-ovd></balances-ovd><f></f><lk-status>001</lk-status></response>

Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге <payment>.

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

Тег Описание Атрибуты
response Группирующий тег ответа. Отсутствуют.
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса в целом.
payment Описание принятого платежа. statusстатус платежа в системе QIWI Wallet;
txn_id – идентификатор транзакции в системе QIWI Wallet. Если не заполнен, платеж не был зарегистрирован из-за временной ошибки. Попробуйте повторить запрос позже;
transaction-number – номер транзакции в информационной системе Контрагента;
result-codeкод ошибки обработки платежа;
message, msg - текстовое описание ошибки;
final-status – логический признак финального статуса платежа;
fatal-error - логический признак фатальности ошибки обработки платежа (фатальная ошибка означает, что повторный запрос с теми же реквизитами приведет к повторению той же ошибки);
txn-date – дата приема платежа в систему QIWI Wallet.
from Группирующий тег, содержит информацию о списанных средствах. Отсутствуют.
from/amount Сумма, списанная со счета Контрагента. Отсутствуют.
from/ccy Валюта счета (в качестве значения используется цифровой или буквенный код валюты по ISO 4217). Отсутствуют.
to Группирующий тег, содержит информацию о платеже. Отсутствуют.
to/service-id Идентификатор сервиса, на который производится зачисление средств при выплате. Отсутствуют.
to/amount Сумма к зачислению. Отсутствуют.
to/ccy Валюта выплаты (цифровой или буквенный код валюты по ISO 4217). Отсутствуют.
to/account-number Идентификатор Получателя. Отсутствуют.
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 – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования;
message, msg - текстовое описание ошибки.

Пополнение баланса QIWI Кошелька

Последнее обновление: 2020-07-10 | Редактировать на GitHub

Запрос используется для перевода средств с агентского счета на счет клиента в системе QIWI Wallet. Перед выполнением запроса необходимо проверить возможность проведения платежа.

Вы должны указывать тип средств, которые получены Контрагентом от клиента – наличные или безналичные средства, в параметре запроса extra name="income_wire_transfer".

Если клиент с указанным номером кошелька не существует в системе QIWI Wallet и проведение платежа возможно, то клиент будет создан в момент регистрации платежа.

После успешного выполнения запроса платеж начинает жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует свой статус платежа. Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа вы должны периодически (но не чаще одного раза в 10 минут) выполнять запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа. Коды финальных статусов указаны в списке возвращаемых API статусов платежа.

Формат запроса

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

<?xml version="1.0" encoding="utf-8"?>
<request>
  <request-type>pay</request-type>
  <terminal-id>123</terminal-id>
  <extra name="password">***</extra>
  <extra name="income_wire_transfer">1</extra>
  <auth>
    <payment>
     <transaction-number>12345678</transaction-number>
     <from>
       <ccy>RUB</ccy>
     </from>
     <to>
       <amount>1115.00</amount>
       <ccy>RUB</ccy>
       <service-id>99</service-id>
       <account-number>79181234567</account-number>
     </to>
   </payment>
 </auth>
</request>
Тег Описание
request Группирующий тег. Дочерние теги содержат параметры платежа.
request-type Тип запроса (идентификатор запроса пополнения QIWI Кошелька: pay)
terminal-id Идентификатор агента в системе QIWI Wallet
extra name="password" Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet
extra name="income_wire_transfer" Экстра-поле, содержащее целочисленный признак безналичных (1) или наличных (0) средств, полученных от Клиента
auth Группирующий тег, описывает платежные данные
payment Группирующий тег, описывает единичный платеж. В запросе может присутствовать только один тег payment.
transaction-number Номер транзакции в информационной системе агента. Его необходимо использовать при проверке статуса платежа. Номер транзакции и идентификатор terminal-id однозначно определяют транзакцию в системе QIWI Wallet.
from Группирующий тег, содержит информацию о сумме, полученной агентом от клиента
from/ccy Валюта счета агента, с которого будет произведено списание денежных средств (в качестве значения используется цифровой или буквенный код валюты по ISO 4217)
from/service-id Идентификатор источника (канала) пополнения (необязательный параметр). Параметр используется в случае необходимости разделения потоков пополнения QIWI Кошельков, сохраняя единый баланс агента.
to Группирующий тег, содержит информацию о платеже
to/amount Сумма к зачислению на баланс учетной записи Клиента в системе QIWI Wallet. Система QIWI Wallet накладывает ограничения на сумму платежа, исходя из условий на остаток денежных средств учетной записи Клиента QIWI Wallet, указанных в оферте пользователя по адресу https://static.qiwi.com/ru/doc/oferta_lk.pdf. Платежи с суммой, менее разрешенной и более разрешенной, завершатся с ошибками 241 и 242 соответственно.
to/service-id Идентификатор сервиса (константа: 99)
to/account-number Идентификатор Клиента в системе QIWI Wallet (номер телефона Клиента системы QIWI Wallet в международном формате)
to/ccy Валюта счета получателя, на который будут зачислены денежные средства (в качестве значения используется цифровой или буквенный код валюты по ISO 4217).
to/extra="comment" Экстра-поле, содержащее комментарий (необязательный параметр)

Формат ответа

При возникновении сетевых ошибок (например, таймауты при соединении или чтении ответа), HTTP-ошибок (HTTP-статус не равен 200, пустой ответ), некорректных XML-документов (например, c отсутствующими обязательными тегами и/или атрибутами) вы должны перейти к опросу статуса платежа до получения успешного или неуспешного финального статуса платежа. Поскольку в таких случаях информация о статусе транзакции не доступна, вы не должны отклонять платеж на своей стороне.

Формат ответа API зависит от того, как сервер обработал запрос:

Ответ без ошибок обработки запроса

<?xm version="1.0" encoding="utf-8"?>
<response>
<result-code fatal="false">0</result-code>
<payment status='60' txn_id='6060' transaction-number='12345678' result-code='0' message='Ok' msg='Ok' final-status='true' fatal-error='false' txn-date='02.03.2011 14:35:46'  >
  <from>
    <amount>1115.00</amount>
    <ccy>643</ccy>
  </from>
  <to>
    <service-id>99</service-id>
    <amount>1000.00</amount>
    <ccy>643</ccy>
    <account-number>79181234567</account-number>
  </to>
</payment>
<balances>
<balance code="428">0.00</balance>
<balance code="643">200.00</balance>
<balance code="840">12.20</balance>
</balances>
</response>

Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге <payment>.

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

Тег Описание Атрибуты
response Группирующий тег ответа. Отсутствуют.
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса.
payment Описание принятого платежа. statusстатус платежа в системе QIWI Wallet;
txn_id – идентификатор транзакции в системе QIWI Wallet. Если не заполнен, платеж не был зарегистрирован из-за временной ошибки. Попробуйте повторить запрос позже;
transaction-number – номер транзакции в информационной системе Контрагента;
result-codeкод ошибки обработки платежа;
message, msg - текстовое описание ошибки;
final-status – логический признак финального статуса платежа;
fatal-error - логический признак фатальности ошибки обработки платежа (фатальная ошибка означает, что повторный запрос с теми же реквизитами приведет к повторению той же ошибки);
txn-date – дата приема платежа в систему QIWI Wallet.
from Группирующий тег, содержит информацию о списанных средствах. Отсутствуют.
from/amount Сумма, списанная со счета Контрагента. Отсутствуют.
from/ccy Валюта счета (в качестве значения используется цифровой или буквенный код валюты по ISO 4217). Отсутствуют.
to Группирующий тег, содержит информацию о платеже. Отсутствуют.
to/amount Сумма к зачислению на баланс учетной записи Клиента в системе QIWI Wallet. Отсутствуют.
to/service-id Идентификатор сервиса, на который производится зачисление средств (константа: 99). Отсутствуют.
to/account-number Идентификатор Клиента в системе QIWI Wallet. Отсутствуют.
to/ccy Валюта платежа (цифровой или буквенный код валюты по ISO 4217). Отсутствуют.
balances Группирующий тег, содержит информацию о балансе всех активных счетов Контрагента в системе QIWI Wallet. Отсутствуют.
balances/balance Текущий баланс единичного счета Контрагента в системе QIWI Wallet code - цифровой код валюты счета (в формате ISO 4217).

Ответ с ошибками обработки запроса

Если сервер не смог обработать запрос на пополнение баланса учетной записи Клиента в системе QIWI Wallet, API возвращает ответ с кодом произошедшей ошибки. В этом случае информация о транзакции отсутствует в ответе, поэтому вы должны перейти к запросам статуса, не отклоняя платеж на своей стороне.

<?xml version="1.0" encoding="utf-8"?>
<response>
  <result-code fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300</result-code>
</response>

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

Тег Описание Атрибуты
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования;
message, msg - текстовое описание ошибки.

Проверка статуса платежа

Последнее обновление: 2017-11-14 | Редактировать на GitHub

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

Проведение платежа считается завершенным, когда он достигает финального статуса. Значения статусов с указанием признака финальности приведены в разделе Статусы платежей.

Для проверки успешного прохождения платежа, вы должны периодически выполнять данный запрос до получения успешного или неуспешного финального статуса. Запрос позволяет получить текущий статус платежа.

Формат запроса

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

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

Формат ответа зависит от того, как сервер обработал запрос:

При возврате ответов с ошибками запроса или с нефинальными статусами платежей вы должны сделать повторный запрос проверки статуса платежа.

Ответ без ошибок обработки запроса

Если запрос обработан корректно, то в ответе возвращаются сведения о статусе платежа в теге <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 - текстовое описание ошибки.

Проверка возможности проведения платежа

Последнее обновление: 2020-07-14 | Редактировать на GitHub

Данным запросом вы должны проверить, возможно ли проведение платежа для пополнения учетной записи клиента в системе QIWI Wallet.

Если вам необходима только проверка регистрации учетной записи, то используйте этот запрос.

Формат запроса

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

<?xml version="1.0" encoding="utf-8"?>
<request>
  <request-type>check-deposit-possible</request-type>
  <terminal-id>123</terminal-id>
  <extra name="password">XXXXX</extra>
  <extra name="phone">79031234567</extra>
  <extra name="income_wire_transfer">1</extra>
</request>
Тег Описание
request Группирующий тег
request-type Тип запроса (идентификатор запроса проверки возможности проведения платежа: check-deposit-possible).
terminal-id Идентификатор агента в системе QIWI Wallet.
extra name="password" Экстра-поле, содержащее пароль для аутентификации агента в системе QIWI Wallet.
extra name="phone" Экстра-поле, содержащее номер телефона клиента.
extra name="income_wire_transfer" Экстра-поле, содержащее целочисленный признак безналичных (1) или наличных (0) средств, полученных от клиента для пополнения его учетной записи в системе QIWI Wallet.
extra name="ccy" Экстра-поле, содержащее код валюты учетной записи клиента. Опциональный параметр. В случае его передачи проверяется возможность проведения платежа для пополнения учетной записи в данной валюте. В качестве значения используется цифровой или буквенный код валюты по ISO 4217.

Формат ответа

Ответ без ошибок обработки запроса

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

Пример ответа - проведение платежа возможно

<?xml version="1.0" encoding="utf-8"?>
<response>
  <result-code fatal="false">0</result-code>
  <exist>1</exist>
  <deposit-possible>1</deposit-possible>
</response>

Пример ответа - проведение платежа невозможно

<?xml version="1.0" encoding="utf-8"?>
<response>
    <result-code fatal="true" message="Недостаточный статус идентификации кошелька для проведения платежа" msg="Недостаточный статус идентификации кошелька для проведения платежа">204</result-code>
    <exist>1</exist>
    <deposit-possible>0</deposit-possible>
</response>

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

Тег Описание Атрибуты
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса.
exist Целочисленный флаг, указывающий на существование учетной записи клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения:
0 – учетная запись клиента не зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег <extra name="ccy">), это означает, что у клиента нет учетной записи в данной валюте);
1 – учетная запись клиента зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег <extra name="ccy">), это означает, что клиент имеет учетную запись в данной валюте).
Отсутствуют.
deposit-possible Целочисленный флаг, указывающий на возможность пополнения учетной записи клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения:
0 – учетную запись клиента нельзя пополнить указанным в запросе типом средств. Платеж будет отклонён.
1 – учетную запись клиента можно пополнить указанным в запросе типом средств.
Отсутствуют.

Ответ с ошибками обработки запроса

Если сервер не смог обработать запрос, API возвращает ответ с кодом произошедшей ошибки.

<?xml version="1.0" encoding="utf-8"?>
<response>
    <result-code fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300</result-code>
</response>

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

Тег Описание Атрибуты
result-code Код ошибки обработки запроса fatal – логический признак фатальности ошибки обработки запроса;
message, msg - текстовое описание ошибки.

Проверка регистрации клиента

Последнее обновление: 2017-11-14 | Редактировать на GitHub

Данным запросом вы можете до проведения платежа проверить, зарегистрирована ли учетная запись Клиента в системе QIWI Wallet.

Проверка существования учетной записи Клиента не является обязательной для регистрации платежа. При успешной регистрации платежа отсутствующая в системе QIWI Wallet учетная запись Клиента создаётся автоматически.

Формат запроса

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

<?xml version="1.0" encoding="utf-8"?>
<request>
  <request-type>check-user</request-type>
  <terminal-id>123</terminal-id>
  <extra name="password">XXXXX</extra>
  <extra name="phone">79031234567</extra>
  <extra name="ccy">RUB</extra>
</request>
Тег Описание
request Группирующий тег
request-type Тип запроса (идентификатор запроса проверки существования учетной записи Клиента в системе: check-user)
terminal-id Идентификатор агента в системе QIWI Wallet
extra name="password" Экстра-поле, содержащее пароль для аутентификации агента в системе QIWI Wallet
extra name="phone" Экстра-поле, содержащее номер телефона Клиента, регистрацию учетной записи которого необходимо проверить
extra name="ccy" Экстра-поле, содержащее код валюты учетной записи Клиента. Опциональный параметр. В случае его передачи проверяется наличие у Клиента учетной записи в данной валюте. В качестве значения используется цифровой или буквенный код валюты по ISO 4217.

Формат ответа

Ответ без ошибок обработки запроса

Если запрос обработан корректно, то в ответе возвращаются сведения о Клиенте.

<?xml version="1.0" encoding="utf-8"?>
<response>
  <result-code fatal="false">0</result-code>
  <exist>1</exist>
</response>

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

Тег Описание Атрибуты
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса.
exist Флаг, указывающий на существование учетной записи Клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения:
0 – учетная запись Клиента не зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег <extra name="ccy">), это означает, что у Клиента нет учетной записи в данной валюте);
1 – учетная запись Клиента зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег <extra name="ccy">), это означает, что Клиент имеет учетную запись в данной валюте).
Отсутствуют.

Ответ с ошибками обработки запроса

Если сервер не смог обработать запрос, API возвращает ответ с кодом произошедшей ошибки.

<?xml version="1.0" encoding="utf-8"?>
<response>
  <result-code fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300</result-code>
</response>

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

Тег Описание Атрибуты
result-code Код ошибки обработки запроса fatal – логический признак фатальности ошибки обработки запроса;
message, msg - текстовое описание ошибки.

Запрос баланса контрагента

Последнее обновление: 2017-11-14 | Редактировать на GitHub

Данный запрос возвращает текущий баланс по агентскому договору в сервисе QIWI Кошелек.

Формат запроса

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

<?xml version="1.0" encoding="utf-8"?>
<request>
<request-type>ping</request-type>
<terminal-id>44</terminal-id>
<extra name="password">password</extra>
</request>
Параметр Описание
request Группирующий тег
request-type Тип запроса (идентификатор запроса баланса: ping)
terminal-id Идентификатор агента в системе QIWI Wallet
extra name="password" Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet

Формат ответа

Ответ без ошибок обработки запроса

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

<?xml version="1.0" encoding="utf-8"?>
<response>
<result-code fatal="false">0</result-code>
<balances>
  <balance code="428">100.00</balance>
  <balance code="643">200.26</balance>
  <balance code="840">300.00</balance>
</balances>
</response>

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

Параметр Описание Атрибуты
response Группирующий тег ответа. Отсутствуют.
result-code Код ошибки обработки запроса. fatal - логический признак фатальности ошибки обработки платежа.
balances Группирующий тег, содержит информацию о балансе всех активных счетов Контрагента в системе QIWI Wallet. Отсутствуют.
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 - текстовое описание ошибки.

Статусы платежей

Последнее обновление: 2020-07-10

API возвращает статус платежа в атрибуте status тега <payment>.

Финальный статус означает, что жизненный цикл платежа в сервисе QIWI Wallet завершен и его статус больше не изменится.

API возвращает статусы из следующих диапазонов:

Статус Описание Финальный статус
-1 Платеж не был зарегистрирован из-за временной ошибки. Попробуйте повторить запрос позже. Если ранее на запрос выплаты вы получили статус отличный от -1, то продолжайте запрашивать статус платежа, до получения финального статуса  
0-49 Платеж принят, но ждет подтверждения со стороны системы QIWI Wallet. Свяжитесь с техническими специалистами системы QIWI Wallet: bss@qiwi.com -
50-59 Платеж находится в проведении. Средства списаны со счета Контрагента. -
50 Платеж принят в обработку -
52 Средства зачисляются -
60 Платеж проведен +
> 100 Общий статус. Ошибка проведения платежа. Средства возвращены на баланс Контрагента. +
150 Платеж не принят +
151 Ошибка авторизации платежа +
160 Платеж не проведен или отменен +

Коды ошибок обработки платежа

API возвращает информационный код ошибки обработки платежа в атрибуте result-code тега <payment>.

Код обработки Описание ошибки
0 Ошибок нет
155 Запрещен прием платежей в пользу данного сервиса. Тег to/service-id в запросе проведения платежа должен быть равен 34020 для выплаты на карту, 38413 для выплаты через СБП или 99 для пополнения QIWI кошелька.
204 Недостаточный статус идентификации кошелька для проведения платежа пополнения кошелька
215 Запрос проведения платежа содержит уже существующий номер транзакции платежа (transaction-number), но другие реквизиты платежа. Необходимо привести реквизиты платежа в соответствие данному номеру транзакции платежа.
220 Недостаточно средств на счете для проведения платежа
242 Сумма платежа больше допустимой
300 Неизвестная ошибка обработки запроса. Обратитесь к техническим специалистам системы QIWI Wallet: bss@qiwi.com
316 Попытка авторизации заблокированного Контрагента

При появлении не описанных в данной таблице ошибок свяжитесь с техническими специалистами системы QIWI Wallet: bss@qiwi.com.

Коды ошибок обработки запроса

API возвращает код ошибки обработки запроса в теге <result-code>. Ошибки с кодом > 0 возвращаются, если сервер не смог обработать запрос (в ответе отсутствуют запрашиваемые данные).

Код ошибки Описание
0 Ошибок нет
13 Повторите запрос через минуту
150 Ошибка авторизации. Уточните логин и пароль, а затем повторите запрос
300 Неизвестная ошибка. Повторите запрос
339 Ограничение по IP адресу

При появлении не описанных в данной таблице ошибок свяжитесь с техническими специалистами системы QIWI Wallet: bss@qiwi.com.

Формат XML-данных

Тег/атрибут Тип данных
request-type Строка буквенных символов
terminal-id Целое положительное число
transaction-number Целое положительное число до 20 разрядов
amount Дробное число (2 знака после запятой, разделителем является точка)
to/service-id Константа: 34020 для выплат на банковские карты, 99 для выплат на QIWI кошельки, 38413 для выплат через СБП
from/service-id Целое положительное число
to/account-number Для пополнений QIWI кошельков — номер телефона в международном формате без лидирующего знака +.
Для выплат на банковские карты -— номер банковской карты, только цифры от 0 до 9 без пробелов.
Для выплат через СБП — номер телефона в формате 7хххххххххх.
final-status Логическое значение (true/false)
fatal-error Логическое значение (true/false)
txn-date Временная метка в формате:
dd.MM.yyyy HH:mm:ss
balance Дробное число (2 знака после запятой, разделителем является точка)
fatal Логическое значение (true/false)
exist 0/1
income_wire_transfer 0/1
"deposit-possible" 0/1
name="password" Строка символов
name="comment" Строка символов (до 1000 символов)
name="phone" Номер телефона в международном формате без лидирующего знака +
name="source_first_name" Строка буквенных символов
name="source_last_name" Строка буквенных символов
name="source_address" Строка символов
name="source_city" Строка символов
name="source_country_code" Строка буквенных символов
name="source_zip_code" Целое положительное число
name="source_resident" Целое положительное число
name="source_birthday" Дата в формате: дд.мм.гггг
name="target_card_holder" Строка буквенных символов