Общие сведения
API выплат на кошельки предназначено для платежных агентов КИВИ Банк (АО), позволяет зачислять деньги на кошельки пользователей (балансы учетных записей клиентов в системе QIWI Wallet).
Что позволяет протокол
- Переводить деньги клиентам сервиса QIWI Кошелек — запрос pay.
- Проверить текущий статус транзакции перевода — запрос status.
- Проверять возможность проведения платежа — запрос check-deposit-possible.
- Проверять существование клиентов в сервисе QIWI Кошелек — запрос check-user.
- Следить за балансом на агентском счете для выплат — запрос ping.
Как это работает
- Пользователь передает вам сумму пополнения и номер QIWI Кошелька, который нужно пополнить.
- Вы отправляете запрос в Top-Up API QIWI Кошелька на проверку возможности проведения платежа.
- Вы отправляете запрос в Top-Up API QIWI Кошелька на пополнение этого кошелька.
- Вы проверяете текущий статус платежа. Платеж должен принять финальный статус.
- При успешном финальном статусе платежа средства автоматически перечисляются на баланс кошелька пользователя с вашего агентского счета.
- При неуспешном финальном статусе платежа вы возвращаете средства клиенту.
По вопросам интеграции и сотрудничества пишите на bss@qiwi.com.
Формат взаимодействия
Взаимодействие происходит посредством пересылки запросов и ответов на них системы QIWI Wallet. Запросы и ответы – XML-документы в кодировке UTF-8.
В API используются только HTTP POST-запросы, XML-документ помещается в теле HTTP-запроса. Используется только HTTPS-протокол.
Описанные в документации теги и атрибуты запросов/ответов обязательны для передачи (если в описании конкретного тега или атрибута не указано иное). Добавление дополнительных тегов или атрибутов в ответы или запросы не является нарушением протокола. Следите за обновлениями протокола на Github.
Запросы в производственной среде отправляются по протоколу HTTPS на URL:
При использовании аутентификации по клиентскому сертификату запросы в производственной среде отправляются по протоколу HTTPS на URL:
Необходимо проверять подлинность сервера QIWI с помощью цепочки сертификации и не устанавливать соединение, если проверка не пройдет успешно.
Аутентификация запросов выполняется по логину и паролю, помещаемым в XML-тегах terminal-id и extra name=»password» , соответственно. Логин и пароль выдаются при подключении к системе QIWI Wallet. Смена пароля выполняется через сотрудников КИВИ Банк (АО) или сотрудников уполномоченного представителя КИВИ Банк (АО).
Для повышения безопасности информационного обмена также может использоваться аутентификация по цифровой подписи или по клиентскому сертификату.
Единственным признаком, на основе которого вы можете принимать решение о успешности или неуспешности выполнения платежа на своей стороне, является статус транзакции в системе QIWI Wallet. Как только вы получили для вашего платежа идентификатор транзакции txn_id в системе QIWI Wallet, вы можете проверить статус транзакции методом Проверка статуса платежа.
Несмотря на то, что протокол является идемпотентным, наиболее достоверный и рекомендуемый способ получения финального статуса — реализация метода «Проверка статуса платежа»
Каждому платежу (набору реквизитов: сумма, валюта, идентификатор клиента в системе QIWI Wallet, идентификатор сервиса) вы должны присваивать уникальный идентификатор.
Сценарий пополнения 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
Логическая последовательность операций при взаимодействии с системой QIWI Wallet должна соответствовать блок-схеме:
graph TB ST(Начало пополнения учетной записи Клиента) —> A A[Проверка возможности проведения платежа] —> B<Проведение
платежа
возможно?> B —>|да| Cсуществует?> B —>|нет| G[[Платеж НЕ проведен]] C —>|нет| Hи зарегистрировать платеж?> C —>|да| K H —>|да| K[Пополнение учетной записи Клиента] H —>|нет, если Клиент не найден,
то платеж не проводить| G K —>KN KN & KER —>|да| KW([Ожидание >= 10 минут]) KER —>|нет| PFS KN —>|нет| KER PFS —>|final-status=true| RS PFS —>|final-status=false| MR KW —> MR[Проверка статуса платежа] RS —>|> 100| G RS —>|=60| X[[Платеж проведен]] MR —> MER MER —>|нет| MW MW & MER —>|да| KW MW —>|нет| PTтег payment с
номером транзакции txn_id?> PT —>|да| PFS PT —>|нет| KWПроведение
Аутентификация по SSL
Редактировать на 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
- Контрагент должен передать открытый ключ в QIWI, а закрытый ключ использовать для подписи запросов.
Как подписывать запросы
POST /xml/topup.jsp HTTP/1.1 Content-Type: application/xml Host: api.qiwi.com X-Digital-Sign: XXXXXXXX X-Digital-Sign-Alg: SHA1withRSA
- Для каждого XML-пакета вычисляется хэш от текста XML-запроса с использованием выбранного алгоритма MD5 / SHA1, подписывается сохраненным закрытым ключом и кодируется по схеме Base64. Таким образом формируется ЭЦП пакета.
- В заголовке 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 должны отправляться по адресу:
Пример запроса с сертификатом:
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
Пополнение баланса QIWI Кошелька
Редактировать на GitHub
Запрос используется для перевода средств с агентского счета на счет клиента в системе QIWI Wallet. Перед выполнением запроса необходимо проверить возможность проведения платежа.
Вы должны указывать тип средств, которые получены Контрагентом от клиента – наличные или безналичные средства, в параметре запроса extra name=»income_wire_transfer» .
Если клиент с указанным номером кошелька не существует в системе QIWI Wallet и проведение платежа возможно, то клиент будет создан в момент регистрации платежа.
После успешного выполнения запроса платёж начинает жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует определённый статус платежа. Цикл заканчивается после получения финального статуса платежа. Признак финального статуса указан в списке возвращаемых API статусов платежа.
Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа вы должны периодически (но не чаще одного раза в 10 минут) выполнять запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа.
Формат запроса
Параметры запроса
pay 123 name="password">*** name="income_wire_transfer">1 12345678 RUB 1115.00 RUB 99 79181234567
| Тег | Описание |
|---|---|
| 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 зависит от того, как сервер обработал запрос:
- ответ без ошибок обработки запроса — в случае, когда запрос обработан корректно;
- ответ с ошибкой обработки запроса — в случае, когда сервер не смог обработать запрос (информация о платеже не получена).
Ответ без ошибок обработки запроса
fatal="false">0 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' > 1115.00 643 99 1000.00 643 79181234567 code="428">0.00 code="643">200.00 code="840">12.20
Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге .
| Тег | Описание | Атрибуты |
|---|---|---|
| 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 возвращает ответ с кодом произошедшей ошибки. В этом случае информация о платеже отсутствует в ответе, поэтому вы должны перейти к периодическому запросу статуса, не отклоняя платёж на своей стороне.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования; message , msg — текстовое описание ошибки. |
Проверка статуса платежа
Редактировать на GitHub
С момента регистрации платеж проходит стадии жизненного цикла, изменяющие его статус. Каждый статус задается уникальным числовым идентификатором.
Проведение платежа считается завершенным, когда он достигает финального статуса. Значения статусов с указанием признака финальности приведены в разделе Статусы платежей.
Для проверки успешного прохождения платежа, вы должны периодически выполнять данный запрос до получения успешного или неуспешного финального статуса. Запрос позволяет получить текущий статус платежа.
Между двумя последовательными запросами проверки статуса одного и того же платежа следует соблюдать интервал не менее 10 минут.
Формат запроса
Параметры запроса
pay name="password">XXXXXX 123 12345678 79181234567
| Тег | Описание |
|---|---|
| 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, обратитесь в Службу поддержки: bss@qiwi.com.
Ответ без ошибок обработки запроса
Если запрос обработан корректно, то в ответе возвращаются сведения о статусе платежа в теге .
fatal="false">0 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' /> code="643">90.79 code="840">0.00
| Тег | Описание | Атрибуты |
|---|---|---|
| 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 возвращает ответ с кодом произошедшей ошибки. В этом случае информация о статусе платежа отсутствует в ответе, поэтому вы должны продолжать запросы статуса, не отклоняя платеж на своей стороне.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства. При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования; message , msg — текстовое описание ошибки. |
Проверка возможности проведения платежа
Редактировать на GitHub
Данным запросом вы должны проверить, возможно ли проведение платежа для пополнения учетной записи клиента в системе QIWI Wallet.
Если вам необходима только проверка регистрации учетной записи, то используйте этот запрос.
Формат запроса
Параметры запроса
check-deposit-possible 123 name="password">XXXXX name="phone">79031234567 name="income_wire_transfer">1
| Тег | Описание |
|---|---|
| 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. |
Формат ответа
Если вы не уверены в корректной расшифровке ответа API, обратитесь в Службу поддержки: bss@qiwi.com.
Ответ без ошибок обработки запроса
Если запрос обработан корректно, то в ответе возвращаются сведения о возможности проведения платежа.
Пример ответа — проведение платежа возможно
fatal="false">0 1 1
Пример ответа — проведение платежа невозможно
fatal="true" message="Недостаточный статус идентификации кошелька для проведения платежа" msg="Недостаточный статус идентификации кошелька для проведения платежа">204 1 0
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. |
| exist | Целочисленный флаг, указывающий на существование учетной записи клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения: 0 – учетная запись клиента не зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег ), это означает, что у клиента нет учетной записи в данной валюте); 1 – учетная запись клиента зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег ), это означает, что клиент имеет учетную запись в данной валюте). |
Отсутствуют. |
| deposit-possible | Целочисленный флаг, указывающий на возможность пополнения учетной записи клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения: 0 – учетную запись клиента нельзя пополнить указанным в запросе типом средств. Платеж будет отклонён. 1 – учетную запись клиента можно пополнить указанным в запросе типом средств. |
Отсутствуют. |
Ответ с ошибками обработки запроса
Если сервер не смог обработать запрос, API возвращает ответ с кодом произошедшей ошибки.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса; message , msg — текстовое описание ошибки. |
Проверка регистрации клиента
Редактировать на GitHub
Данным запросом вы можете до проведения платежа проверить, зарегистрирована ли учетная запись Клиента в системе QIWI Wallet.
Проверка существования учетной записи Клиента не является обязательной для регистрации платежа. При успешной регистрации платежа отсутствующая в системе QIWI Wallet учетная запись Клиента создаётся автоматически.
Формат запроса
Параметры запроса
check-user 123 name="password">XXXXX name="phone">79031234567 name="ccy">RUB
| Тег | Описание |
|---|---|
| request | Группирующий тег |
| request-type | Тип запроса (идентификатор запроса проверки существования учетной записи Клиента в системе: check-user ) |
| terminal-id | Идентификатор агента в системе QIWI Wallet |
| extra name=»password» | Экстра-поле, содержащее пароль для аутентификации агента в системе QIWI Wallet |
| extra name=»phone» | Экстра-поле, содержащее номер телефона Клиента, регистрацию учетной записи которого необходимо проверить |
| extra name=»ccy» | Экстра-поле, содержащее код валюты учетной записи Клиента. Опциональный параметр. В случае его передачи проверяется наличие у Клиента учетной записи в данной валюте. В качестве значения используется цифровой или буквенный код валюты по ISO 4217. |
Формат ответа
Ответ без ошибок обработки запроса
Если запрос обработан корректно, то в ответе возвращаются сведения о Клиенте.
fatal="false">0 1
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. |
| exist | Флаг, указывающий на существование учетной записи Клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения: 0 – учетная запись Клиента не зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег ), это означает, что у Клиента нет учетной записи в данной валюте); 1 – учетная запись Клиента зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег ), это означает, что Клиент имеет учетную запись в данной валюте). |
Отсутствуют. |
Ответ с ошибками обработки запроса
Если сервер не смог обработать запрос, API возвращает ответ с кодом произошедшей ошибки.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса; message , msg — текстовое описание ошибки. |
Запрос баланса контрагента
Редактировать на GitHub
Данный запрос возвращает текущий баланс по агентскому договору в сервисе QIWI Кошелек.
Формат запроса
Параметры запроса
ping 44 name="password">password
| Параметр | Описание |
|---|---|
| request | Группирующий тег |
| request-type | Тип запроса (идентификатор запроса баланса: ping ) |
| terminal-id | Идентификатор агента в системе QIWI Wallet |
| extra name=»password» | Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet |
Формат ответа
Ответ без ошибок обработки запроса
Если запрос обработан корректно, то в ответе возвращаются сведения об агентском балансе.
fatal="false">0 code="428">100.00 code="643">200.26 code="840">300.00
| Параметр | Описание | Атрибуты |
|---|---|---|
| response | Группирующий тег ответа. | Отсутствуют. |
| result-code | Код ошибки обработки запроса. | fatal — логический признак фатальности ошибки обработки платежа. |
| balances | Группирующий тег, содержит информацию о балансе всех активных счетов Контрагента в системе QIWI Wallet. | Отсутствуют. |
| balance | Текущий баланс единичного счета Контрагента в системе QIWI Wallet. | code — цифровой код валюты счета (в формате ISO 4217). |
Ответ с ошибками обработки запроса
Если сервер не смог обработать запрос, API возвращает ответ с кодом произошедшей ошибки.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса; message , msg — текстовое описание ошибки. |
Статусы платежей
Редактировать на GitHub
Для платежных запросов (пополнение кошелька, проверка статуса платежа) API возвращает статус платежа в атрибуте status тега .
Финальный статус означает, что жизненный цикл платежа в сервисе 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 тега .
| Код ошибки | Описание ошибки |
|---|---|
| 0 | Ошибок нет |
| 155 | Запрещен прием платежей в пользу данного сервиса (тег to/service-id в запросе проведения платежа должен быть равен 99 ) |
| 204 | Недостаточный статус идентификации кошелька для проведения платежа |
| 215 | Запрос проведения платежа содержит уже существующий номер транзакции платежа ( transaction-number ), но другие реквизиты платежа. Необходимо привести реквизиты платежа в соответствие данному номеру транзакции платежа. |
| 220 | Недостаточно средств на счете для проведения платежа |
| 241 | Сумма платежа меньше допустимой |
| 242 | Сумма платежа больше допустимой |
| 298 | Учетная запись Клиента с введенным номером телефона не может быть зарегистрирована в системе QIWI Wallet. Ошибочный номер телефона Клиента |
| 300 | Неизвестная ошибка обработки платежа. Обратитесь к техническим специалистам системы QIWI Wallet: bss@qiwi.com |
| 316 | Попытка авторизации заблокированного Контрагента |
| 319 | Запрет на пополнение учетной записи данного номера телефона |
| 700 | Превышен месячный лимит на операции |
| 702 | Превышен лимит на остаток учетной записи Клиента в системе QIWI Wallet |
При появлении не описанных в данной таблице ошибок свяжитесь с техническими специалистами системы QIWI Wallet: bss@qiwi.com.
Коды ошибок обработки запроса
Данные коды возвращаются в теге ответа API. Ошибки с кодом > 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 | Константа ( 99 ) |
| from/service-id | Целое положительное число |
| to/account-number | Номер телефона в международном формате без лидирующего знака + |
| 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 |
| «password» | Строка символов |
| «comment» | Строка символов (до 1000 символов) |
| «phone» | Номер телефона в международном формате без лидирующего знака + |
| «deposit-possible» | 0/1 |
Общие сведения
API выплат на карты и QIWI Кошельки предназначено для платежных агентов КИВИ Банк (АО), позволяет зачислять деньги на банковские карты клиентов, выпущенные платежными системами VISA, MasterCard, МИР, а также на кошельки пользователей (балансы учетных записей клиентов в системе QIWI Wallet).
Что позволяет протокол
- Выплачивать деньги на карты, эмитированные банками РФ и зарубежными банками.
- Выплачивать деньги через Систему Быстрых Платежей (СБП).
- Выплачивать деньги на QIWI кошельки клиентов — pay(1).
- Проверять текущий статус транзакции перевода — status.
- Проверять возможность проведения выплаты на QIWI Кошелек — check-deposit-possible.
- Следить за балансом на агентском счете для выплат — ping.
Как это работает
Выплаты на банковские карты
- Пользователь передает вам сумму пополнения и номер карты, которую нужно пополнить.
- Вы отправляете запрос выплаты на карту банка РФ или запрос выплаты на карту зарубежного банка в Top-Up API QIWI Кошелька для выплаты средств на указанную карту.
- Вы проверяете текущий статус платежа. Платеж должен принять финальный статус.
- При успешном финальном статусе платежа средства автоматически перечисляются на указанную банковскую карту с вашего агентского счета.
- При неуспешном финальном статусе платежа вы возвращаете средства пользователю.
Выплаты через СБП
- Пользователь передает вам сумму пополнения, Идентификатор Банка Получателя из списка в формате xlsx (скачать), csv (скачать) и Идентификатор Получателя (номер телефона), карту которого нужно пополнить.
- Вы отправляете запрос выплаты через СБП в Top-Up API QIWI Кошелька для выплаты средств по указанному Идентификатору Получателя в выбранный банк получателя.
- Вы проверяете текущий статус платежа. Платеж должен принять финальный статус.
- При успешном финальном статусе платежа средства автоматически перечисляются через СБП по указанному Идентификатору Получателя с вашего агентского счета.
- При неуспешном финальном статусе платежа вы возвращаете средства пользователю.
Выплаты на QIWI Кошельки
- Пользователь передает вам сумму пополнения и номер QIWI кошелька, который нужно пополнить.
- Вы отправляете запрос в Top-Up API QIWI Кошелька на проверку возможности проведения платежа.
- Вы отправляете запрос в Top-Up API QIWI Кошелька на пополнение указанного кошелька.
- Вы проверяете текущий статус платежа. Платеж должен принять финальный статус.
- При успешном финальном статусе платежа средства автоматически перечисляются на баланс указанного кошелька с вашего агентского счета.
- При неуспешном финальном статусе платежа вы возвращаете средства пользователю.
Обратная связь
По вопросам интеграции и сотрудничества пишите на bss@qiwi.com.
Формат взаимодействия
Взаимодействие происходит посредством пересылки запросов и ответов на них системы QIWI Wallet. Запросы и ответы – XML-документы в кодировке UTF-8.
В API используются только HTTP POST-запросы, XML-документ помещается в теле HTTP-запроса. Используется только HTTPS-протокол.
Описанные в документации теги и атрибуты запросов/ответов обязательны для передачи в запросах и ответах (если в описании конкретного тега или атрибута не указано иное). Добавление дополнительных тегов или атрибутов в ответы или запросы не является нарушением протокола. Следите за обновлениями протокола на Github.
Запросы в производственной среде отправляются по протоколу HTTPS на URL:
При авторизации по клиентскому сертификату запросы в производственной среде отправляются по протоколу HTTPS на URL:
Необходимо проверять подлинность сервера 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
Диаграмма процесса пополнения
Логическая последовательность операций при взаимодействии с системой QIWI Wallet должна соответствовать блок-схеме:
graph TB ST(Начало процесса выплаты) -.- A ST -.-> |пропустить действия,
если выплата на карту|K A[Проверка возможности проведения платежа] —> Bплатежа
возможно?> B —>|да| Cсуществует?> B —>|нет| G[[Платеж НЕ проведен]] C —>|да| K C —>|нет| Hи зарегистрировать платеж?> H —>|да| K[Пополнение учетной записи Клиента
или Выплата на карту] H —>|нет, если Клиент не найден,
то платеж не проводить| G K —>KN KN & KER —>|да| KW([Ожидание >= 10 минут]) KER —>|нет| PFS KN —>|нет| KER PFS —>|final-status=true| RS PFS —>|final-status=false| MR KW —> MR[Проверка статуса платежа] RS —>|> 100| G RS —>|=60| X[[Платеж проведен]] MR —> MER MER —>|нет| MW MW & MER —>|да| KW MW —>|нет| PTтег payment с
номером транзакции txn_id?> PT —>|да| PFS PT —>|нет| KW subgraph !!Обязательно при пополнении QIWI кошелька!! B A C H end
Аутентификация по SSL
Редактировать на 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
- Контрагент должен передать открытый ключ в QIWI, а закрытый ключ использовать для подписи запросов.
Как подписывать запросы
POST /xml/topup.jsp HTTP/1.1 Content-Type: application/xml Host: api.qiwi.com X-Digital-Sign: XXXXXXXX X-Digital-Sign-Alg: SHA1withRSA
- Для каждого XML-пакета вычисляется хэш от текста XML-запроса с использованием выбранного алгоритма MD5 / SHA1, подписывается сохраненным закрытым ключом и кодируется по схеме Base64. Таким образом формируется ЭЦП пакета.
- В заголовке 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 должны отправляться по адресу:
Пример запроса с сертификатом:
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
Выплаты на карты банков РФ
Операция используется для выплаты средств на банковские карты платежных систем. Выплата средств в системе QIWI Wallet представляет собой списание средств с авансового депозита агента и зачисление на банковские карты международных платежных систем «Visa International», «MasterCard International Incorporated», платежной системы «Мир», эмитированные кредитными организациями РФ. Платежная система определяется по номеру карты.
После выполнения запроса платеж начинает жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует определённый статус платежа. Цикл заканчивается после получения финального статуса платежа. Признак финального статуса указан в списке возвращаемых API статусов платежа.
Формат запроса
Параметры запроса
pay 123 name="password">*** 12345678 RUB 1115.00 RUB 34020 4265111122334411
| Тег | Описание |
|---|---|
| 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 ). |
Обработка ответа
Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа периодически (но не чаще одного раза в 10 минут) выполняйте запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа.
После запроса выплаты статус платежа может быть неизвестен в следующих случаях:
- Сетевая ошибка — таймауты при соединении или чтении ответа.
- HTTP-ошибка сервера — HTTP-статус не равен 200 , пустой ответ.
- Некорректный ответ — XML-документ c отсутствующими обязательными тегами и/или атрибутами.
- Ответ с ошибкой обработки запроса — сервер не смог обработать запрос.
Поскольку в этих случаях информация о статусе платежа не доступна, вы не должны отклонять платёж на своей стороне. Перейдите к периодическому запросу статуса до получения успешного или неуспешного финального статуса платежа.
Если вы не уверены в корректной расшифровке ответа API, обратитесь в Службу поддержки: bss@qiwi.com.
При обращении клиента в связи с незачислением выплаты на карту вы можете запросить дополнительную информацию о платеже. Сообщите полученную информацию клиенту для обращения в банк, выпустивший карту.
Ответ без ошибок обработки
fatal="false">0 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' > 1115.00 643 34020 955.00 643 4111********1123 code="428">0.00 code="643">200.00 code="840">12.20
Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге .
| Тег | Описание | Атрибуты |
|---|---|---|
| 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 возвращает ответ с кодом произошедшей ошибки. В этом случае информация о платеже отсутствует в ответе, поэтому вы должны перейти к периодическому запросу статуса, не отклоняя платёж на своей стороне.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования; message , msg — текстовое описание ошибки. |
Дополнительная информация о платеже
Вы можете получить следующую информацию о платеже:
- Идентификатор платежа в платёжной системе.
- Идентификатор платежа на стороне банка получателя.
- Убедитесь, что платёж принял финальный статус.
- Отправьте запрос на выплату с параметрами, указанными в исходном платеже.
- Извлеките из XML-документа ответа тег payment/extra name=»rrn» . Его значение соответствует идентификатору платежа в платёжной системе карты. Если тег отсутствует, то идентификатор этого платежа в платежной системе недоступен.
- Извлеките из XML-документа ответа тег payment/extra name=»billRegId» . Его значение соответствует идентификатору платежа в информационной системе банка получателя. Если тег отсутствует, то идентификатор этого платежа у банка получателя недоступен.
Выплаты на карты зарубежных банков
Операция используется для выплаты средств на банковские карты, выпущенные зарубежными банками. Выплата средств в системе QIWI Wallet представляет собой списание средств с авансового депозита агента и зачисление на банковские карты международных платежных систем «Visa International», «MasterCard International Incorporated», эмитированные зарубежными кредитными организациями. Платежная система определяется по номеру карты.
Платежи на карты Visa и MasterCard, выпущенные зарубежными банками, временно остановлены по причине ограничений со стороны платежной системы .
После выполнения запроса платеж начинает жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует определённый статус платежа. Цикл заканчивается после получения финального статуса платежа. Признак финального статуса указан в списке возвращаемых API статусов платежа.
Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа вы должны периодически (но не чаще одного раза в 10 минут) выполнять запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа.
Формат запроса
Параметры запроса
pay 123 name="password">*** 12345678 RUB name="source_first_name">Иван name="source_last_name">Иванов name="source_address">Можайское шоссе 38-2-46 name="source_city">Moscow name="source_country_code">RU name="source_zip_code">121354 name="source_resident">0 name="source_birthday">16.12.1990 1115.00 RUB 36655 4265111122334411 name="comment">Перевод на карту name="target_card_holder">Petrov Petr
Внутри тега 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 зависит от того, как сервер обработал запрос:
- ответ без ошибок обработки запроса — в случае, когда запрос обработан корректно;
- ответ с ошибкой обработки запроса — в случае, когда сервер не смог обработать запрос (информация о платеже не получена).
Ответ без ошибок обработки
fatal="false">0 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' > 1115.00 643 36655 955.00 643 4111********1123 code="428">0.00 code="643">200.00 code="840">12.20
Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге .
| Тег | Описание | Атрибуты |
|---|---|---|
| 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 возвращает ответ с кодом произошедшей ошибки. В этом случае информация о платеже отсутствует в ответе, поэтому вы должны перейти к периодическому запросу статуса, не отклоняя платёж на своей стороне.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования; message , msg — текстовое описание ошибки. |
Выплаты через СБП
Редактировать на GitHub
Операция используется для выплаты средств через Систему быстрых платежей (СБП). Позволяет совершать выплаты в любой банк-участник СБП по номеру мобильного телефона.
После выполнения запроса платеж начинает жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует определённый статус платежа. Цикл заканчивается после получения финального статуса платежа. Признак финального статуса указан в списке возвращаемых API статусов платежа.
Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа вы должны периодически (но не чаще одного раза в 10 минут) выполнять запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа.
Формат запроса
Параметры запроса
pay 123 name="password">*** 12345678 RUB 10007.03 RUB 38413 70070310009 name="bankId">100000000008
| Тег | Описание |
|---|---|
| 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 зависит от того, как сервер обработал запрос:
- ответ без ошибок обработки запроса — в случае, когда запрос обработан корректно;
- ответ с ошибкой обработки запроса — в случае, когда сервер не смог обработать запрос (информация о платеже не получена).
Ответ без ошибок обработки
fatal="false">0 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' > 10007.03 643 38413 10007.03 643 70070310009 code="643">6776332.87 code="643">6776332.87 001
Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге .
| Тег | Описание | Атрибуты |
|---|---|---|
| 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 возвращает ответ с кодом произошедшей ошибки. В этом случае информация о платеже отсутствует в ответе, поэтому вы должны перейти к периодическому запросу статуса, не отклоняя платеж на своей стороне.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования; message , msg — текстовое описание ошибки. |
Пополнение баланса QIWI Кошелька
Редактировать на GitHub
Запрос используется для перевода средств с агентского счета на счет клиента в системе QIWI Wallet. Перед выполнением запроса необходимо проверить возможность проведения платежа.
Вы должны указывать тип средств, которые получены Контрагентом от клиента – наличные или безналичные средства, в параметре запроса extra name=»income_wire_transfer» .
Если клиент с указанным номером кошелька не существует в системе QIWI Wallet и проведение платежа возможно, то клиент будет создан в момент регистрации платежа.
После успешного выполнения запроса платёж начинает жизненный цикл в системе QIWI Wallet. Каждому этапу жизненного цикла соответствует определённый статус платежа. Цикл заканчивается после получения финального статуса платежа. Признак финального статуса указан в списке возвращаемых API статусов платежа.
Если в ответе на запрос выплаты получен нефинальный статус платежа, то для проверки успешного прохождения платежа вы должны периодически (но не чаще одного раза в 10 минут) выполнять запрос проверки статуса платежа до получения успешного или неуспешного финального статуса платежа.
Формат запроса
Параметры запроса
pay 123 name="password">*** name="income_wire_transfer">1 12345678 RUB 1115.00 RUB 99 79181234567
| Тег | Описание |
|---|---|
| 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 зависит от того, как сервер обработал запрос:
- ответ без ошибок обработки запроса — в случае, когда запрос обработан корректно;
- ответ с ошибкой обработки запроса — в случае, когда сервер не смог обработать запрос (информация о платеже не получена).
Ответ без ошибок обработки запроса
fatal="false">0 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' > 1115.00 643 99 1000.00 643 79181234567 code="428">0.00 code="643">200.00 code="840">12.20
Если запрос обработан корректно, то в ответе возвращаются сведения о платеже в теге .
| Тег | Описание | Атрибуты |
|---|---|---|
| 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 возвращает ответ с кодом произошедшей ошибки. В этом случае информация о платеже отсутствует в ответе, поэтому вы должны перейти к периодическому запросу статуса, не отклоняя платёж на своей стороне.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства (обращения в службу поддержки сервиса QIWI Wallet по адресу bss@qiwi.com). При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования; message , msg — текстовое описание ошибки. |
Проверка статуса платежа
Редактировать на GitHub
С момента регистрации платеж проходит стадии жизненного цикла, изменяющие его статус. Каждый статус задается уникальным числовым идентификатором.
Проведение платежа считается завершенным, когда он достигает финального статуса. Значения статусов с указанием признака финальности приведены в разделе Статусы платежей.
Для проверки успешного прохождения платежа, вы должны периодически выполнять данный запрос до получения успешного или неуспешного финального статуса. Запрос позволяет получить текущий статус платежа.
Между двумя последовательными запросами проверки статуса одного и того же платежа следует соблюдать интервал не менее 10 минут.
Формат запроса
Параметры запроса
pay name="password">XXXXXX 123 12345678 79181234567
| Тег | Описание |
|---|---|
| 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, обратитесь в Службу поддержки: bss@qiwi.com.
Ответ без ошибок обработки запроса
Если запрос обработан корректно, то в ответе возвращаются сведения о статусе платежа в теге .
fatal="false">0 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' /> code="643">90.79 code="840">0.00
| Тег | Описание | Атрибуты |
|---|---|---|
| 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 возвращает ответ с кодом произошедшей ошибки. В этом случае информация о статусе платежа отсутствует в ответе, поэтому вы должны продолжать запросы статуса, не отклоняя платеж на своей стороне.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства. При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования; message , msg — текстовое описание ошибки. |
Проверка возможности проведения платежа
Редактировать на GitHub
Данным запросом вы должны проверить, возможно ли проведение платежа для пополнения учетной записи клиента в системе QIWI Wallet.
Если вам необходима только проверка регистрации учетной записи, то используйте этот запрос.
Формат запроса
Параметры запроса
check-deposit-possible 123 name="password">XXXXX name="phone">79031234567 name="income_wire_transfer">1
| Тег | Описание |
|---|---|
| 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. |
Формат ответа
Если вы не уверены в корректной расшифровке ответа API, обратитесь в Службу поддержки: bss@qiwi.com.
Ответ без ошибок обработки запроса
Если запрос обработан корректно, то в ответе возвращаются сведения о возможности проведения платежа.
Пример ответа — проведение платежа возможно
fatal="false">0 1 1
Пример ответа — проведение платежа невозможно
fatal="true" message="Недостаточный статус идентификации кошелька для проведения платежа" msg="Недостаточный статус идентификации кошелька для проведения платежа">204 1 0
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. |
| exist | Целочисленный флаг, указывающий на существование учетной записи клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения: 0 – учетная запись клиента не зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег ), это означает, что у клиента нет учетной записи в данной валюте); 1 – учетная запись клиента зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег ), это означает, что клиент имеет учетную запись в данной валюте). |
Отсутствуют. |
| deposit-possible | Целочисленный флаг, указывающий на возможность пополнения учетной записи клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения: 0 – учетную запись клиента нельзя пополнить указанным в запросе типом средств. Платеж будет отклонён. 1 – учетную запись клиента можно пополнить указанным в запросе типом средств. |
Отсутствуют. |
Ответ с ошибками обработки запроса
Если сервер не смог обработать запрос, API возвращает ответ с кодом произошедшей ошибки.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса; message , msg — текстовое описание ошибки. |
Проверка регистрации клиента
Редактировать на GitHub
Данным запросом вы можете до проведения платежа проверить, зарегистрирована ли учетная запись Клиента в системе QIWI Wallet.
Проверка существования учетной записи Клиента не является обязательной для регистрации платежа. При успешной регистрации платежа отсутствующая в системе QIWI Wallet учетная запись Клиента создаётся автоматически.
Формат запроса
Параметры запроса
check-user 123 name="password">XXXXX name="phone">79031234567 name="ccy">RUB
| Тег | Описание |
|---|---|
| request | Группирующий тег |
| request-type | Тип запроса (идентификатор запроса проверки существования учетной записи Клиента в системе: check-user ) |
| terminal-id | Идентификатор агента в системе QIWI Wallet |
| extra name=»password» | Экстра-поле, содержащее пароль для аутентификации агента в системе QIWI Wallet |
| extra name=»phone» | Экстра-поле, содержащее номер телефона Клиента, регистрацию учетной записи которого необходимо проверить |
| extra name=»ccy» | Экстра-поле, содержащее код валюты учетной записи Клиента. Опциональный параметр. В случае его передачи проверяется наличие у Клиента учетной записи в данной валюте. В качестве значения используется цифровой или буквенный код валюты по ISO 4217. |
Формат ответа
Ответ без ошибок обработки запроса
Если запрос обработан корректно, то в ответе возвращаются сведения о Клиенте.
fatal="false">0 1
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса. | fatal – логический признак фатальности ошибки обработки запроса. |
| exist | Флаг, указывающий на существование учетной записи Клиента в системе QIWI Wallet. Флаг передается в ответе только в случае удачной обработки запроса (с кодом ошибки 0). Флаг может принимать значения: 0 – учетная запись Клиента не зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег ), это означает, что у Клиента нет учетной записи в данной валюте); 1 – учетная запись Клиента зарегистрирована в системе QIWI Wallet (в случае если в исходном запросе указана валюта (тег ), это означает, что Клиент имеет учетную запись в данной валюте). |
Отсутствуют. |
Ответ с ошибками обработки запроса
Если сервер не смог обработать запрос, API возвращает ответ с кодом произошедшей ошибки.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса; message , msg — текстовое описание ошибки. |
Запрос баланса контрагента
Редактировать на GitHub
Данный запрос возвращает текущий баланс по агентскому договору в сервисе QIWI Кошелек.
Формат запроса
Параметры запроса
ping 44 name="password">password
| Параметр | Описание |
|---|---|
| request | Группирующий тег |
| request-type | Тип запроса (идентификатор запроса баланса: ping ) |
| terminal-id | Идентификатор агента в системе QIWI Wallet |
| extra name=»password» | Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet |
Формат ответа
Ответ без ошибок обработки запроса
Если запрос обработан корректно, то в ответе возвращаются сведения об агентском балансе.
fatal="false">0 code="428">100.00 code="643">200.26 code="840">300.00
| Параметр | Описание | Атрибуты |
|---|---|---|
| response | Группирующий тег ответа. | Отсутствуют. |
| result-code | Код ошибки обработки запроса. | fatal — логический признак фатальности ошибки обработки платежа. |
| balances | Группирующий тег, содержит информацию о балансе всех активных счетов Контрагента в системе QIWI Wallet. | Отсутствуют. |
| balance | Текущий баланс единичного счета Контрагента в системе QIWI Wallet. | code — цифровой код валюты счета (в формате ISO 4217). |
Ответ с ошибками обработки запроса
Если сервер не смог обработать запрос, API возвращает ответ с кодом произошедшей ошибки.
fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300
| Тег | Описание | Атрибуты |
|---|---|---|
| result-code | Код ошибки обработки запроса | fatal – логический признак фатальности ошибки обработки запроса; message , msg — текстовое описание ошибки. |
Статусы платежей
API возвращает статус платежа в атрибуте status тега .
Финальный статус означает, что жизненный цикл платежа в сервисе 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 тега .
| Код обработки | Описание ошибки |
|---|---|
| 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 возвращает код ошибки обработки запроса в теге . Ошибки с кодом > 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» | Строка буквенных символов |
Как создать Киви кошелек?
![]()
Qiwi кошелек представляет собой виртуальный кошелек для хранения денежных знаков в электронном виде. Это уникальная система, сравнима с собственным банком в интернете. Несколько лет назад мало кто знал, как создать Киви кошелек, а сегодня этой программой пользуется огромное число людей. В России бренд QiWi появился в 2008 году. Каждый, кто решил создать Киви, получил широкие возможности по денежным переводам.
Многие сайты работают с Qiwi кошельком. Пользователь конвертирует наличные и электронные деньги с его помощью, пополняет средства через терминал или банк. Система работает почти с любой валютой. Зачислить средства можно в любом терминале страны, где присутствует логотип Qiwi. Если сумма взноса при пополнении через терминал составляет от 1 501 рубля и более, процедура производится бесплатно.
Как создать Qiwi кошелек с компьютера
Чтобы обзавестись собственным электронным кошельком, следует выполнить всего 3 шага.
1. Войдите на официальный сайт qiwi.com. На странице нажимайте кнопку «Создать кошелек».

Тинькофф Банк, Лиц. № 2673
Tinkoff Black (с безопасной доставкой карты)
до 5.00% на остаток, Cashback
Тинькофф Банк, Лиц. № 2673
Оформить карту

Скриншот qiwi.com
2. Перед вами появится форма для ввода номера телефона, там же имеется возможность входа через социальную сеть.

3. На указанный номер придет SMS-уведомление с кодом для доступа в систему.
Как создать Киви кошелек с мобильного?
Не только компьютер дает возможность использовать виртуальный кошелек. Для этого подойдет и мобильный телефон.
- Для начала необходимо скачать программу в мобильном устройстве. В строке поиска введите «QIWI Кошелек» и выполните скачивание.
- Войдите в приложение, укажите номер телефона и нажмите «далее». Затем введите пароль, подтвердите его и снова нажмите «далее». На телефон придет код через СМС, который впишите в появившемся окошке.

Читайте также:
Как открыть Киви кошелек через терминал?
Необязательно производить регистрацию в режиме онлайн с телефона или компьютера.
Если электронный кошелек вам понадобился срочно, а вы не имеете возможности воспользоваться гаджетами, эту процедуру вполне можно выполнить через терминал.
Для этого в главном меню необходимо найти кнопку «visa qiwi wallet». Откроется окно с надписью «зарегистрировать новый кошелек». Последующие действия аналогичны регистрации на официальном сайте: указываете номер телефона, создаете пароль, указываете код из СМС.

Альфа-Банк, Лиц. № 1326
Альфа-Карта с бесплатными переводами и кэшбэком
до 16.00% на остаток, Cashback
Альфа-Банк, Лиц. № 1326
Оформить карту
После того как у вас появился собственный Qiwi кошелек, необходимо позаботиться о его безопасности. Для этого понадобится сменить пароль. Выполняется это действие в личном кабинете в настройках. Сначала система запросит пароль, присланный в СМС, после чего следует дважды вписать новый пароль. Учитывайте индикатор надежности. Он означает степень безопасности нового сочетания. После того как вы придумали вполне надежный пароль, нажмите на клавишу, активирующую его.
Видео о том, как бесплатно создать Киви кошелек
Если у вас остались вопросы или вы желаете уточнить некоторые моменты, рекомендуем просмотреть видео, где наглядно описан весь процесс. Видеоинструкция поможет понять всю процедуру создания и выполнить необходимые операции без проблем.
Преимущества Qiwi кошелька
Если вы решили создать Киви кошелек, то сделали правильный выбор. Он имеет массу преимуществ:
- Совместимость с другими виртуальными системами.
- Отсутствие комиссии со стороны Qiwi за проведение платежей.
- Быстрое пополнение счета.
- Возможность проведения платежей через различные гаджеты.
- Высокий уровень защиты операций, осуществляемых в сети.
- Возможность выполнять платежи через СМС команды.
- Выполнение денежных переводов.
- Вывод наличных средств при необходимости.
- Привязка к банковской карточке.
Ваш электронный
PAYEER® кошелек!
Хранить, купить или выгодно продать валюты и криптовалюты еще не было так просто.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
342.85714285
![]()
![]()
![]()
![]()
![]()
MATIC / USDT
![]()
USDC / USDT
Последняя Цена
Изменение за 24ч
Последний ордер
График за 7 дней
![]()
![]()
![]()
Bitcoin Cash
![]()
![]()
![]()
-0.17 % 0.0017
![]()
+1.26 % 0.007 0
![]()
+8.98 % 0.0072
![]()
-0.74 % 0.00083
![]()
Binance Coin
![]()
+14.12 % 0.974
![]()
+0.00 % 0 .0000
![]()
+0.33 % 0.0026
![]()
+0.21 % 0.0021
PAY EER ® Mobile
в вашем кармане
- Баланс всегда перед глазами
- Не нужно вводить пароль
- Мгновенные платежи и переводы
- Обмен валют
Приложение PAYEER доступно для IOS
и всех Android устройств


+23,209 АККАУНТОВ СЕГОДНЯ
Приложение PAYEER
Доступно для владельцев iOS и Android смартфонов.
электронный кошелек
- AML
- Защита данных
- Соглашение