- Перенаправление на форму QIWI
- Пример ссылки с successUrl
- Пример обработчика событий iframe
- Методы библиотеки
- Пример вызова метода выставления счета
- Пример вызова метода открытия существующего счета
- Банковская карта
- Создание платежа
- Статус счета
- Формат уведомления PAYMENT
- Аутентификация по цифровой подписи
- Как создать ключи
- Завершение аутентификации при проверке карты
- Формат взаимодействия
- Формат уведомления PAYOUT
- Уведомления по сплитованным операциям
- Коды ошибок
- Статус возвратов
- Завершение выплаты
- Термины и сокращения
- Статусы операций
- Ответы API
- Проверка карты покупателя
- Получение списка платежей по счету
- Передача чека (54-ФЗ)
- Выставление счета и получение ссылки на оплату через API
- Двухшаговый платеж
- Одношаговый платеж
- Платежный токен
- Формат уведомления CHECK_CARD
Перенаправление на форму QIWI
Пример ответа с payUrl
Чтобы покупатель смог оплатить выставленный счет, перенаправьте его на Платежную форму по ссылке из поля payUrl ответа на запрос выставления счета.
По умолчанию, на Платежной форме QIWI 3-D Secure покупателя обязателен.
Пример ссылки с successUrl
К ссылке можно добавить параметры:
| Параметр | Описание | Тип |
|---|---|---|
| successUrl | URL для возврата на сайт мерчанта в случае успешной оплаты. | URL-закодированная строка |
| lang | Язык платежной формы. Язык по умолчанию — русский (ru). | ru, en |
| paymentMethod | Платежный метод, предлагаемый покупателю по умолчанию на платежной форме. | CARD, SBP, QIWI_WALLET |
Пример обработчика событий iframe
// Форма загружена
// Попытка платежа
// Платеж прошел успешно
// Платеж не прошел
Вы можете использовать метод postMessage для отслеживания состояния формы.
Методы библиотеки
Методы библиотеки позволяют открыть Платежную форму оплаты счета как всплывающее окно (popup) поверх вашего сайта. В библиотеке доступно два метода:
Для установки и подключения библиотеки добавьте скрипт в код сайта:
Пример вызова метода выставления счета
Чтобы создать счет и открыть форму оплаты, вызовите метод QiwiCheckout.createInvoice. Параметры метода:
| Параметр | Описание | Формат |
|---|---|---|
| publicKey | Обязательный параметр. Ключ идентификации мерчанта, уникальный для каждого siteId. | String |
| amount | Обязательный параметр. Сумма, на которую выставляется счет, округленная в меньшую сторону до 2 десятичных знаков | Number(6.2) |
| phone | Номер телефона пользователя, на который выставляется счет (в международном формате) | String |
| E-mail пользователя, куда будет отправлена ссылка для оплаты счета | String | |
| account | Идентификатор пользователя в системе мерчанта | String |
| customFields | Дополнительные данные счета. Список полей см. в описании одноименного параметра в запросе API выставления счета | Object |
| lifetime | Дата, до которой счет будет доступен для оплаты. Если счет не будет оплачен до этой даты, он получит финальный статус и последующая оплата станет невозможна. | ГГГГ-ММ-ДДTччмм |
Пример вызова метода открытия существующего счета
Этот метод используется, когда ссылка на Платежную форму оплаты счета получена при выставлении счета через API.
Чтобы открыть форму оплаты выставленного счета, вызовите метод QiwiCheckout.openInvoice. Параметры метода:
| Параметр | Описание |
|---|---|
| payUrl | Обязательный параметр. URL-ссылка на Платежную форму |
Банковская карта
Протокол приема платежей поддерживает как двухшаговый платеж с холдированием средств на карте покупателя, так и одношаговый платеж без авторизации покупателя.
Создание платежа
Пример платежа с холдированием (двухшаговый платеж)
Пример платежа с немедленной оплатой (одношаговый платеж)
Чтобы инициировать платеж с предварительным холдированием средств на карте (двухшаговый платеж), передайте в запросе API Платеж:
Если карта, указанная клиентом, была ранее сохранена (токенизирована) на вашей стороне,
должны быть добавлены дополнительные параметры в объекте paymentMethod.
В двухшаговом платеже возмещение формируется только после подтверждения платежа.
### Ожидание аутентификации покупателя (3-D Secure)
Пример ответа с требованием аутентификации покупателя
Перенаправление для аутентификации 3-D Secure
Завершение аутентификации покупателя
Если требуется 3-D Secure аутентификация покупателя, в ответе на запрос платежа добавляется объект requirements.threeDS с полями.
Для дополнительной проверки покупателя у эмитента выполните POST-запрос на URL сервера аутентификации 3-D Secure с параметрами.
Чтобы сохранять обратную совместимость, использование протокола 3-D Secure 1.0 или 3-D Secure 2.0 не влияет на вашу интеграцию с API.
Далее информация о покупателе передаётся в платежную систему карты. Банк-эмитент либо предоставляет разрешение на списание средств без аутентификации (frictionless flow),
либо принимает решение о необходимости аутентификации с помощью одноразового пароля (challenge flow).
После прохождения проверки покупатель перенаправляется по адресу TermUrl с зашифрованным результатом проверки в параметре PaRes.
Чтобы завершить аутентификацию покупателя, передайте в запросе API Завершение аутентификации клиента.
### Подтверждение платежа
Это действие требуется только для двухшагового платежа с холдированием.
Чтобы подтвердить платеж:
## Отмена возврата
Пример отмены возврата по платежу
## Справочник кодов детализации ошибки
Коды детализации ошибки и рекомендованных действий, полученные от платежной системы, возвращаются в поле status.psErrorCode.
| Код | Ошибка API | Детализация причины ошибки и рекомендация по ее устранению |
| --- | ---------- | ----------------------------------------------------------- |
| 03 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция в данную категорию ТСП запрещена эмитентом |
| 04 | REATTEMPT_NOT_PERMITTED_BY_PS | Карта заблокирована |
| 05 | ACQUIRING_NOT_PERMITTED | Отклонение запроса по иным причинам |
| 12 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция данного типа запрещена Правилами и Стандартами платежной системой |
| 13 | ACQUIRING_NOT_PERMITTED | Некорректная сумма. Повторите попытку совершения операции с другой суммой |
| 14 | ACQUIRING_NOT_PERMITTED | Некорректный номер карты. Введите корректный номер карты или используйте другую карту |
| 15 | REATTEMPT_NOT_PERMITTED_BY_PS | Эмитента с данной картой не существует |
| 30 | ACQUIRING_NOT_PERMITTED | Операция отклонена, обратитесь в Qiwi за дополнительной информацией |
| 33 | REATTEMPT_NOT_PERMITTED_BY_PS | Данная карта недоступна для использования |
| 41 | REATTEMPT_NOT_PERMITTED_BY_PS | Данная карта недоступна для использования |
| 43 | REATTEMPT_NOT_PERMITTED_BY_PS | Данная карта недоступна для использования |
| 51 | ACQUIRING_INSUFFICIENT_FUNDS | Клиенту может быть рекомендовано повторить попытку совершения операции после пополнения счета |### Ошибки обработки платежа
- Срок действия карты отсутствует или передан неверно
- Операция данного типа недоступна для карты
- Операция данного типа недоступна для эквайера
- Клиенту может быть рекомендовано повторить попытку совершения операции в другой день после переустановки лимита по общей сумме операций данного типа
- Операция недоступна из-за ограничений на карте или счете держателя карты
- Операция отклонена, обратитесь в Qiwi за дополнительной информацией
- Клиенту может быть рекомендовано повторить попытку совершения операции в другой день после переустановки лимита по общему количеству операций данного типа
- Отклонение запроса по причине неверного ввода PIN-кода ранее
- Отклонение отмены запроса из-за отсутствия оригинального запроса
- Отклонение запроса из-за попытки использования закрытой карты
- Отклонение запроса по причине неверного ввода PIN-кода ранее
- Отклонение запроса из-за ошибки криптографии, может возникнуть из-за неправильного CVV2/CVC2
- Клиенту может быть рекомендовано повторить попытку совершения операции в другое время после восстановления работоспособности эмитента
- Отклонение платежной системой из-за невозможности проведения операции
- Отклонение запроса по причине нарушения требований законодательства
- Отклонение задублированного запроса
- Клиенту может быть рекомендовано повторить попытку совершения операции в другое время после восстановления работоспособности эмитента или платформы
- Отклонение запроса в связи с отменой длительного поручения держателя карты
- Отклонение запроса из-за некорректной даты рождения держателя карты
- Отклонение запроса по причине смерти держателя карты
### Правила работы с детализированной информацией
Существуют две группы кодов ошибок.
По правилам НСПК действуют следующие условия совершения повторов транзакций с non-3DS авторизацией по картам платежной системы МИР.
Ограничения применяются в отношении конечного получателя, в случае если нами были получены соответствующие коды ответа.
## Статус подтверждения
Пример запроса статуса подтверждения
## Способы подключения
Протокол приема платежей поддерживает несколько вариантов взаимодействия.
## Настройка Платежной формы
Внешний вид Платежной формы можно настроить в соответствии с вашим стилем, включая логотип, фон и цвет кнопок. Для этого обратитесь в Службу поддержки и предоставьте следующую информацию.Необязательные данные для настройки:
Пример передачи параметра стиля при выставлении счета через API:
Чтобы применить ваш стиль на Платежной форме:
Название псевдонима стиля регистрозависимое.
Пример применения настройки к Платежной форме:

## Получение QR-кода СБП
Пример получения QR-кода СБП (метод POST) Flower for my girlfriend
### Метод PUT
Пример получения QR-кода СБП (метод PUT) Flower for my girlfriend
## Реестры
Реестр операций отправляется после 14:00 МСК по рабочим дням, содержит информацию только об успешных платежах, обработанных банком. Реестр полностью соответствует Акту.
Реестр отправляется на email, указанный при регистрации в сервисе, во вложенном в письме zip-архиве.
## Удаление платежного токена
Удаление платежного токена
Чтобы прекратить действие платежного токена, отправьте запрос DELETE:
В JSON-теле запроса укажите параметры:
Успешный ответ означает, что платежный токен для указанного покупателя больше не действует.
Этот метод действует как для платежного токена карты, так и для платежного токена QIWI Кошелька.
## Создание счёта
Пример создания счета
## Интеграция с Платежной формой QIWI
Чтобы отправить платеж со сплитованием, передайте в запросе API Создание счёта массив splits c данными поставщиков.
Пример выставления счёта с оплатой сплитованием
Пример ответа при выставлении счета с оплатой сплитованием
Формат массива splits в запросе:
| Название | Тип | Описание |
|---------|-----|---------|
| splits | Array | Массив данных о поставщиках |
| type | String | Тип передаваемых данных. Доступные значения: MERCHANT_DETAILS (данные поставщика) |
| siteUid | String | Зарегистрированный ID поставщика |
| splitAmount | Object | Возмещение поставщику |
| value | Number | Сумма возмещения, округленная в меньшую сторону до 2 десятичных знаков |
| currency | String(3) | Буквенный код валюты возмещения по ISO. Доступен только RUB |
| orderId | String | Номер заказа (необязательный) |
В объекте splits ответа содержатся данные о сплитованных платежах:
| Поле ответа | Тип | Описание |
|------------|-----|---------|
| splits | Array | Массив с данными о сплитованных платежах |
| type | String | Тип передаваемых данных. Всегда возвращается строка MERCHANT_DETAILS |
| siteUid | String | ID поставщика |
| splitAmount | Object | Данные о возмещении поставщику |
| value | String | Сумма возмещения |
## Частота отправки уведомлений
Сервис отправки уведомлений распределяет неуспешные уведомления по очередям:
Время повторной отправки может быть увеличено.
## Типы операций
В Протоколе доступны следующие операции:
## Статус возврата
Пример запроса статуса возврата
## Выплата
some comment for payout operation
Incorrect payout amount
## Акты
Акт по принятым платежам формируется ежемесячно во второй рабочий день месяца.
Акт сначала отправляется на email, указанный при регистрации в сервисе. После подтверждения со стороны партнера, уполномоченное лицо КИВИ Банка подписывает Акт в системе документооборота электронной подписью. Подписанный Акт отправляется на юридический адрес партнера.
## Платёж"Severnoe chertanovo microdistrict 1a 1""Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion"
"Exchange token error. Token disabled, please create new one"
Статус счета
Пример запроса статуса счета
"Детская футбольная школа «Тигры»""Детская футбольная школа «Тигры»""Детская футбольная школа «Тигры»"
Формат уведомления PAYMENT
Пример тела уведомления PAYMENT
Пример тела уведомления PAYMENT по сплитованным платежам
Поле Описание Тип В каких случаях используется
payment Описание платежа Object Всегда
payment.type Тип операции — только PAYMENT String(200) Всегда
payment.paymentId Идентификатор платежа в системе ТСП String(200) Всегда
payment.createdDateTime Дата создания операции URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ Всегда
payment.billId Идентификатор счета, соответствующего операции String(200) Всегда
payment.qrCodeUid Идентификатор операции выпуска QR-кода в системе ТСП String Если операция была выполнена через СБП
payment.amount Информация о сумме операции Object Всегда
payment.amount.value Сумма операции, округленная до двух десятичных знаков в меньшую сторону Number(6.2) Всегда
payment.amount.currency Идентификатор валюты операции (Alpha-3 ISO 4217 код) String(3) Всегда
payment.status Информация о статусе операции Object Всегда
payment.status.value Строковое значение статуса String Всегда
payment.status.changedDateTime Дата обновления статуса URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ Всегда
payment.status.reasonCode Код причины отклонения String(200) В случае отклонения операции
payment.status.reasonMessage Описание причины отклонения String(200) В случае отклонения операции
payment.status.errorCode Код ошибки Number В случае ошибки
payment.status.psErrorCode Оригинальный код ошибки, полученный от платежной системы String В случае отклонения операции
payment.paymentMethod Информация о средстве платежа Object Всегда
payment.paymentMethod.type Тип метода оплаты: CARD — банковская карта, TOKEN — платежный токен, SBP — Система Быстрых Платежей, QIWI_WALLET — баланс QIWI Кошелька String Всегда
payment.paymentMethod.paymentToken Платежный токен карты String При оплате платежным токеном
payment.paymentMethod.maskedPan Маскированный PAN карты String При оплате платежным токеном или картой
payment.paymentMethod.rrn RRN платежа (по ISO 8583) Number При оплате платежным токеном или картой
payment.paymentMethod.authCode Auth-code платежа Number При оплате платежным токеном или картой
payment.paymentMethod.phone Телефон, с которого выполнялась оплата через СБП, или номер QIWI Кошелька String При оплате через СБП или с баланса QIWI Кошелька
payment.paymentCardInfo Информация о карте Object Всегда
payment.paymentCardInfo.issuingCountry Код страны эмитента String(3) Всегда
payment.paymentCardInfo.issuingBank Банк-эмитент String Всегда
payment.paymentCardInfo.paymentSystem Тип платежной системы String Всегда
payment.paymentCardInfo.fundingSource Тип карты String Всегда
payment.paymentCardInfo.paymentSystemProduct Категория карты String Всегда
payment.merchantSiteUid Строковый идентификатор сайта ТСП в QIWI Кассе String Всегда
payment.customer Информация о покупателе Object Всегда
payment.customer.phone Номер телефона покупателя String Всегда
payment.customer.email E-mail покупателя String Всегда
payment.customer.account Идентификатор покупателя в системе ТСП String Всегда
payment.customer.ip IP адрес покупателя String Всегда
payment.customer.country Страна адреса покупателя String Всегда
payment.customer.bankAccountNumber Номер счета плательщика String Только для платежей через СБП
payment.customer.bic БИК банка, выпустившего карту String Только для платежей через СБП
payment.customer.lastName Фамилия покупателя String Только для платежей через СБП
payment.customer.firstName Имя покупателя String Только для платежей через СБП
payment.customer.middleName Отчество покупателя String Только для платежей через СБП
payment.customer.simpleAddress Адрес покупателя String Только для платежей через СБП
payment.customer.inn ИНН покупателя String Только для платежей через СБП
payment.customer.bankMemberId Идентификатор банка покупателя String Только для платежей через СБП
payment.customFields Поля с произвольной информацией, дополняющей данные по операции Object Всегда
payment.customFields.cf1 Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.customFields.cf2 Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.customFields.cf3 Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.customFields.cf4 Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.customFields.cf5 Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.flags Дополнительные команды, переданные в API Массив. Возможные элементы: SALE, REVERSAL Всегда
payment.tokenData Объект с информацией о выпущенном платежном токене Object Если в платеже был запрошен выпуск платежного токена
payment.tokenData.paymentToken Строка платежного токена String Если в платеже был запрошен выпуск платежного токена
payment.tokenData.expiredDate Дата окончания срока действия платежного токена. Формат даты соответствует стандарту ISO-8601:ГГГГ-ММ-ДДTчч:мм:сс±чч:мм String Если в платеже был запрошен выпуск платежного токена
payment.chequeData Описание фискального чека ChequeData Если в операции были отправлены данные для формирования фискального чека
payment.paymentSplits Описание сплитованных платежей Array(Objects) Для сплитованных платежей
payment.paymentSplits.type Тип передаваемых данных. Всегда строка MERCHANT_DETAILS String Для сплитованных платежей
payment.paymentSplits.siteUid ID поставщика String Для сплитованных платежей
payment.paymentSplits.splitAmount Информация о возмещении поставщику Object Для сплитованных платежей
payment.paymentSplits.splitAmount.value Сумма возмещения Number Для сплитованных платежей
payment.paymentSplits.splitAmount.currency Буквенный код валюты возмещения по ISO String(3) Для сплитованных платежей
payment.paymentSplits.splitCommissions Информация о комиссии Object Для сплитованных платежей
payment.paymentSplits.splitCommissions.merchantCms Информация о комиссии с поставщика Object Для сплитованных платежей
payment.paymentSplits.splitCommissions.merchantCms.value Сумма комиссии Number Для сплитованных платежей
payment.paymentSplits.splitCommissions.merchantCms.currency Буквенный код валюты комиссии по ISO String(3) Для сплитованных платежей
payment.paymentSplits.orderId Номер заказа String Для сплитованных платежей
payment.settlementAmount Сведения о сумме расчёта с мерчантом Object Если валюта платежа и расчёта с мерчантом различаются
payment.settlementAmount.value Сумма расчёта с мерчантом Number(6.2) Если валюта платежа и расчёта с мерчантом различаются
payment.settlementAmount.currency Идентификатор валюты расчёта с мерчантом (Alpha-3 ISO 4217 код) String(3) Если валюта платежа и расчёта с мерчантом различаются
type Тип уведомления — только PAYMENT String Всегда
version Версия уведомлений String Всегда
Аутентификация по цифровой подписи
Аутентификация по цифровой подписи применяется только для создания операций типа "Выплата" через API.
Для аутентификации по цифровой подписи мерчант должен создать пару RSA-ключей, например, с помощью утилиты OpenSSL. Закрытый ключ должен быть размером 2048 бит в PEM-формате. Мерчант должен передать в QIWI закодированный в Base64 открытый ключ, соответствующий закрытому ключу.
Как создать ключи
Алгоритм с примерами на языке Bash:
Завершение аутентификации при проверке карты
Пример завершения аутентификации при проверке карты
Формат взаимодействия
API Протокола приема платежей основано на принципах REST-архитектуры. Данные и методы считаются ресурсами, которые доступны через вызов универсальных идентификаторов ресурсов (URI).
Методы API вызываются через HTTP-запросы. Постоянная часть URL-адреса для вызова методов API:
Параметры методов помещаются в JSON-тело запроса. В GET-запросах параметры помещаются в query запроса.
Необходимо указывать Accept: application/json в заголовках запроса — API всегда возвращает ответ в формате JSON.
Методы API обеспечивают логическую идемпотентность, т. е. многократный вызов метода эквивалентен однократному. Однако ответ сервера может меняться (например, состояние счёта может измениться между запросами).
Формат уведомления PAYOUT
Пример тела уведомления PAYOUT
payout Описание выплаты Object Всегда
payout.payoutId Идентификатор выплаты в системе ТСП String(200) Всегда
payout.createdDateTime Дата создания операции URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ Всегда
payout.amount Информация о сумме операции Object Всегда
payout.amount.value Сумма операции, округленная до двух десятичных знаков в меньшую сторону Number(6.2) Всегда
payout.amount.currency Идентификатор валюты операции (Alpha-3 ISO 4217 код) String(3) Всегда
payout.status Информация о статусе операции Object Всегда
payout.status.value Строковое значение статуса String Всегда
payout.status.changedDateTime Дата обновления статуса URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ Всегда
payout.status.reasonCode Код причины отклонения String(200) В случае отклонения операции
payout.status.reasonMessage Описание причины отклонения String(200) В случае отклонения операции
payout.status.errorCode Код ошибки Number В случае ошибки
payout.receiverData Информация о получателе PayoutReceiverDataCallback Всегда
payout.merchantSiteUid Строковый идентификатор сайта ТСП в QIWI Кассе String Всегда
payout.flags Дополнительные флаги операции Array(Strings). Возможные элементы: TEST При необходимости
payout.payoutSplits Описание сплитованных выплат Array(Objects) Всегда
payout.payoutSplits.type Тип передаваемых данных. Всегда строка MERCHANT_DETAILS String Всегда
payout.payoutSplits.siteUid ID поставщика String Всегда
payout.payoutSplits.splitAmount Информация о списании с поставщика Object Всегда
payout.payoutSplits.splitAmount.value Сумма списания Number Всегда
payout.payoutSplits.splitAmount.currency Буквенный код валюты списания по ISO String(3) Всегда
payout.payoutSplits.splitCommissions Информация о комиссии Object При необходимости
payout.payoutSplits.splitCommissions.merchantCms Информация о комиссии с поставщика Object При необходимости
payout.payoutSplits.splitCommissions.merchantCms.value Сумма комиссии Number При необходимости
payout.payoutSplits.splitCommissions.merchantCms.currency Буквенный код валюты комиссии по ISO String(3) При необходимости
payout.payoutSplits.orderId Номер заказа String При необходимости
type Тип уведомления — только PAYOUT String Всегда
Уведомления по сплитованным операциям
Уведомления по сплитованным платежам и по возвратам сплитованных платежей формируются аналогично описанным выше ответам на запросы API:
Коды ошибок
Протокол приема платежей использует для запросов API следующие HTTP-коды ошибок:
Код ошибки Описание
400 Bad Request — Ваш запрос некорректен (ошибка в данных или в формате запроса).
401 Unauthorized — Неправильный ключ доступа к API.
403 Forbidden — Доступ к API запрещен.
404 Not Found — Указанный ресурс не найден.
405 Method Not Allowed — Для создания платежа использовался неправильный метод.
406 Not Acceptable — Формат данных отличается от JSON.
410 Gone — Запрашиваемый ресурс удален.
429 Too Many Requests — Слишком много запросов.
500 Internal Server Error — Внутренняя ошибка сервиса. Если тело ответа пустое, повторите запрос с теми же параметрами. Если тело ответа не пустое, выполните запрос статуса платежа или статуса счета.
502 Bad Gateway — Нет связи с сервисом
503 Service Unavailable — Сервер временно недоступен по техническим причинам, попробуйте позже.
Статус возвратов
Пример запроса статуса всех возвратов по платежу
Завершение выплаты
Пример завершения выплаты
Термины и сокращения
Ключ доступа к API — Символьная строка для авторизации мерчанта в API согласно стандарту OAuth 2.0 RFC 6749 RFC 6750.
Платежный токен — Символьная строка, созданная по данным карты для безакцептных платежей.
API: Application Programming Interface — набор готовых методов, предоставляемых приложением (системой) для использования во внешних программных продуктах.
REST: Representational State Transfer — архитектурный стиль взаимодействия компонентов распределённого приложения в сети.
JSON: JavaScript Object Notation — текстовый формат обмена данными, основанный на JavaScript RFC 7159.
3DS: 3-D Secure — протокол защиты карточных данных, используемый для аутентификации держателя банковской карты во время совершения платежной операции через интернет. QIWI поддерживает как версию 3DS 1.0, так и версию 3DS 2.0 протокола.
ТСП, Мерчант — Торгово-сервисное предприятие.
MPI: Merchant Plug-In — модуль, выполняющий 3DS аутентификацию покупателя.
PCI DSS: Payment Card Industry Data Security Standard — стандарт безопасности данных индустрии платёжных карт, учреждённым международными платёжными системами Visa, MasterCard, American Express, JCB и Discover.
Статусы операций
Статус операции отражает ее текущее состояние.
Ответы API
API возвращает синхронный статус операции в поле status.value.
В таблице перечислены возможные статусы и типы операций, в которых эти статусы используются.
Тип операции Статус операции Описание статуса
PAYMENT WAITING Ожидание 3DS авторизации
PAYMENT DECLINED Запрос авторизации отклонен (в синхронном ответе)
PAYMENT DECLINE Запрос авторизации отклонен (в асинхронном ответе)
PAYMENT COMPLETED Запрос авторизации успешно обработан
CAPTURE DECLINE Запрос подтверждения отклонен
CAPTURE DECLINED Запрос подтверждения отклонен (в ответе API на запрос статуса)
CAPTURE COMPLETED Запрос подтверждения успешно обработан
REFUND DECLINE Запрос возврата отклонен
REFUND COMPLETED Запрос возврата успешно обработан
PAYOUT WAITING Выплата принята в обработку
PAYOUT INIT Инициализация выплаты при двушаговом сценарии
PAYOUT DECLINED Выплата отклонена
PAYOUT COMPLETED Выплата успешно проведена
PAYMENT SUCCESS Запрос авторизации успешно обработан
CAPTURE SUCCESS Запрос подтверждения успешно обработан
REFUND SUCCESS Запрос возврата успешно обработан
PAYOUT SUCCESS Выплата успешно проведена
Проверка карты покупателя
Мерчант может воспользоваться сервисом проверки реквизитов карты на валидность и доступность для совершения покупок. При этом средства на счете держателя карты не списываются до того, как будут установлены договоренности на рекуррентные списания или будет инициирована транзакция покупки на всю сумму.
Если проверка пройдена успешно, для карты может быть выпущен платежный токен.
Сервис проверки карт по умолчанию отключен. Чтобы подключить его, обратитесь к вашему сопровождающему менеджеру.
Получение списка платежей по счету
Пример запроса на получение списка платежей по счету
Передача чека (54-ФЗ)
Для работы по 54-ФЗ Протокол приема платежей предоставляет инструмент для взаимодействия с вашей онлайн-кассой. Информация для формирования фискального чека передается в JSON-объекте cheque в операциях API выставления счета, платежа и возврата.
Для активации сервиса формирования фискального чека сообщите вашему сопровождающему менеджеру номер ИНН, с которым ваша организация зарегистрирована в сервисе по аренде онлайн-касс.
Если используется Атол, то дополнительно предоставьте сведения:
Фискальный чек по успешной операции отправляется в синхронном ответе на указанные запросы API и в уведомлении об операции в объекте chequeData.
Выставление счета и получение ссылки на оплату через API
Протокол приема платежей поддерживает выставление счетов с оплатой как двухшаговым платежом с холдированием средств на карте покупателя, так и одношаговым платежом без авторизации покупателя.
Двухшаговый платеж
Выставление счета с оплатой через холдирование (двухшаговый платеж)
Уведомление об оплате счета
Одношаговый платеж
Выставление счета с оплатой без авторизации Покупателя (одношаговый платеж)
Платежный токен
Выставление счета с оплатой платежным токеном
Платежные токены используются для списаний с карт или QIWI кошельков без ввода реквизитов карты или номера кошелька. Метод оплаты платежным токеном по умолчанию отключен. Чтобы подключить его, обратитесь к вашему сопровождающему менеджеру.
Подробнее о выпуске платежного токена см. в этом разделе.
Чтобы покупатель смог оплатить платежным токеном:
Для списания средств по платежному токену без участия Покупателя воспользуйтесь методом API Платеж. См. подробнее описание использования платежного токена на Платежной форме мерчанта.
Формат уведомления CHECK_CARD
Пример тела уведомления CHECK_CARD
checkPaymentMethod Описание результата проверки карты Object
checkPaymentMethod.checkOperationDate Дата проверки карты URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ
checkPaymentMethod.requestUid Идентификатор операции проверки карты String
checkPaymentMethod.status Статус проверки карты String
checkPaymentMethod.isValidCard Признак доступности карты для платежей Bool
checkPaymentMethod.threeDsStatus Информация о статусе дополнительной аутентификации при проверке карты. Возможные значения: PASSED (3-D Secure пройден), NOT_PASSED (3-D Secure не пройден), WITHOUT (3-D Secure не требовалось) String
checkPaymentMethod.paymentMethod Информация о средстве платежа Object
checkPaymentMethod.paymentMethod.type Тип метода оплаты String
checkPaymentMethod.paymentMethod.maskedPan Маскированный PAN карты String
checkPaymentMethod.paymentMethod.cardExpireDate Срок действия карты String
checkPaymentMethod.paymentMethod.cardHolder Имя держателя карты String
checkPaymentMethod.cardInfo Информация о карте Object
checkPaymentMethod.cardInfo.issuingCountry Код страны эмитента String(3)
checkPaymentMethod.cardInfo.issuingBank Банк-эмитент String
checkPaymentMethod.cardInfo.paymentSystem Тип платежной системы String
checkPaymentMethod.cardInfo.fundingSource Тип карты String
checkPaymentMethod.cardInfo.paymentSystemProduct Категория карты String
checkPaymentMethod.createdToken Объект с информацией о платежном токене, выпущенном вместе с проверкой карты Object
checkPaymentMethod.createdToken.token Строка платежного токена String
checkPaymentMethod.createdToken.name Маскированный PAN карты, для которой выпущен платежный токен String
checkPaymentMethod.createdToken.expiredDate Дата окончания срока действия платежного токена. Формат даты соответствует стандарту ISO-8601:ГГГГ-ММ-ДДTчч:мм:сс±чч:мм String
checkPaymentMethod.createdToken.account Идентификатор покупателя, указанный при выпуске платежного токена String
checkPaymentMethod.merchantSiteUid Строковый идентификатор сайта ТСП в QIWI Кассе String
type Тип уведомления — только CHECK_CARD String





