Для чего нужен киви токен
Перейти к содержимому

Для чего нужен киви токен

  • автор:

Для чего нужен киви токен

  • Главная
  • Способы оплаты
  • Настройки способов оплаты
  • [QIWI] Настройка
  • Что такое токен и приватный ключ(Как выпустить токен)

Выпуск токена

Что нужно сделать, чтобы получить токен киви?

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

И так выпускаем токен и жмём на кнопку «Просмотр истории платежей» (По желанию можно разрешить верхние два пункта)

Никогда не разрешайте нижние пункты!

Результат верных настроек

Если вы ввели токен верно, то увидите информацию похожую, как на скриншоте.

Главное должна быть надпись
История кошелька доступна!

P2P — секретный ключ!

Если вы выбрали тип оплаты через P2P, то вам не надо выпускать токен. Вам необходимо воспользоваться другой инструкцией. Вам нужен не токен, а приватный ключ

Для чего нужен токен в Киви

Для этого потребуется авторизоваться или зарегистрироваться в сервисе QIWI Кошелек. После этого нажмите Выпустить новый токен. Во всплывающем окне выберите разрешения на операции с токен ом и нажмите Продолжить: Запрос информации о профиле кошелька — выполнение запросов профиля пользователя, идентификации, лимитов.

Что такое киви токены

Токен — комбинация символов (знаков), генерируемая автоматически и направляемая Банком Пользователю API для получения доступа к использованию API QIWI Кошелька. Токен предоставляется Банком Пользователю API, осуществившему процедуры запроса на его получение на WEB-сайте Банка.

Можно ли использовать киви без идентификации

Ваши возможности в QIWI Кошельке зависят от его статуса. Чтобы пополнять кошелек наличными, держать в кошельке больше денег, платить и переводить без ограничений, нужно пройти идентификацию — это требование закона ст. 7 115-ФЗ.

Что такое токен и как им пользоваться

Токены предназначены для электронного удостоверения личности (например, клиента, получающего доступ к банковскому счёту), при этом они могут использоваться как вместо пароля, так и вместе с ним. В некотором смысле токен — это электронный ключ для доступа к чему-либо.

Что такое токен в приложении

Токены — это ключи доступа к API. Они используются для авторизации при запросах к API. Токены позволяют ограничивать доступ к данным пользователя с помощью параметра scope. Он определяет рамки видимости для вашего приложения.

Что такое токен кошелька

То́кен — это единица учёта, не являющаяся криптовалютой, предназначенная для представления цифрового баланса в некотором активе, иными словами, выполняющая функцию «заменителя ценных бумаг» в цифровом мире. Токены представляют собой запись в регистре, распределенную в блокчейн-цепочке.

Кто владелец киви кошелька

Крупнейшими акционерами Qiwi на конец апреля 2021 являлись: Банк «Открытие» — 11,3 % (акции класса B) Сергей Солонин — 66,4 % (акции класса А) Melqart Asset Management (UK), LTD — 1,7 % (акции класса B)

Как перевести деньги с киви в биткоин

Для выполнения такой операции потребуется в окне «Отдаете» выбрать QIWI или Яндекс. Деньги, а в окне «Получаете», выбрать биткоин. Затем потребуется указать сумму, которую вы готовы отдать или сколько биткоинов вы хотите получить. Система автоматически посчитает вторую цифру.

Сколько денег можно держать на Киви

В соответствии с законом «О национальной платежной системе», с 1 октября 2012 года аноним не может держать в электронном кошельке более 15 тыс. рублей, а идентифицировавшийся пользователь — более 100 тыс.

Какой самый лучший электронный кошелек

Рейтинг лучших кошельков:

  • Paysera. Электронный кошелек популярной европейской платежной системы, который поддерживает более 30 валют и предлагает простую регистрацию.
  • Payoneer.
  • Payeer.
  • Global24.
  • PayPal.
  • AdvCash.
  • Perfect Money.
  • SettlePay Wallet.

Что будет если долго не заходить в Киви кошелек

За первые 90 дней в статусе Неактивного пользователя — по 10 рублей в день, следующие 90 дней в этом же статусе — по 0,25% с баланса карты/кошелька. Если на балансе кошелька у вас оставалось менее 4500 на момент присвоения статуса, то деньги будут списываться только по 0,25% от оставшейся суммы в день.

Что за ограничение в киви

Услуг, оплата на сайтах зарубежных компаний, переводы на другие кошельки, банковские счета и карты или через системы денежных переводов; • Платежи и переводы до 200 000 ₽ в месяц; • Допустимая сумма на одну операцию до 60 000 ₽; • Снятие наличных с карт QIWI до 5 000 ₽ в день до 40 000 ₽ в месяц.

Чем хорош киви кошелек

Основным преимуществом является возможность совершать переводы внутри системы без комиссии, т. е. с QIWI Кошелька на QIWI Кошелек (максимум 60 000 руб. за раз).

Что будет если ввести чужие паспортные данные в киви

Здравствуйте, Олег! Если Вы своими действиями с использованием паспорта третьего лица (друга Вашего друга) причинили ему реальный вред, то в Ваших действиях может содержаться состав преступления, предусмотренный ст. 159 УК РФ (мошенничество).

Как добавить токен в кошелек

Откройте вкладку «Пользовательский токен». Укажите адрес контракта нужного токена в окне «Адрес контракта токена». В ответ символ токена и число его десятичных знаков заполнятся автоматически, при этом при необходимости их можно изменить. Нажмите «Добавить пользовательский токен».

Как добавить токен

Когда вы нажмете «Импортировать токены», тип токена будет добавлен в ваш кошелек:

  • Найдите ссылку «Импорт токенов» на главной странице вашего кошелька.
  • Перейдите на вкладку «Пользовательский токен».
  • Найдите адрес токена и вставьте его в первое поле.
  • Нажмите «Импорт», чтобы добавить его в свой кошелек.

Как вывести из киви кошелька

На сайте qiwi.com:

  • Авторизуйтесь в QIWI Кошельке — введите номер телефона и пароль
  • В разделе «Переводы» выберите «Переводы на карту»
  • Введите номер карты получателя
  • Укажите сумму
  • Выберите способ оплаты: оплатить QIWI Кошельком или картой
  • Подтвердите оплату

Где найти секретный ключ киви

В личном кабинете необходимо перейти в раздел «Прием переводов» и открыть вкладку API. В нижней части раздела видим пункт «Аутентификационные данные». Нажимаем на кнопку «Создать пару ключей и настроить».

Как сделать Киви кошелек и как им пользоваться

Зарегистрировать QIWI Кошелек можно всего за 1 минуту на сайте, в мобильном приложении или в QIWI Терминале. Просто укажите номер своего мобильного телефона и получите SMS с паролем для входа в кошелек.

Токен в Киви, или QIWI Кошельке, является неотъемлемым элементом для доступа к его функциям и возможностям. Чтобы отправлять запросы в API Киви, необходимо сначала получить специальный токен — уникальный ключ, который обеспечивает доступ к вашему кошельку.

Процедура получения токена весьма проста. Для начала, пользователю необходимо авторизоваться или зарегистрироваться в сервисе QIWI Кошелек. После этого, в разделе API на официальном сайте Qiwi.com, можно получить токен. Для этого следует нажать на соответствующую кнопку «Выпустить новый токен». В появившемся окне выберите необходимые разрешения на операции с токеном и нажмите «Продолжить». Разрешения могут включать запрос информации о профиле кошелька, выполнение операций по идентификации пользователя, а также ограничений лимитов.

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

Кроме того, стоит отметить, что для полноценного использования Киви Кошелька и расширения его возможностей, рекомендуется пройти процесс идентификации. Без идентификации возможности Кошелька ограничены. Например, без идентификации невозможно пополнять кошелек наличными или хранить в кошельке большие суммы денег. Идентификация является требованием закона и позволяет расширить функциональность Киви Кошелька, позволяя без ограничений платить, переводить деньги и использовать другие возможности.

Термин «токен» имеет более широкое значение и используется не только в контексте Киви. Токены могут также представлять собой ключи доступа к API. Они используются для авторизации при запросах к API и позволяют ограничивать доступ к данным пользователя. Параметр «scope» определяет рамки видимости для вашего приложения, позволяя контролировать доступ к информации.

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

Нельзя не упомянуть и владельца Киви Кошелька. На конец апреля 2021 года крупнейшими акционерами Киви были Банк «Открытие», владеющий 11,3% акций класса B, Сергей Солонин, владеющий 66,4% акций класса А, и Melqart Asset Management (UK), LTD, владеющий 1,7% акций класса B.

Если же вы задаетесь вопросом, как перевести деньги с Киви в биткоин, то позвольте объяснить. Для этого вам потребуется выбрать соответствующую операцию в приложении Киви. В окне «Отдаете» необходимо выбрать способ оплаты — QIWI или Яндекс. Деньги, а в окне «Получаете» — биткоин. Затем укажите сумму, которую вы желаете отдать или получить в биткоинах. Особенностью системы является возможность автоматического расчета второй цифры, в зависимости от введенной вами суммы.

Таким образом, использование токена в Киви является неотъемлемым элементом для доступа к функциональности и операциям Киви Кошелька. Токены позволяют ограничивать доступ к данным пользователя и представляют собой цифровые ключи. Киви Кошелек также требует процедуру идентификации для расширения его возможностей. Владельцами Киви Кошелька являются Банк «Открытие» и Сергей Солонин. Кроме того, Киви Кошелек позволяет переводить деньги в биткоин с помощью соответствующей операции в приложении.

Как легально «вскрыть» QIWI Кошелек и прокачать его по полной программе

С недавнего времени пользователям Visa QIWI Кошелька доступны новые методы API. Под катом: что это за API, зачем мы его открыли и почему стоит начать им пользоваться уже сейчас.

История появления API

Формально история нашего API началась в апреле этого года, хотя часть из входящих в него методов была доступна задолго до этого.

Массовый пользовательский сервис QIWI Кошелек постепенно переходит на архитектуру микросервисов, поэтому внутри нашей системы компоненты взаимодействуют друг с другом посредством некоего API. Любой пользователь может зайти на сайт, открыть дебаггер и просмотреть, какие запросы браузер отправляет на сервер. Минимальных навыков программиста достаточно, чтобы вытащить отправляемые запросы и использовать их в собственных решениях в обход сайта.

Желающих так схитрить оказалось довольно много. Это и студенты-энтузиасты, которым интересно поковыряться в деталях работы Кошелька, и профессиональные разработчики, желающие интегрировать отдельные функции сайта QIWI Кошелька в свои решения. В итоге параллельно с развитием сайта начала развиваться целая экосистема сторонних решений в «сером» режиме, не легализованном в пользовательском соглашении и не обеспеченным нашим саппортом.

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

Чтобы упорядочить выгрузку данных с сайта, мы приняли решение легализовать ее, как это сделали в свое время в Citibank, Wargaming и Вконтакте. Мы описали наиболее современный и стабильный из существующих способов получения информации, сформировав первую версию пользовательского API.

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

Публикация документации по API сама по себе никак не отразилась на работе сторонних инструментов доступа к функциям Кошелька. Мы не планировали регламентировать «самострой», но наблюдали за ситуацией, поскольку решения были построены разработчиками на свой страх и риск на основе недокументированных возможностей сервиса. И пока они не затрагивают данные наших пользователей, мы никак с ними не боремся, но стараемся выйти на контакт с их создателями и рекомендовать перейти на использование задокументированного API.

Поскольку запросы проходили через парсинг сайта, очевидно, что решения, использующие выходящие за рамки API методы, будут работать до тех пор, пока соответствующие схемы работают на сайте. Но мы надеемся, что после появления более качественного пути недокументированные решения начнут постепенно отмирать.

Проблемы первой версии

К сожалению, на момент создания первой версии API у нас еще не было отдельной системы аутентификации. Поэтому на том этапе мы использовали схему аутентификации с нашего сайта (CAS), она была разобрана по отдельным командам и опубликована на developer.qiwi.com.

Аутентификация стала ключевой проблемой первого API. Если с точки зрения сайта механизм был правильным (именно так организована аутентификация на большинстве веб-страниц, по принципу двух токенов с разным временем жизни), то пользователю пройти процедуру оказалось довольно сложно. Этот метод изначально не был ориентирован на пользователей, а служил внутренним задачам нашего сайта. В результате возникали различные сложности, к примеру, выскакивала капча «докажите, что вы не робот», что было неожиданностью для пользователей, поскольку API предполагает доступ именно при помощи автоматических систем.

Хотя публикацию открытого API мы никак не афишировали, в сети появилось несколько статей, в том числе с негативными отзывами. На адрес обратной связи api_help@qiwi.com мы получили более сотни писем, смысл которых сводился к тому, что сам по себе API хороший, но аутентификация никуда не годится. Не все пользователи понимали, почему для подключения к финансовому сервису надо проходить столь заковыристую процедуру, в то время как с Instagram или Вконтакте все намного проще. Мы разъясняли, что сложности были обусловлены именно финансовой составляющей, ведь используемый метод (как в аутентификации сайта, так и в API) не должен ставить под угрозу счета клиентов.

Анализируя обратную связь, мы увидели, что API востребован, а критика направлена в основном на систему аутентификации, и приняли решение развивать API дальше.

Обновленный API

Разработка новых методов в рамках API была поручена команде специалистов, которые делают бекэнд для сайта и мобильного приложения QIWI Кошелька. API — их ключевая компетенция, именно эта команда переводит основной сайт на архитектуру микросервисов. И API тут служит для взаимодействия основного сайта и отдельных сущностей через запросы, которые мы передаем нашим пользователям.

Чтобы доработать существующий API и добавить в него новые методы, мы тщательно проанализировали обратную связь от пользователей.

Хотя среди наших клиентов довольно много любителей-энтузиастов, склонных пробовать что-то новое, основная часть пользователей API — профессиональные разработчики, интегрирующие QIWI Кошелек в свои бизнес-процессы (причем, это не интернет-магазины — для юридических лиц у нас предусмотрен отдельный API). В основном речь идет об оптимизации работы Кошелька под собственные нужды: настройке уведомлений, автоматизации оплаты услуг и обмена цифровыми товарами между пользователями, а также других задачах, не связанных с привычной электронной коммерцией.

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

Новая аутентификация

Для построения системы аутентификации, ориентированной на API, мы использовали стандарт RFC 6749 по открытому протоколу OAuth 2.0. Чтобы аутентификация соответствовала требованиям финансового сервиса, мы обеспечили двухфакторный доступ — по паролю к Кошельку и SMS-коду. Для прохождения процедуры пользователю необходимо выпустить токен, действительный в течение одного месяца 180 дней (выпуск подтверждается SMS-сообщением). По просьбе пользователей в новой версии OAuth 2.0 мы также открыли возможность выбора прав доступа для токена. К примеру, если требуется запросить баланс или получить историю платежей, токену даются права только на чтение. Всего доступно четыре группы прав доступа:

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

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

Профиль пользователя

Одна из новых функций, родившихся внутри нашей команды, а не из пожеланий клиентов — запрос профиля пользователя. Он позволяет получать различную информацию о Кошельке: дату регистрации, привязанный адрес электронной почты, уровень идентификации Кошелька. Последнее особенно важно для финансового сервиса, поскольку уровень идентификации определяет лимиты по операциям для кошелька. Ранее эту информацию можно было найти в настройках Кошелька на сайте qiwi.com, теперь она доступна и через API.

Отметим, что персональные данные пользователя через запрос профиля не доступны — таково требование безопасности.

Комиссионные тарифы

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

Оплата сотовой связи

Еще одно нововведение, инициированное нашими пользователями, — инструмент автоматизации оплаты сотовой связи, например, для телефонов курьеров.

Фактически метод состоит из двух этапов:

  • автоматическое определение оператора по номеру телефона и ID поставщика услуг в системе (работает даже для номеров, которые переносились от одного оператора к другому (MNP);
  • перевод денег на счет оператора.

Переводы в банки и на банковские карты

По аналогии с оплатой сотовой связи эта группа методов API позволяет автоматизировать переводы на банковские карты систем VISA, MasterCard и национальной платежной системы МИР по России и СНГ. Перевод осуществляется по номеру карты, по нему же определяется платежная система.

Банковский перевод — это отдельный метод, используемый для отправки денег в некоторые банки, с которыми у нас реализован онлайн-протокол моментальных переводов. В отличие от обычных денежных переводов по банковским реквизитам, для этих банков можно использовать большее количество идентификаторов клиента (номер карты, договора, счета и т. п.).

Юридическая сторона вопроса

До последнего времени доступ по API был формально запрещен. Все, что выполнялось при помощи API, делалось на свой страх и риск. Если пользователь распарсил сайт, достал из него какие-то команды, провел операции с кошельком, и у него пропали деньги, всю ответственность за последствия своих действий нес он сам. Техническая поддержка никак не участвовала в решении подобных проблем.

Чтобы таких ситуаций больше не возникало, мы внесли в пользовательское соглашение соответствующие изменения. Теперь API имеет официальный статус наравне с сайтом и мобильным приложением.

Что будет дальше?

Перечисленные методы доступа к данным уже работают, а документация по ним опубликована на сайте developer.qiwi.com.

Завершено внутреннее тестирование, и, опубликовав API, мы перешли ко второму этапу — проверке работоспособности связки «пользователь + документация + API». Этот этап должен ответить на вопросы о том, насколько понятна документация, нужны ли какие-то дополнительные пояснения и т. п. Поэтому мы предлагаем пользователям направлять отзывы на наш адрес: api_help@qiwi.com.

В ближайшей перспективе мы планируем расширить возможности API, предоставив сторонним сервисам методы для регистрации новых и аутентификации существующих пользователей в системе, а также проведения от их имени финансовых операций. Это немного иная модель взаимодействия между нами, пользователем и третьей стороной — сторонним сервисом.

Если вам интересны детали разработки новой версии API, пишите и задавайте вопросы в комментариях — мы постараемся ответить на них в наших следующих публикациях.

Внимание, конкурс

Чтобы заинтересовать разработчиков в использовании нового API, мы проводим всероссийский QIWI API Contest. Это первый конкурс в рамках QIWI Open Platform, направленный на популяризацию API компании.

Для участия в конкурсе необходимо создать Mobile First решения — чат-боты, мобильные приложения и web-продукты c использованием API QIWI Кошелька. Наши эксперты отберут наиболее проработанные решения и пригласят до 15 участников в финал конкурса, который пройдет в Москве 23 сентября.

Доступ к API

Основной URL-адрес для вызова методов API (если не указано иное):

Для успешного вызова методов API необходимы:

  • Корректные значения HTTP-заголовков Accept и Content-Type в запросе. API QIWI Кошелька поддерживает только один MIME-тип: application/json . Любое другое значение приведет к ошибке формата данных.
  • URL, составленный согласно требованиям к нужному запросу.
  • OAuth-токен , выданный вам для доступа к вашему QIWI кошельку. Для некоторых запросов его не потребуется.

Получение OAuth-токен а

block token

Пример вызова API

  • В результате авторизации на сайте QIWI Кошелек и выпуска токен а получентокен , представляющий собой строку:

Итоговый заголовок, добавляемый в каждый запрос к API QIWI Кошелька:

Authorization: Bearer U1QtOTkwMTAyLWNud3FpdWhmbzg3M

Профиль пользователя

Предложить правки на GitHub

Запрос возвращает информацию о вашем профиле — наборе пользовательских данных и настроек вашего QIWI кошелька.

Запрос → GET

URL /person-profile/v1/profile/current?parameter=value

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Параметры

Ответ ←

Успешный JSON-ответ содержит следующие данные:

Поле ответа Тип Описание
authInfo Object Текущие настройки авторизации. Объект может отсутствовать, в зависимости от признака authInfoEnabled в запросе.
authInfo.personId Number Номер кошелька
authInfo.registrationDate String Дата/время регистрации QIWI Кошелька (через сайт/мобильное приложение, либо другим способом)
authInfo.boundEmail String E-mail, привязанный к кошельку. Если отсутствует, то null
authInfo.ip String IP-адрес последней пользовательской сессии
authInfo.lastLoginDate String Дата/время последней сессии в QIWI Кошельке
authInfo.mobilePinInfo Object Данные о PIN-коде мобильного приложения QIWI Кошелька
mobilePinInfo.mobilePinUsed Boolean Логический признак использования PIN-кода (фактически означает, что мобильное приложение используется)
mobilePinInfo.lastMobilePinChange String Дата/время последнего изменения PIN-кода мобильного приложения QIWI Кошелька
mobilePinInfo.nextMobilePinChange String Дата/время следующего (планового) изменения PIN-кода мобильного приложения QIWI Кошелька
authInfo.passInfo Object Данные об использовании пароля к сайту qiwi.com
passInfo.passwordUsed Boolean Логический признак использования пароля (фактически означает использование сайта qiwi.com)
passInfo.lastPassChange String Дата/время последнего изменения пароля сайта qiwi.com
passInfo.nextPassChange String Дата/время следующего (планового) изменения пароля сайта qiwi.com
authInfo.pinInfo Object Данные об использовании PIN-кода к приложению QIWI Кошелька на QIWI терминалах самообслуживания
pinInfo.pinUsed Boolean Логический признак использования PIN-кода для терминала (фактически означает факт использования приложения QIWI Кошелька на терминале)
contractInfo Object Информация о кошельке. Объект может отсутствовать, в зависимости от признака contractInfoEnabled в запросе.
contractInfo.blocked Boolean Логический признак блокировки кошелька
contractInfo.contractId Number Номер кошелька
contractInfo.creationDate String Дата/время создания QIWI Кошелька (через сайт/мобильное приложение, либо при первом пополнении, либо другим способом)
contractInfo.features Array[Object] Служебная информация
contractInfo.identificationInfo Array[Object] Данные об идентификации пользователя.
identificationInfo[].bankAlias String Акроним системы, в которой пользователь получил идентификацию:
QIWI — QIWI Кошелек.
identificationInfo[].identificationLevel String Текущий уровень идентификации кошелька. Возможные значения:
ANONYMOUS — без идентификации;
SIMPLE , VERIFIED — упрощенная идентификация;
FULL — полная идентификация.
identificationInfo[].passportExpired Boolean Информация об актуальности паспортных данных владельца кошелька ( true означает, что паспортные данные недействительны).
userInfo Object Прочие пользовательские данные. Объект может отсутствовать, в зависимости от признака userInfoEnabled в запросе.
userInfo.defaultPayCurrency Number(3) Код валюты баланса кошелька по умолчанию (ISO-4217)
userInfo.defaultPaySource Number Служебная информация
userInfo.email String E-mail пользователя
userInfo.firstTxnId Number Номер первой транзакции после регистрации
userInfo.language String Служебная информация
userInfo.operator String Название мобильного оператора номера пользователя
userInfo.phoneHash String Служебная информация
userInfo.promoEnabled String Служебная информация

Идентификация

Идентификация пользователя

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

Для получения статуса «Основной» необходимо предоставить следующие данные о пользователе-владельце кошелька:

  • ФИО
  • Серия / Номер паспорта
  • Дата рождения
  • ИНН, СНИЛС или номер полиса ОМС — необязательно.

Для идентификации кошелька вы обязательно должны отправить ФИО, серию/номер паспорта и дату рождения. Если данные прошли проверку, то в ответе будет отображен ваш ИНН и упрощенная идентификация кошелька будет установлена. В случае если данные не прошли проверку, кошелек остается в статусе «Минимальный».

Запрос → POST

URL /identification/v1/persons/wallet/identification

  • wallet — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Ответ ←

Успешный ответ в формате JSON содержит подтверждение идентификации кошелька:

Поле ответа Тип Описание
id Number Номер кошелька пользователя
type String Текущий статус кошелька:
SIMPLE — «Минимальный».
VERIFIED — «Основной» (данные для идентификации успешно прошли проверку).
FULL – «Профессиональный», если кошелек уже ранее получал полную идентификацию по данным ФИО, номеру паспорта и дате рождения.
birthDate String Дата рождения пользователя
firstName String Имя пользователя
middleName String Отчество пользователя
lastName String Фамилия пользователя
passport String Серия и номер паспорта пользователя
inn String ИНН пользователя. Если в запросе параметр не заполнен, но присутствует в ответе, то идентификация кошелька выполнена.
snils String Номер СНИЛС пользователя
oms String Номер полиса ОМС пользователя

Данные идентификации

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

Запрос → GET

URL /identification/v1/persons/wallet/identification

  • wallet — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный ответ в формате JSON содержит маскированные данные идентификации кошелька:

Поле ответа Тип Описание
id Number Номер кошелька пользователя
type String Текущий статус кошелька:
SIMPLE — «Минимальный».
VERIFIED — «Основной» (данные для идентификации успешно прошли проверку).
FULL – «Профессиональный», если кошелек уже ранее получал полную идентификацию по данным ФИО, номеру паспорта и дате рождения.
birthDate String Дата рождения пользователя
firstName String Имя пользователя
middleName String Отчество пользователя
lastName String Фамилия пользователя
passport String Серия и номер паспорта пользователя (первые и последние 2 цифры)
inn String ИНН пользователя (первые и последние 2 цифры)
snils String Номер СНИЛС пользователя (первые и последние 2 цифры)
oms String Номер полиса ОМС пользователя (первые и последние 2 цифры)

Понижение уровня идентификации

Вы можете понизить уровень идентификации вашего QIWI кошелька. На данный момент понижение доступно только с уровня «Профессиональный» до уровня «Основной».

Для понижения уровня необходимо сделать 2 запроса:

  • Создание заявки на понижение уровня идентификации.
  • Подтверждение заявки на понижение уровня идентификации.

Создание заявки на понижение уровня идентификации

Запрос → POST

URL /qw-ident-downgrade-api/v1/persons/wallet/identification-downgrade/operations

  • wallet — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Ответ ←

Успешный ответ в формате JSON содержит ID заявки на понижение уровня идентификации:

Поле ответа Тип Описание
downgradeOperationId String ID заявки на понижение уровня идентификации

Подтверждение заявки на понижение уровня идентификации

Запрос → PUT

URL /qw-ident-downgrade-api/v1/persons/wallet/identification-downgrade/operations/downgradeOperationId/confirm

  • wallet — номер вашего кошелька без знака «+»
  • downgradeOperationId — ID вашей заявки на понижение уровня идентификации

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный ответ в формате JSON содержит информацию о заявке на понижение уровня идентификации:

Поле ответа Тип Описание
downgradeOperation.downgradeOperationId String ID заявки на понижение уровня идентификации
downgradeOperation.status.type String Статус заявки на понижение уровня идентификации.
IN_PROGRESS — Заявка на понижение уровня идентификации в обработке. Вы можете проверять текущий статус заявки отдельным запросом (см. ниже).
SUCCESS — Заявка на понижение уровня идентификации успешно обработана.
FAIL – Понижение уровня идентификации невозможно.

Запрос статуса заявки на понижение уровня идентификации

Запрос → GET

URL /qw-ident-downgrade-api/v1/persons/wallet/identification-downgrade/operations/downgradeOperationId

  • wallet — номер вашего кошелька без знака «+»
  • downgradeOperationId — ID вашей заявки на понижение уровня идентификации

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный ответ в формате JSON содержит информацию о заявке на понижение уровня идентификации:

Поле ответа Тип Описание
downgradeOperation.downgradeOperationId String ID заявки на понижение уровня идентификации
downgradeOperation.status.type String Статус заявки на понижение уровня идентификации.
IN_PROGRESS — Заявка на понижение уровня идентификации в обработке.
SUCCESS — Заявка на понижение уровня идентификации успешно обработана.
FAIL – Понижение уровня идентификации невозможно.

Лимиты QIWI Кошелька

Уровни лимитов

Запрос возвращает текущие уровни лимитов по операциям в вашем QIWI кошельке. Лимиты действуют как ограничения на сумму определенных операций.

Запрос → GET

URL /qw-limits/v1/persons/personId/actual-limits?parameter=value

  • personId — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Параметры

Ответ ←

Успешный ответ содержит JSON-массив лимитов по операциям вашего QIWI Кошелька:

Поле ответа Тип Описание
limits Object Описание лимитов
limits[].’RU’ Array[Object] Массив лимитов на операции
type String Тип операций, на которые действует этот лимит
currency String Валюта операций
max String Значение лимита
spent String Сумма, потраченная по данным операциям
rest Boolean Остаток лимита, который можно потратить в указанный период (период задается в параметре interval )
interval Object Сведения о периоде действия лимита
interval.dateFrom, interval.dateTill String Начало и конец периода, формат даты ГГГГ-ММ-ДДТЧЧ:ММ:ССtmz

Лимит по операциям с физлицами

Запрос возвращает значение количества операций с физлицами за текущий месяц в вашем QIWI кошельке.

Запрос → GET

URL /qw-limits/v1/persons/personId/p2p-payment-count-limit

  • personId — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный ответ в формате JSON содержит информацию по операциям вашего QIWI Кошелька:

Поле ответа Тип Описание
p2pPaymentCountLimit Number Kоличество операций с физлицами в месяце

Проверка ограничений исходящих платежей с QIWI Кошелька

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

Запрос → GET

URL /person-profile/v1/persons/personId/status/restrictions

  • personId — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный ответ содержит JSON-массив ограничений кошелька с их описанием:

Поле ответа Тип Описание
restrictionCode String Код блокировки
restrictionDescription String Описание блокировки
restrictionCode restrictionDescription
OUTGOING_PAYMENTS Исходящие платежи заблокированы

Если ограничений нет, возвращается пустой массив.

История платежей

Предложить правки на GitHub

Список платежей

Запрос выгружает список платежей и пополнений вашего кошелька. Можно использовать фильтр по количеству, ID и дате (интервалу дат) транзакций.

Запрос → GET

Пример 1. Последние 10 платежей

Пример 3. Продолжение списка платежей (в предыдущем запросе истории возвращены параметры nextTxnId=9103121 и nextTxnDate=2017-05-11T12:35:23+03:00)

Пример 4. Последние 10 платежей с рублевого баланса и с привязанной карты

Пример 5. Платежи за 10.05.2017 с рублевого счета

Пример 6. Продолжение списка платежей за 10.05.2017 (в Примере 2 возвращены параметры nextTxnId=9103121 и nextTxnDate=2017-05-11T12:35:23+03:00)

URL /payment-history/v2/persons/wallet/payments?parameter=value

  • wallet — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Параметры

Ответ ←

Успешный JSON-ответ содержит список платежей из истории кошелька, соответствующих заданному фильтру:

Поле ответа Тип Описание
data Array[Object] Список объектов PaymentHistoryItem.
Число объектов в списке меньше или равно параметру rows из запроса
nextTxnId Number(Integer) ID следующего платежа в полном списке
nextTxnDate DateTime Дата/время следующего платежа в полном списке, время московское (в формате ГГГГ-ММ-ДД’T’чч:мм:сс+03:00 )

Статистика платежей

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

Запрос → GET

URL /payment-history/v2/persons/wallet/payments/total?parameter=value

  • wallet — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Параметры

Ответ ←

Успешный JSON-ответ содержит статистику платежей за выбранный период:

Поле ответа Тип Описание
incomingTotal Array[Object] Массив данных о суммах входящих платежей (пополнениях) по каждой валюте
incomingTotal[].amount Number(Decimal) Сумма пополнений за период
incomingTotal[].currency Number(3) Код валюты пополнений (ISO-4217)
outgoingTotal Array[Object] Массив данных о суммах исходящих платежей по каждой валюте
outgoingTotal[].amount Number(Decimal) Сумма платежей за период
outgoingTotal[].currency Number(3) Код валюты платежей (ISO-4217)

Информация о транзакции

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

Запрос → GET

URL /payment-history/v2/transactions/transactionId?type=value

  • transactionId — номер транзакции из истории платежей (параметр data[].txnId в ответе)
  • type — тип транзакции из истории платежей (параметр data[].type в ответе). Параметр является необязательным

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный JSON-ответ содержит объект Transaction с данными о транзакции.

Квитанция платежа

Запрос используется для получения электронной квитанции (чека) по определенной транзакции из вашей истории платежей в формате PDF/JPEG в виде файла или почтовым сообщением на указанный e-mail.

Файл квитанции

Запрос → GET

URL /payment-history/v1/transactions/transactionId/cheque/file?type=value&format=value

  • transactionId — номер транзакции из истории платежей (параметр data[].txnId в ответе)
  • type — тип транзакции из истории платежей (параметр data[].type в ответе)
  • format — тип файла, в который сохраняется квитанция. Допустимые значения: JPEG, PDF

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный JSON-ответ содержит файл выбранного формата в бинарном виде.

Отправка квитанции

Запрос → POST

URL /payment-history/v1/transactions/transactionId/cheque/send?type=value

  • transactionId — номер транзакции из истории платежей (параметр data[].txnId в ответе)
  • type — тип транзакции из истории платежей (параметр data[].type в ответе)

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметр

Ответ ←

Успешный JSON-ответ содержит HTTP-код результата операции отправки файла.

Модели данных API

Класс PaymentHistoryItem

Объект, описывающий существующую транзакцию в сервисе QIWI Кошелек.

Элемент Тип Описание
txnId Integer ID транзакции в сервисе QIWI Кошелек
personId Integer Номер кошелька
date DateTime Для запросов истории платежей — Дата/время платежа, во временной зоне запроса (см. параметр startDate ). Формат даты ГГГГ-ММ-ДД’T’чч:мм:сс+03:00
Для запросов данных о транзакции — Дата/время платежа, время московское (в формате ГГГГ-ММ-ДД’T’чч:мм:сс+03:00 )
errorCode Number(Integer) Код ошибки платежа
error String Описание ошибки
type String Тип платежа. Возможные значения:
IN — пополнение,
OUT — платеж,
QIWI_CARD — платеж с карты QIWI (QVC, QVP).
status String Статус платежа. Возможные значения:
WAITING — платеж проводится,
SUCCESS — успешный платеж,
ERROR — ошибка платежа.
statusText String Текстовое описание статуса платежа
trmTxnId String Клиентский ID транзакции
account String Для платежей — идентификатор получателя (номер счета, телефона, маскированный номер карты и т.д.). Для пополнений — идентификатор отправителя, терминала или название агента пополнения кошелька
sum Object Данные о сумме платежа или пополнения.
sum.amount Number(Decimal) сумма платежа
sum.currency Number(3) валюта платежа (код по ISO-4217)
commission Object Данные о комиссии платежа
commission.amount Number(Decimal) сумма
commission.currency Number(3) валюта (код по ISO-4217)
total Object Данные о фактической сумме платежа или пополнения.
total.amount Number(Decimal) сумма (равна сумме платежа sum.amount и комиссии commission.amount )
total.currency Number(3) валюта (код по ISO-4217)
provider Object Данные о провайдере.
provider.id Integer ID провайдера в QIWI Wallet
provider.shortName String краткое наименование провайдера
provider.longName String развернутое наименование провайдера
provider.logoUrl String ссылка на логотип провайдера
provider.description String описание провайдера (HTML)
provider.keys String список ключевых слов
provider.siteUrl String сайт провайдера
source Object Служебная информация
comment String Комментарий к платежу
currencyRate Number(Decimal) Курс конвертации (если применяется в транзакции)

Класс Transaction

Объект, описывающий существующую транзакцию в сервисе QIWI Кошелек.

Элемент Тип Описание
txnId Integer ID транзакции в сервисе QIWI Кошелек
personId Integer Номер кошелька
date DateTime Для запросов истории платежей — Дата/время платежа, во временной зоне запроса (см. параметр startDate ). Формат даты ГГГГ-ММ-ДД’T’чч:мм:сс+03:00
Для запросов данных о транзакции — Дата/время платежа, время московское (в формате ГГГГ-ММ-ДД’T’чч:мм:сс+03:00 )
errorCode Number(Integer) Код ошибки платежа
error String Описание ошибки
type String Тип платежа. Возможные значения:
IN — пополнение,
OUT — платеж,
QIWI_CARD — платеж с карты QIWI (QVC, QVP).
status String Статус платежа. Возможные значения:
WAITING — платеж проводится,
SUCCESS — успешный платеж,
ERROR — ошибка платежа.
statusText String Текстовое описание статуса платежа
trmTxnId String Клиентский ID транзакции
account String Для платежей — идентификатор получателя (номер счета, телефона, маскированный номер карты и т.д.). Для пополнений — идентификатор отправителя, терминала или название агента пополнения кошелька
sum Object Данные о сумме платежа или пополнения.
sum.amount Number(Decimal) сумма платежа
sum.currency Number(3) валюта платежа (код по ISO-4217)
commission Object Данные о комиссии платежа
commission.amount Number(Decimal) сумма
commission.currency Number(3) валюта (код по ISO-4217)
total Object Данные о фактической сумме платежа или пополнения.
total.amount Number(Decimal) сумма (равна сумме платежа sum.amount и комиссии commission.amount )
total.currency Number(3) валюта (код по ISO-4217)
provider Object Данные о провайдере.
provider.id Integer ID провайдера в QIWI Wallet
provider.shortName String краткое наименование провайдера
provider.longName String развернутое наименование провайдера
provider.logoUrl String ссылка на логотип провайдера
provider.description String описание провайдера (HTML)
provider.keys String список ключевых слов
provider.siteUrl String сайт провайдера
source Object Служебная информация
comment String Комментарий к платежу
currencyRate Number(Decimal) Курс конвертации (если применяется в транзакции)
paymentExtras Array of Objects Служебная информация
features Object Набор специальных полей
features.chequeReady Boolean Специальное поле
features.bankDocumentReady Boolean Специальное поле
features.bankDocumentAvailable Boolean Специальное поле
features.repeatPaymentEnabled Boolean Специальное поле
features.favoritePaymentEnabled Boolean Специальное поле
features.regularPaymentEnabled Boolean Специальное поле
features.chatAvailable Boolean Специальное поле
features.greetingCardAttached Boolean Специальное поле
serviceExtras Object Служебная информация
view Object Служебная информация

Баланс QIWI Кошелька

Предложить правки на GitHub

Методы данного API предназначены для управления балансами вашего QIWI кошелька.

Список балансов

Запрос выгружает текущие балансы счетов вашего QIWI Кошелька.

Запрос → GET

URL /funding-sources/v2/persons/personId/accounts

  • personId — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Повторный запрос, если в ответе пришел пустой объект balance и поле «hasBalance»: true

Успешный ответ содержит JSON-массив счетов вашего QIWI Кошелька для фондирования платежей и текущие балансы счетов:

Поле ответа Тип Описание
accounts Array[Object] Массив балансов
accounts[].alias String Псевдоним пользовательского баланса
accounts[].fsAlias String Псевдоним банковского баланса
accounts[].bankAlias String Псевдоним банка
accounts[].title String Название соответствующего счета кошелька
accounts[].hasBalance Boolean Логический признак реального баланса в системе QIWI Кошелек (не привязанная карта, не счет мобильного телефона и т.д.)
accounts[].currency Number(3) Код валюты баланса (ISO-4217). Возвращаются балансы в следующих валютах: 643 — российский рубль, 840 — американский доллар, 978 — евро
accounts[].type Object Сведения о счете
type.id, type.title String Описание счета
accounts[].balance Object Сведения о балансе данного счета.
Если объект пустой и при этом поле accounts[].hasBalance равно true , повторите запрос с дополнительными параметрами:
timeout=1000 и alias=accounts[].alias (псевдоним этого баланса)
balance.amount Number Текущий баланс данного счета
balance.currency Number(3) Код валюты баланса (ISO-4217)

Создание баланса

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

Запрос → POST

URL /funding-sources/v2/persons/personId/accounts

  • personId — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Ответ ←

Успешный ответ содержит HTTP-код 201 .

Запрос доступных счетов

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

Запрос → GET

URL /funding-sources/v2/persons/personId/accounts/offer

  • personId — номер вашего кошелька без знака «+»

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный JSON-ответ содержит данные о счетах, которые можно создать:

Поле ответа Тип Описание
<> Object Коллекция описаний счетов
Object.alias String Псевдоним счета
Object.currency Number(3) Код валюты счета (ISO-4217)

Установка баланса по умолчанию

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

Запрос → PATCH

URL /funding-sources/v2/persons/personId/accounts/accountAlias

  • personId — номер вашего кошелька без знака «+»
  • accountAlias — псевдоним счета в кошельке из списка счетов (параметр accounts[].alias в ответе)

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Ответ ←

Успешный ответ содержит HTTP-код 204 .

API QIWI Мастер

Предложить правки на GitHub

API дает доступ к управлению пакетом услуг QIWI Мастер. Пакет услуг позволяет выпускать до пяти бесплатных виртуальных карт QIWI и перевыпускать карты неограниченное число раз. Выпуск карт сверх указанного количества оплачивается по тарифу.

Доступны два типа карт:

  • QIWI Мастер Prepaid – для оплаты рекламы в сервисах Яндекс.Директ и myTarget;
  • QIWI Мастер Debit – новый дебетовый БИН.

Для вызова методов API вам потребуется токен API QIWI Wallet с разрешениями на следующие действия:

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

Отметьте указанные разрешения при выпуске токена API QIWI Wallet.

Token Scopes

С помощью методов API вы можете:

Чтобы начать работу с API, необходимо приобрести пакет QIWI Мастер.

Покупка пакета QIWI Мастер

Запрос → POST

URL /sinap/api/v2/terms/28004/payments

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект Payment. Набор обязательных реквизитов платежа в поле fields :

Название Тип Описание
fields.account String Номер кошелька для покупки пакета QIWI Мастер
fields.vas_alias String Только qvc-master

Ответ ←

Успешный JSON-ответ содержит объект PaymentInfo с данными о принятом платеже.

Выпуск виртуальной карты QIWI Мастер

Для выпуска виртуальной карты к пакету QIWI Мастер вам необходимо последовательно выполнить следующие запросы.

Шаг 1. Создание заказа

Отправьте POST-запрос на адрес:

В ссылке запроса укажите номер кошелька с пакетом QIWI Мастер. В теле запроса укажите JSON с обязательным параметром:

Название Тип Описание
cardAlias String Тип карты

Успешный ответ содержит JSON с номером заказа:

Поле ответа Тип Описание
id String Номер заказа
cardAlias String Тип карты
status String Статус заказа
price Object Не заполняется
cardId String Не заполняется
Доступные для заказа типы карт
Название карты Описание cardAlias
QIWI Мастер Prepaid Для оплаты рекламы в сервисах Яндекс.Директ и myTarget «qvc-cpa»
QIWI Мастер Debit Новый дебетовый БИН «qvc-cpa-debit»

Шаг 2. Подтверждение заказа

Отправьте PUT-запрос на адрес:

/cards/v2/persons/<номер кошелька>/orders/<номер заказа из ответа в Шаге 1>/submit

В ссылке запроса укажите номер кошелька с пакетом QIWI Мастер и номер заказа из ответа предыдущего шага (поле id ). В теле запроса ничего не указывайте.

Успешный ответ содержит JSON со статусом заказа:

Поле ответа Тип Описание
id String Номер заказа
cardAlias String Тип карты
status String Статус заказа.
Если карта бесплатная, то COMPLETED . Если карта платная (выпускается сверх лимита в 5 карт), то PAYMENT_REQUIRED .
price Object Сведения о платеже
amount Number(Decimal) Сумма покупки
currency Number(3) Валюта платежа (ISO-4217)
cardId String Номер выпущенной карты. Не заполняется, если карта платная.

Шаг 3. Покупка карты

Отправьте POST-запрос на адрес:

В теле запроса передается JSON-объект Payment. Набор обязательных реквизитов платежа в объекте fields :

Название Тип Описание
fields.account String Номер кошелька
fields.order_id String Номер заказа из ответа на запрос

Успешный JSON-ответ содержит объект PaymentInfo с данными о принятом платеже.

Информацию о выпущенной карте вы можете запросить со списком карт QIWI Мастер в вашем кошельке. Карту можно найти по дате активации (поле activated ) или по сравнению со списком ранее выпущенных карт.

Список карт QIWI Мастер

Чтобы получить список всех ваших карт QIWI Мастер, отправьте GET-запрос на адрес:

Успешный ответ содержит JSON-массив с информацией о выпущенных картах:

Поле ответа Тип Описание
qvx Object Общая информация о карте
id Number ID карты
maskedPan String Маскированный номер карты (отображаются только последние 4 цифры)
status String Текущий статус карты. Возможные значения: ACTIVE , SENDED_TO_BANK , SENDED_TO_USER , BLOCKED , UNKNOWN
cardExpire String Срок действия карты
cardType String Вид карты: всегда VIRTUAL (виртуальная карта)
cardAlias String Название карты в интерфейсе сайта qiwi.com
cardLimit Object Лимиты на карту
value Number Значение лимита
currencyCode Number(3) Код валюты (ISO-4217)
activated String Дата активации карты
smsResended String Дата высылки СМС с реквизитами
blockedDate String Дата блокировки
unblockAvailable Boolean Признак возможности разблокировать карту
txnId String ID транзакции заказа карты
cardExpireMonth String Месяц окончания действия карты
cardExpireYear String Год окончания действия карты
balance Object Данные баланса карты
amount Number Сумма баланса
currency Number(3) Код валюты баланса (ISO-4217)
info Object Тарифы и банковские реквизиты карты
alias String Тип карты
price Object Тариф карты
amount Number Стоимость обслуживания
currency Number(3) Код валюты баланса (ISO-4217)
period String Период обслуживания (по тарифу)
tariffLink String Ссылка на описание тарифа
offerLink String Ссылка на договор оферты на выпуск карты
requisites Array Список пар «ключ-значение» с данными банковских реквизитов для пополнения карты

Выписка по карте

Запрос предназначен для выгрузки операций по определенной карте за указанный период в тарифе QIWI Мастер.

Чтобы получить список операций по карте QIWI Мастер, отправьте GET-запрос на адрес:

/payment-history/v1/persons/<номер кошелька>/cards/<ID карты>/statement?from=<дата начала выписки>&till=<дата окончания выписки>

ID карты можно получить:

    — для бесплатной карты;
  • из ответа на запрос списка карт — для платной карты.

Успешный ответ в формате application/pdf (в бинарном виде) содержит PDF-файл с выпиской.

Блокировка карты

Чтобы заблокировать карту тарифа QIWI Мастер, отправьте PUT-запрос на адрес:

/cards/v2/persons/<номер кошелька>/cards/<ID карты>/block

ID карты можно получить:

    — для бесплатной карты;
  • из ответа на запрос списка карт — для платной карты.

Ответ ←

Успешный ответ содержит HTTP-код 202.

Разблокировка карты

Чтобы разблокировать карту, отправьте PUT-запрос на адрес:

/cards/v2/persons/<номер кошелька>/cards/<ID карты>/unblock

ID карты можно получить:

    — для бесплатной карты;
  • из ответа на запрос списка карт — для платной карты.

Успешный ответ содержит JSON со статусом операции:

Поле ответа Тип Описание
status String Статус операции: OK , FAIL , CONFIRMATION_REQUIRED или CONFIRMATION_LIMIT_EXCEED
confirmationId String ID подтверждения ( null для API)
operationId String ID операции ( null для API)
nextConfirmationRequest String Дата следующей возможности запросить подтверждение ( null для API)

Получение реквизитов карты

Чтобы получить платежные реквизиты карты (PAN и CVV), отправьте PUT-запрос на адрес:

ID карты можно получить:

    — для бесплатной карты;
  • из ответа на запрос списка карт — для платной карты.

В теле запроса укажите JSON с обязательным параметром:

Название Тип Описание
operationId String Произвольный UUID

Успешный ответ содержит JSON с PAN и CVV карты:

Поле ответа Тип Описание
status String Статус операции: OK , FAIL , CONFIRMATION_REQUIRED или CONFIRMATION_LIMIT_EXCEED
cvv String CVV карты
pan String PAN карты
errorCode String Код ошибки

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

Чтобы изменить название карты в интерфейсе сайта qiwi.com, отправьте PUT-запрос на адрес:

ID карты можно получить:

    — для бесплатной карты;
  • из ответа на запрос списка карт — для платной карты.

В теле запроса укажите JSON с обязательным параметром:

Название Тип Описание
alias String Новое пользовательское имя карты

Успешный ответ содержит JSON со статусом операции:

Поле ответа Тип Описание
status String Статус операции: OK или FAIL
error String Текстовое описание ошибки
errorCode String Код ошибки

Платежное API

Предложить правки на GitHub

API предоставляет доступ к платежам в пользу провайдеров услуг, зарегистрированных в сервисах QIWI Кошелька.

Комиссионные тарифы

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

Запрос → POST

URL /sinap/providers/ /onlineCommission

ID — идентификатор провайдера. Возможные значения:

  • 99 — Перевод на QIWI Кошелек.
  • 1717 — Перевод по банковским реквизитам организации. .

Также идентификатор нужного провайдера можно установить поиском по ключевым словам.

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

Обязательные параметры в теле запроса:

Название Тип Описание
account String Пользовательский идентификатор (номер телефона с международным префиксом, номер карты/счета получателя, и т.д., в зависимости от провайдера)
paymentMethod Object Объект, определяющий обработку платежа процессингом QIWI Wallet. Содержит следующие параметры:
paymentMethod.type String Метод платежа, только Account
paymentMethod.accountId String Идентификатор счета, только 643 .
purchaseTotals Object Объект с платежными реквизитами
purchaseTotals.total Object Объект, содержащий данные о сумме платежа:
total.amount Number Сумма (можно указать рубли и копейки, разделитель . ). Положительное число, округленное до 2 знаков после десятичной точки. При большем числе знаков значение будет округлено до копеек в меньшую сторону.
total.currency String Валюта (только 643 , рубли)

Ответ ←

Рассчитанная сумма комиссии возвращается в поле qwCommission.amount JSON-ответа.

Автозаполнение платежных форм

Запрос отображает в браузере предзаполненную форму на сайте qiwi.com для совершения платежа.

Если вы не хотите, чтобы пользователь видел номер вашего кошелька на форме, используйте перевод по никнейму:

Запрос → GET

URL https://qiwi.com/ ?=

ID — идентификатор провайдера, у которого набор реквизитов платежа ограничен только полем fields.account . Возможные значения:

  • 99 — Перевод на QIWI Кошелек.
  • 99999 — Перевод на QIWI Кошелек по никнейму.
  • 1963 — Перевод на карту Visa (карты российских банков).
  • 21013 — Перевод на карту MasterCard (карты российских банков).
  • 31652 — Перевод на карту МИР.
  • 22351 — Перевод на Виртуальную карту QIWI.
  • 1717 — Перевод по банковским реквизитам организации.

Также идентификатор нужного провайдера можно установить поиском по ключевым словам.

Параметры

В строке URL запроса указываются параметры отображения платежной формы:

Название Тип Описание Поле на форме
amountInteger Integer Целая часть суммы платежа (рубли). Если параметр не указан, поле «Сумма» на форме будет пустым. Допустимо число не больше 99 999 (ограничение на сумму платежа) Сумма
amountFraction Integer Дробная часть суммы платежа (копейки). Если параметр не указан, поле «Сумма» на форме будет пустым. Сумма
currency Константа, 643 Код валюты платежа. Обязательный параметр, если вы передаете в ссылке сумму платежа
extra[‘comment’] URL-encoded string Комментарий. Параметр используется только для >

Комментарий к переводу
extra[‘account’] URL-encoded string Формат совпадает с форматом параметра fields.account при оплате соответствующих провайдеров: для провайдера 99 — номер кошелька получателя; для провайдеров сотовой связи — номер мобильного телефона для пополнения (без префикса 8); для провайдеров перевода на карту — номер банковской карты получателя (без пробелов), для других провайдеров — идентификатор пользователя. Для провайдера 99999 указывается никнейм или номер кошелька получателя (задайте соответствующее значение параметра extra[‘accountType’] ). Номер Кошелька, номер телефона/счета/карты/пользовательский ID получателя.
blocked Array[String] Признак неактивного поля формы. Пользователь не сможет менять значение данного поля. Каждый параметр задает соответствующее поле формы и нумеруется начиная с нуля ( blocked[0] , blocked[1] и т.д.). Если не указан, пользователь сможет изменить все поля формы. Допустимые значения:
sum — поле «сумма платежа»,
account — поле «номер счета/телефона/карты»,
comment — поле «комментарий».
Пример (неактивное поле суммы платежа): blocked[0]=sum
extra[‘accountType’] URL-encoded string Параметр используется только для Значение определяет перевод на QIWI кошелек по никнейму или по номеру кошелька.
phone — для перевода по номеру
nickname — для перевода по никнейму. Если вы не хотите, чтобы пользователь видел номер вашего кошелька на форме, используйте это значение.

Как узнать свой никнейм через API

Запрос → GET

URL /qw-nicknames/v1/persons/ /nickname

wallet — номер вашего кошелька без знака + .

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный ответ в формате JSON содержит никнейм вашего кошелька в поле nickname .

Перевод на QIWI Кошелек

Запрос → POST

URL /sinap/api/v2/terms/99/payments

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа передается во вложенном объекте fields :

Название Тип Описание
fields.account String Обязательный параметр. Номер кошелька для перевода

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

Конвертация

Запрос выполняет перевод средств на валютный счет QIWI Кошелька с конвертацией с вашего рублевого счета. При этом формируются две транзакции: конвертации между счетами вашего кошелька и перевода на другой кошелек. Курс валют для конвертации можно узнать другим запросом.

Запрос → POST

URL /sinap/api/v2/terms/1099/payments

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа передается во вложенном объекте fields :

Название Тип Описание
fields.account String Обязательный параметр. Номер кошелька для перевода

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

Курсы валют

Запрос возвращает текущие курсы и кросс-курсы валют КИВИ Банка.

Запрос → GET

URL /sinap/crossRates

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный JSON-ответ содержит список курсов валют в списке result . Элемент списка соответствует валютной паре:

Поле ответа Тип Описание
from String Валюта покупки
to String Валюта продажи
rate Number Курс

Оплата сотовой связи

Запрос → POST

URL /sinap/api/v2/terms/ /payments

ID — идентификатор провайдера. Определяется с помощью поиска провайдера.

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа передается во вложенном объекте fields :

Название Тип Описание
fields.account String Номер мобильного телефона для пополнения (без префикса 8 )

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

Перевод на карту

Поиск ID для переводов на банковские карты РФ и Белоруссии

Определение ID для переводов на банковские карты РФ и Белоруссии.

Запрос → POST

URL /sinap/api/refs/bd6fb248-2bdf-49ed-bcb2-9b0a789cfde8/containers

HEADERS

  • Accept: application/vnd.qiwi.v1+json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В поле account JSON-тела запроса передается номер карты в строковом формате. В номере после каждой четвертой цифры ставится пробел.

Ответ ←

В поле ответа elements[].value возвращается ID провайдера для перевода на банковскую карту.

Перевод на карты банков РФ и зарубежных банков

Запрос выполняет денежный перевод на карты платежных систем Visa, MasterCard или МИР.

Платежи на карты Visa и MasterCard, выпущенные иностранными банками, временно остановлены по причине ограничений со стороны платежной системы .

Запрос → POST

Пример перевода на карту банка РФ

Пример перевода на международную карту

URL /sinap/api/v2/terms/ /payments

ID — идентификатор провайдера. Возможные значения:

  • 1963 — Перевод на карту Visa. Для карт, выпущенных российскими банками.
  • 1960 — Перевод на карту Visa. Для карт, выпущенных банками стран Албания, Андорра,Аргентина, Армения, Австралия, Австрия, Азербайджан, Беларусь, Бельгия, Бенин, Босния и Герцеговина, Бразилия, Болгария, Китай, Хорватия, Кипр, Чешская Республика, Дания, Египет, Эстония, Финляндия, Франция, Грузия, Германия, Греция, Гонконг (Китай), Венгрия, Исландия, Индия, Индонезия, Израиль, Италия, Япония, Казахстан, Кения, Корея Республика, Кувейт, Кыргызстан, Латвия, Литва, Люксембург, Макао, Китай, Македония, Мадагаскар, Малайзия, Мальдивы, Мальта, Республика Молдова, Монако, Монголия, Черногория, Намибия, Нидерланды, Новая Зеландия, Нигерия, Норвегия, Оман, Парагвай, Польша, Португалия, Катар, Румыния, Саудовская Аравия, Республика Сербия, Сингапур, Словакия, Словения, Южная Африка, Испания, Шри-Ланка, Швеция, Таджикистан, Танзания, Таиланд, Турция, Туркменистан, Объединенные Арабские Эмираты, Великобритания, Узбекистан, Вьетнам, Замбия.
  • 21013 — Перевод на карту MasterCard. Для карт, выпущенных российскими банками.
  • 21012 — Перевод на карту MasterCard. Для карт, выпущенных банками стран Албания, Аргентина, Армения, Австралия, Австрия, Азербайджан, Бангладеш, Барбадос, Беларусь, Бельгия, Бенин, Босния и Герцеговина, Буркина-Фасо, Бразилия, Болгария, Камбоджа, Камерун Объединенная Республика, Чили, Китай, Колумбия, Конго, Коста-Рика, Хорватия, Кипр, Чешская Республика, Демократическая Республика Конго, Дания, Доминиканская Республика, Эквадор, Сальвадор, Египет, Эстония, Финляндия, Франция, Грузия, Германия, Гана, Греция, Гватемала, Гонконг, Венгрия, Индия, Индонезия, Ирландия, Израиль, Италия, Япония, Иордания, Казахстан, Кения, Корея, Кувейт, Кыргызстан, Латвия, Ливан, Литва, Люксембург, Макао, Македония, Мадагаскар, Малайзия, Мальдивы, Мальта, Мексика, Молдова, Монако, Монголия, Черногория, Марокко, Намибия, Нигерия, Непал, Нидерланды, Новая Зеландия, Нигерия, Норвегия, Оман, Панама, Парагвай, Перу, Филиппины, Польша, Португалия, Румыния, Катар, Саудовская Аравия, Сенегал, Сербия Республика, Сингапур, Словакия, Словения, Южная Африка, Испания, Шри-Ланка, Швеция, Швейцария, Таджикистан, Танзания, Тайланд, Тунис, Турция, Туркменистан, Объединенные Арабские Эмираты, Великобритания, Узбекистан, Вьетнам, Замбия.
  • 31652 — Перевод на карту МИР.
  • 22351 — Перевод на Виртуальную карту QIWI.

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа в поле fields зависит от ID провайдера.

Параметры для ID 1963, 21013, 31652, 22351

Название Тип Описание
fields.account String Номер банковской карты получателя (без пробелов)

Параметры для ID 1960, 21012

Название Тип Описание
fields.account String Номер банковской карты получателя (без пробелов)
fields.rem_name String Имя отправителя
fields.rem_name_f String Фамилия отправителя
fields.rec_address String Адрес отправителя (без почтового индекса, в произвольной форме)
fields.rec_city String Город отправителя
fields.rec_country String Страна отправителя
fields.reg_name String Имя получателя
fields.reg_name_f String Фамилия получателя

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

Перевод на карты банков Казахстана

Запрос выполняет денежный перевод на карты Visa или MasterCard, выпущенные банками Казахстана.

Запрос → POST

URL /sinap/api/terms/27292/payments

HEADERS

  • Accept: application/vnd.qiwi.v2+json
  • Content-type: application/json
  • Authorization: Bearer ***
  • sec-fetch-site: same-site
  • sec-fetch-mode: cors
  • sec-fetch-dest: empty

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа передается во вложенном объекте fields :

Название Тип Описание
fields.cardNumber String Номер банковской карты получателя (без пробелов)
fields.account String Значение поля account из ответа на подготовительный запрос
fields.ev_account1 String Значение поля ev_account1 из ответа на подготовительный запрос
fields.transferSum String Всегда 100
fields.accept String Всегда 1
fields.info String Всегда Для продолжения оплаты, подтвердите,
что являетесь держателем указанного банковского счета.

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

Подготовительный запрос для перевода на карту

Запрос → POST

Пример подготовительного запроса

URL /sinap/api/refs/a42ebc79-0584-4271-b8a0-15cb4ea8b340/containers

HEADERS

  • Accept: application/vnd.qiwi.v1+json
  • Content-type: application/json
  • Authorization: Bearer ***
  • sec-fetch-site: same-site
  • sec-fetch-mode: cors
  • sec-fetch-dest: empty

Параметры

Ответ ←

Успешный JSON-ответ содержит блоки «name»: «account» и «name»: «ev_account1» . Сохраните значения из поля value для передачи в платежном запросе.

Банковский перевод

Запрос выполняет денежный перевод на карты/счета физических лиц, открытые в российских банках.

Перевод по номеру карты

Запрос выполняет денежный перевод на карты физических лиц, выпущенные российскими банками.

Запрос → POST

URL /sinap/api/v2/terms/ /payments

ID — идентификатор провайдера. Возможные значения:

  • 464 — Альфа-Банк
  • 804 — АО «ОТП БАНК»
  • 810 — АО «РОССЕЛЬХОЗБАНК»
  • 815 — Русский Стандарт
  • 816 — ВТБ (ПАО)
  • 821 — Промсвязьбанк
  • 870 — ПАО Сбербанк
  • 881 — Ренессанс Кредит
  • 1134 — ПАО «МОСКОВСКИЙ КРЕДИТНЫЙ БАНК»

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа передается во вложенном объекте fields :

Название Тип Описание
fields.account String Номер банковской карты получателя (без пробелов)
fields.exp_date String Срок действия карты, в формате ММГГ (например, 0218 ). Параметр указывается только в случае перевода на карту Альфа-Банка (ID 464) и Промсвязьбанка (ID 821).
fields.account_type String Тип банковского идентификатора. Номер карты соответствует типу 1 . Для некоторых банков применяются собственные значения:
Россельхозбанк — 5
ВТБ — 5
Промсвязьбанк — 7
Сбербанк — 5
МОСКОВСКИЙ КРЕДИТНЫЙ БАНК — 5 .
fields.mfo String БИК соответствующего банка/территориального отделения банка
fields.lname String Фамилия получателя
fields.fname String Имя получателя
fields.mname String Отчество получателя

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

Перевод по номеру счета/договора

Запрос выполняет денежный перевод на счета физических лиц, открытые в российских банках. Возможен обычный перевод или перевод с использованием сервиса срочного перевода (исполнение в течение часа, с 9:00 до 19:30).

Запрос → POST

URL /sinap/api/v2/terms/ /payments

ID — идентификатор провайдера. Возможные значения:

  • 313 — ХоумКредит Банк
  • 464 — Альфа-Банк
  • 821 — Промсвязьбанк
  • 804 — АО «ОТП БАНК»
  • 810 — АО «РОССЕЛЬХОЗБАНК»
  • 816 — ВТБ (ПАО)
  • 819 — АО ЮНИКРЕДИТ БАНК
  • 868 — КИВИ БАНК (АО)
  • 870 — ПАО Сбербанк
  • 1134 — ПАО «МОСКОВСКИЙ КРЕДИТНЫЙ БАНК»
  • 27324 — АО «РАЙФФАЙЗЕНБАНК»

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа передается во вложенном объекте fields :

Название Тип Описание
fields.account String Номер банковского счета получателя
fields.urgent String Признак ускоренного перевода. Значение 0 — не использовать; значение 1 — выполнить перевод через Сервис срочного перевода ЦБ РФ. Внимание! Взимается дополнительная комиссия за ускоренный перевод
fields.mfo String БИК соответствующего банка/территориального отделения банка
fields.account_type String Тип банковского идентификатора. Номер счета ( 2 ) или номер договора ( 3 ). Для некоторых банков применяются собственные значения:
Промсвязьбанк — 9
ВТБ — 5
ХоумКредит Банк — 6 .
fields.lname String Фамилия получателя
fields.fname String Имя получателя
fields.mname String Отчество получателя
fileds.agrnum String Номер договора. Только для переводов в ХоумКредит Банк

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

Оплата других услуг

Оплата услуги по идентификатору пользователя. Запрос применяется для провайдеров, использующих в реквизитах единственный пользовательский идентификатор, без проверки номера аккаунта.

Запрос → POST

URL /sinap/api/v2/terms/ /payments

ID — идентификатор провайдера. Возможные значения:

  • 674 — OnLime.
  • 1239 — Фонд Подари жизнь.
  • Идентификатор другого интернет-провайдера или благотворительного фонда. Воспользуйтесь поиском провайдера по ключевым словам.

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа передается во вложенном объекте fields :

Название Тип Описание
fields.account String Пользовательский идентификатор

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

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

Оплата услуг коммерческих организаций по их банковским реквизитам.

Запрос → POST

URL /sinap/api/v2/terms/1717/payments

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer ***

Параметры

В теле запроса передается JSON-объект. Структура объекта описана в классе Payment. Набор реквизитов платежа передается во вложенном объекте fields :

Название Тип Описание
fields.name String Наименование банка получателя (кавычки экранируются символом \ )
fields.extra_to_bik String БИК банка получателя
fields.to_bik String БИК банка получателя
fields.city String Город местонахождения получателя
fields.info String Константа, Коммерческие организации
fields.is_commercial String Служебная информация, константа 1
fields.to_name String Наименование организации (кавычки экранируются символом \ )
fields.to_inn String ИНН организации
fields.to_kpp String КПП организации
fields.nds String Признак уплаты НДС. Если вы оплачиваете квитанцию и в ней не указан НДС, то строка НДС не облагается . В ином случае, строка В т.ч. НДС .
fields.goal String Назначение платежа
fields.urgent String Признак срочного платежа ( 0 — нет, 1 — да). Срочный платеж выполняется от 10 минут. Возможен по будням с 9:00 до 20:30 по московскому времени. Стоимость услуги — 25 рублей.
fields.account String Номер счета получателя
fields.from_name String Имя плательщика
fields.from_name_p String Отчество плательщика
fields.from_name_f String Фамилия плательщика
fields.requestProtocol String Служебная информация, константа qw1
fields.toServiceId String Служебная информация, константа 1717

Ответ ←

В успешном JSON-ответе возвращается объект со структурой класса PaymentInfo с данными о принятом платеже.

Поиск провайдера по ключевым словам

Используйте этот запрос для поиска идентификатора провайдера. В запросе указывается список ключевых слов (например, название провайдера), разделенных пробелами.

Запрос → GET

URL https://edge.qiwi.com/search/v1/search?query=

query — строка ключевых слов, разделенных пробелами.

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный JSON-ответ содержит идентификаторы найденных провайдеров:

Поле ответа Тип Описание
items Array Список провайдеров
items[].data.id Number Идентификатор провайдера

Поиск сотового оператора по номеру телефона

Используйте этот запрос для поиска идентификатора провайдера сотового оператора. В запросе указывается номер мобильного телефона в формате 11 цифр, начинающийся с цифры 7 . Действует только для мобильных операторов РФ и Казахстана.

Запрос → GET

URL https://edge.qiwi.com/qw-mobile-providers-resolver/v1/providers?phoneNumber=

value — номер мобильного телефона в формате 11 цифр, начинающийся с 7 .

HEADERS

  • Accept: application/json
  • Authorization: Bearer ***

Ответ ←

Успешный JSON-ответ содержит идентификатор найденного провайдера:

Поле ответа Тип Описание
mobileOperatorProviderList Array Информация о провайдере
id Number Идентификатор провайдера
shortName String Название провайдера

Модели данных API

Класс Payment

Класс, описывающий данные для платежа на провайдера в QIWI Кошельке.

Элемент Тип Описание
id String Обязательный параметр. Клиентский ID транзакции (максимум 20 цифр). Должен быть уникальным для каждой транзакции и увеличиваться с каждой последующей транзакцией. Для выполнения этих требований рекомендуется задавать равным 1000*(Standard Unix time в секундах).
sum Object Обязательный параметр. Данные о сумме платежа
sum.amount Number Обязательный параметр. Сумма (можно указать рубли и копейки, разделитель . ). Положительное число, округленное до 2 знаков после десятичной точки. При большем числе знаков значение будет округлено до копеек в меньшую сторону.
sum.currency String Обязательный параметр. Валюта (только 643 , рубли)
paymentMethod Object Обязательный параметр. Объект, определяющий обработку платежа процессингом QIWI Wallet.
paymentMethod.type String Обязательный параметр. Константа, Account
paymentMethod.accountId String Обязательный параметр. Константа, 643
fields Object Обязательный параметр. Реквизиты платежа. Состав полей зависит от провайдера.
comment String Комментарий к платежу. Используется только для переводов на QIWI кошелек и при конвертации

Класс PaymentInfo

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

Класс, описывающий данные платежной транзакции в QIWI Кошельке. Возвращается в ответе на запросы к платежному API.

Элемент Тип Описание
id Number Копия параметра id из платежного запроса
terms String Идентификатор провайдера, на которого был отправлен платеж
fields Object Копия объекта fields из платежного запроса. Номер карты (если был выполнен перевод на карту) возвращается в маскированном виде
sum Object Копия объекта sum из платежного запроса
source String Константа, account_643
comment String Копия параметра comment из платежного запроса (возвращается, если присутствует в запросе)
transaction Object Объект с данными о транзакции в процессинге QIWI Wallet.
transaction.id String ID транзакции в процессинге QIWI Wallet
transaction.state Object Объект содержит текущее состояние транзакции в процессинге QIWI Wallet.
state.code String Текущий статус транзакции, только значение Accepted (платеж принят к проведению). Финальный результат транзакции можно узнать в истории платежей.

Счета

Счет в QIWI Wallet API — универсальная заявка на платеж или перевод с QIWI кошелька.

В API поддерживаются операции выставления, оплаты и отмены счетов, а также запрос списка неоплаченных счетов вашего QIWI кошелька.

Выставление счета на QIWI кошелек

Для выставления счета на QIWI Кошелек используется протокол API P2P-счетов. Для авторизации используется токен P2P.

Выпуск токена P2P

Вы можете получить токен P2P на p2p.qiwi.com в личном кабинете, или использовать представленный ниже запрос. Этим запросом можно также настроить адрес уведомлений об оплате счетов.

Запрос возвращает в ответе пару токенов P2P:

  • поле PublicKey — токен для выставления счета при вызове платежной формы;
  • поле SecretKey — токен для выставления счета через API.

Запрос → POST

URL /widgets-api/api/p2p/protected/keys/create

HEADERS

  • Content-Type: application/json
  • Accept: application/json
  • Authorization: Bearer Токен QIWI Wallet API

Параметры

Для авторизации используется токен API QIWI Кошелька.

Параметры передаются в теле запроса как JSON:

Название Тип Описание
keysPairName String Название пары токенов P2P (произвольная строка)
serverNotificationsUrl String URL для уведомлений об оплате счетов (необязательный параметр)

Список счетов

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

Запрос → GET

URL /checkout-api/api/bill/search?statuses=READY_FOR_PAY&parameter=value

HEADERS

  • Accept: application/json
  • Authorization: Bearer SecretKey

Параметры

Параметры передаются в строке URL запроса:

Название Тип Описание
statuses String Статус неоплаченного счета. Обязательный параметр. Только строка READY_FOR_PAY
rows Integer Максимальное число счетов в ответе, для разбивки списка на страницы. Целое число от 1 до 50. По умолчанию возвращается не более 50 счетов.
min_creation_datetime Long Нижняя временная граница для поиска счетов, Unix-time
max_creation_datetime Long Верхняя временная граница для поиска счетов, Unix-time
next_id Number Начальный идентификатор счета для поиска. Будет возвращен список счетов с идентификаторами, равными или меньше этого значения. Используется для продолжения списка, разбитого на страницы.
next_creation_datetime Long Начальное время для поиска (возвращаются только счета, выставленные ранее этого времени), Unix-time. Используется для продолжения списка, разбитого на страницы.

Ответ ←

Успешный JSON-ответ содержит список неоплаченных счетов вашего кошелька, соответствующих заданному фильтру:

Поле ответа Тип Описание
bills Array[Object] Список счетов.
Длина списка равна или меньше параметру rows из запроса, или максимально 50, если параметр не указан
bills[].id Integer Идентификатор счета в QIWI Кошельке
bills[].external_id String Идентификатор счета у мерчанта
bills[].creation_datetime Long Дата/время создания счета, Unix-time
bills[].expiration_datetime Long Дата/время окончания срока действия счета, Unix-time
bills[].sum Object Сведения о сумме счета
sum.currency Integer Валюта суммы счета
sum.amount Number Сумма счета
bills[].status String Константа, READY_FOR_PAY
bills[].type String Константа, MERCHANT
bills[].repetitive Boolean Служебное поле
bills[].provider Object Информация о мерчанте
provider.id Integer Идентификатор мерчанта в QIWI
provider.short_name String Сокращенное название мерчанта
provider.long_name String Полное название мерчанта
provider.logo_url String Ссылка на логотип мерчанта
bills[].comment String Комментарий к счету
bills[].pay_url String Ссылка для оплаты счета на Платежной форме QIWI

Оплата счета

Метод выполняет безусловную оплату счета без SMS-подтверждения.

Запрос → POST

URL /checkout-api/invoice/pay/wallet

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer SecretKey

Параметры

Обязательные параметры в теле запроса:

Название Тип Описание
invoice_uid String ID счета в QIWI; берется из значения bills[].id данных о счете
currency String Валюта суммы счета; берется из значения bills[].sum.currency данных о счете

Ответ ←

Успешный JSON-ответ содержит статус оплаченного счета:

Поле ответа Тип Описание
invoice_status String Строка кода статуса оплаты счета, PAID_STATUS . Любой другой статус означает неуспех платежной транзакции.
is_sms_confirm String Признак подтверждения по SMS

Отмена неоплаченного счета

Метод отклоняет неоплаченный счет, что делает его недоступным для оплаты.

Запрос → POST

URL /checkout-api/api/bill/reject

HEADERS

  • Accept: application/json
  • Content-type: application/json
  • Authorization: Bearer SecretKey

Параметры

Обязательный параметр передается в теле запроса в формате JSON:

Название Тип Описание
id Integer ID счета для отмены; берется из значения bills[].id данных о счете

Ответ ←

Успешный ответ содержит HTTP-код 200 .

Уведомления (вебхуки)

Предложить правки на GitHub

Хуки или уведомления с данными о событии (платеже/пополнении) отправляются на ваш сервер. В настоящее время поддерживаются только вебхуки (webhook) — сообщения, адресованные веб-сервисам. Для приема вебхуков вам необходимо настроить свой сервер на прием и обработку POST-запросов (Формат запросов).

От вашего сервера успешный ответ 200 OK на входящий запрос должен поступить в течение 1-2 сек. Не дождавшись ответа, сервис КИВИ отправляет еще одно уведомление через 10 минут, потом еще одно через 1 час.

Пулы IP-адресов, с которых сервисы QIWI отправляют webhook:

  • 79.142.16.0/20
  • 195.189.100.0/22
  • 91.232.230.0/23
  • 91.213.51.0/24

Если ваш сервер обработки вебхуков работает за брандмауэром, необходимо добавить эти IP-адреса в список разрешенных адресов входящих TCP-пакетов.

Быстрый старт

  1. Реализуйте веб-сервис обработки запросов. Особое внимание обратите на реализацию проверки подписи. . Внимание! Длина оригинального (не URL-encoded) адреса сервиса обработчика не должна превышать 100 символов.
  2. Запросите ключ проверки подписи.
  3. Протестируйте прием запросов вашим обработчиком с помощью тестового запроса. На зарегистрированный в п.2 сервис придет пустое уведомление.

Чтобы сменить адрес сервера для обработки вебхуков:

    . . Внимание! Длина оригинального (не URL-encoded) адреса сервиса обработчика не должна превышать 100 символов.
  1. Запросите ключ проверки подписи для нового обработчика.
  2. Протестируйте прием запросов новым обработчиком с помощью тестового запроса. На зарегистрированный в п.2 сервис придет пустое уведомление.

Обработка вебхука

Исходящие платежи — платеж в проведении

Исходящие платежи — успешный платеж

Исходящие платежи — неуспешный платеж

Входящие платежи — успешный платеж

Каждый вебхук посылает уведомления — входящие POST-запросы с JSON-объектом, содержащим данные об одном платеже. Схема объекта:

Поле Тип Описание
hookId String (UUID) Уникальный id хука
messageId String (UUID) Уникальный id уведомления
payment Object Данные платежа
payment.txnId String ID транзакции в процессинге QIWI Wallet
payment.account String Для платежей — номер счета получателя. Для пополнений — номер отправителя, терминала или название агента пополнения кошелька
payment.signFields String Список полей объекта payment (через , ), которые хешируются алгоритмом HmacSHA256 для проверки уведомления (см. параметр hash )
payment.personId Integer Номер кошелька
payment.date String DateTime Дата/время платежа, в московской временной зоне. Формат даты ГГГГ-ММ-ДД’T’чч:мм:сс+03:00
payment.errorCode String Код ошибки платежа
payment.type String Тип платежа. Возможные значения:
IN — пополнение,
OUT — платеж
payment.status String Статус платежа. Возможные значения:
WAITING — платеж проводится,
SUCCESS — успешный платеж,
ERROR — ошибка платежа.
payment.provider Integer ID провайдера QIWI Wallet
payment.comment String Комментарий к транзакции
payment.sum Object Данные о сумме платежа или пополнения. Параметры:
sum.amount Number(Decimal) Сумма
sum.currency Number(3) Код валюты
payment.commission Object Данные о комиссии для платежа или пополнения. Параметры:
commission.amount Number(Decimal) Сумма
commission.currency Number(3) Код валюты
payment.total Object Данные об итоговой сумме платежа или пополнения. Параметры:
total.amount Number(Decimal) Сумма
total.currency Number(3) Код валюты
test Boolean Признак тестового сообщения
version String Версия API
hash String Хэш цифровой подписи уведомления

Как проверить подпись уведомления

Реализуйте шаги проверки подписи:

  1. Возьмите значения полей из списка в payment.signFields уведомления (в том же порядке) в формате String.
  2. Объедините значения в строку с разделителями | .
  3. Зашифруйте строку п.2 алгоритмом SHA-256 с ключом проверки подписи.
  4. Сравните полученное значение со значением поля hash уведомления.

Пример расшифровки подписи (см. также функцию PHP на вкладке справа):

  1. По запросу пользователь получает ключ вебхука, закодированный в Base64: JcyVhjHCvHQwufz+IHXolyqHgEc5MoayBfParl6Guoc=
  2. Приходит уведомление <"messageId":"7814c49d-2d29-4b14-b2dc-36b377c76156","hookId":"5e2027d1-f5f3-4ad1-b409-058b8b8a8c22", "payment":<"txnId":"13353941550","date":"2018-06-27T13:39:00+03:00","type":"IN","status":"SUCCESS","errorCode":"0","personId":78000008000,"account":"+79161112233","comment":"","provider":7, "sum":<"amount":1,"currency":643>, «commission»:<"amount":0,"currency":643>, «total»:<"amount":1,"currency":643>, «signFields»:»sum.currency,sum.amount,type,account,txnId»>, «hash»:»76687ffe5c516c793faa46fafba0994e7ca7a6d735966e0e0c0b65eaa43bdca0″,»version»:»1.0.0″,»test»:false>
  3. Склеиваются требуемые поля платежных данных (указаны в payment.signFields — sum.currency,sum.amount,type,account,txnId ): 643|1|IN|+79161112233|13353941550
  4. Поля шифруются методом SHA-256 с Base64-раскодированным ключом из п.1. Результат f05c4e7bdf00620205d47696d77f924bfd3ba4d02b0398ac8a626e737dc27243 совпадает с параметром hash из запроса.

Регистрация обработчика вебхуков

Запрос → PUT

URL /payment-notifier/v1/hooks?parameter=value

HEADERS

  • Authorization: Bearer ***
  • Accept: application/json

Параметры

Ответ ←

Ответ в формате JSON.

Название Тип Описание
hookId String UUID созданного вебхука
hookParameters Object Набор параметров вебхука (только URL)
hookType String Тип вебхука (только WEB)
txnType String Тип транзакций, по которым отсылаются уведомления ( IN — входящие, OUT — исходящие, BOTH — все)

Удаление обработчика вебхуков

Запрос → DELETE

URL /payment-notifier/v1/hooks/hookId

  • hookId — UUID вебхука

HEADERS

  • Authorization: Bearer ***
  • Accept: application/json

Ответ ←

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

Название Тип Описание
response String Описание результата операции

Получение секретного ключа

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

Запрос → GET

URL /payment-notifier/v1/hooks/hookId/key

  • hookId — UUID вебхука

HEADERS

  • Authorization: Bearer ***
  • Accept: application/json

Ответ ←

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

Название Тип Описание
key String Base64-закодированный ключ

Изменение секретного ключа

Для смены ключа шифрования уведомлений используйте этот запрос.

Запрос → POST

URL /payment-notifier/v1/hooks/hookId/newkey

  • hookId — UUID вебхука

HEADERS

  • Authorization: Bearer ***
  • Accept: application/json

Ответ ←

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

Название Тип Описание
key String Base64-закодированный новый ключ

Данные об обработчике уведомлений

Список действующих (активных) обработчиков уведомлений, связанных с вашим кошельком, можно получить данным запросом.

Так как сейчас используется только один тип хука — вебхук, то в ответе содержится только один объект данных.

Запрос → GET

URL /payment-notifier/v1/hooks/active

HEADERS

  • Authorization: Bearer ***
  • Accept: application/json

Ответ ←

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

Название Тип Описание
hookId String UUID действующего обработчика вебхуков
hookParameters Object Набор параметров обработчика (только URL)
hookType String Тип вебхука (только WEB)
txnType String Тип транзакций, по которым отсылаются уведомления ( IN — входящие, OUT — исходящие, BOTH — все)

Отправка тестового уведомления

Для проверки вашего обработчика вебхуков используйте этот запрос. Тестовое уведомление отправляется на адрес, указанный в параметрах действующего обработчика.

Запрос → GET

URL /payment-notifier/v1/hooks/test

HEADERS

  • Authorization: Bearer ***
  • Accept: application/json

Ответ ←

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

Название Тип Описание
response String Результат запроса

Коды ошибок

Этот раздел на GitHub

В случае ошибки API возвращается HTTP-код ошибки.

HTTP Код Секция API Описание
400 Все Ошибка синтаксиса запроса (неправильный формат данных)
401 Все Неверный токен или истек срок действия токена API
403 Все Нет прав на этот запрос (недостаточно разрешений у токена API)
404 История платежей, Информация о транзакции, Отправка квитанции Не найдена транзакция или отсутствуют платежи с указанными признаками
404 Балансы, Профиль пользователя, Идентификация пользователя Не найден кошелек
404 Веб-хуки Не найден активный веб-хук
404 Оплата/Отмена счета Не найден счет
422 Регистрация веб-хука Неправильно указаны домен/подсеть/хост веб-хука (в параметре param для URL веб-хука), неправильно указаны тип хука или тип транзакции, попытка создать хук при наличии уже созданного
423 Все Слишком много запросов, сервис временно недоступен
500 Все Внутренняя ошибка сервиса (превышена длина URL веб-хука, проблемы с инфраструктурой, недоступность каких-либо ресурсов и т.д.)

Следующие ошибки возвращаются на запросы истории платежей и информации о транзакции в параметре errorCode ответа:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *