- Терминология и сокращения
- Статус счета
- Формат реестра
- Yandex Pay
- Как отправлять платеж
- Статус QR-кода СБП
- Статусы операций
- Ответы API
- Создание счёта
- Платежный токен
- Подтверждение платежа
- Интеграция с Платёжной формой мерчанта
- Платеж токеном СБП
- Завершение аутентификации при проверке карты
- Типы операций
- Частота отправки уведомлений
- Статус возврата
- Возвраты по сплитованным платежам
- Способы подключения
- Статусы проверки карты
- Возвраты и отмены
- Проверка карты покупателя
- Акты
- Платеж через форму QIWI
- Получение QR-кода СБП
- Метод PUT
- Аутентификация по цифровой подписи
- Как создать ключи
- Коды ошибок
- Формат уведомления PAYOUT
- Реестры
- Уведомления по сплитованным операциям
- Выплата
- Серверные уведомления
- ChequeData
Терминология и сокращения
Ключ доступа к 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.
Статус счета
Пример запроса статуса счета:
Детская футбольная школа Тигры
Формат реестра
Пример фрагмента реестра:
Файл реестра формируется в формате CSV.
| Поле реестра | Описание |
|---|---|
| BANK_DATA_DOC | Дата документа, влияющего на баланс банковского счета, по этой дате составляется Акт в конце месяца |
| BANK_VALUE_DOC | Дата фактического изменения баланса счета в банке |
| BANK_AGR_CODE | Банковский код, уникальный номер документа |
| SUM_BANK | Сумма документа |
| TRANS_DATE | Дата создания операции |
| TRANSACTION_ID | Номер операции |
| SUM | Сумма операции |
| COMMISSION | Комиссия за проведение операции с мерчанта |
| ID | Номер операции paymentId на стороне мерчанта |
| MERCH ID | ID мерчанта |
| MERCH_SITE | siteId мерчанта |
| PARENT_TRANSACTION_ID | Для возвратов указывается номер исходной операции платежа |
| BILL ID | ID выставленного счета |
| PURPOSE | Тип проводки CHARGEBACK/ REVERT_CHARGEBACK/ Оплата/ Возврат/ OPERATION+/ OPERATION-/ SETTLEMENT |
| MERCHANT_SITE_NAME | URL сайта мерчанта |
| PAYMENT_METHOD_TYPE | Метод оплаты: Bank card/ QIWI_WALLET/ SBP |
| ММВБ | Курс ММВБ на момент оплаты для валютных операций |
| CLIENT_AMOUNT | Сумма списания с покупателя |
| CLIENT_CUR_CODE | Валюта списания с покупателя |
| SETTLEMENT_AMOUNT | Сумма платежного поручения, отправленного на расчетный счет партнера |
| PAYMENTDETAILS | Назначение платежного поручения, отправленного на расчетный счет партнера (Пример: Перевод принятых денежных средств по Договору **** от ***. *** НДС не облагается/облагается.) |
Yandex Pay
Оплата покупок с Yandex Pay происходит без ввода данных карты.
Для включения способа оплаты Yandex Pay обратитесь к вашему сопровождающему менеджеру.
Как отправлять платеж
Пример платежа с данными расшифрованного платежного токена Yandex Pay (метод CLOUD_TOKEN)
Пример платежа с данными расшифрованного платежного токена Yandex Pay (метод PAN_ONLY)
Формат платежных данных зависит от способа аутентификации, указанного в поле authMethod расшифрованного платежного токена Yandex Pay:
## Завершение аутентификации покупателя
Пример завершения аутентификации покупателя
## Как использовать сервис через API
Пример запроса проверки карты
Пример тела успешного ответа
Пример тела ответа с проверкой 3DS
Some string pareq
Пример тела ответа с ошибкой проверки
Пример запроса завершения 3DS при проверке карты
Some string pares
Чтобы убедиться, что номер карты ввел именно держатель карты, можно использовать дополнительную аутентификацию покупателя 3-D Secure. Включение/отключение 3DS производится на стороне QIWI через Службу поддержки. Если 3DS включен, то в ответе на запрос проверки карты вы получите объект requirements с ACS URL для перенаправления покупателя (в поле status будет значение WAITING_3DS).
Сценарий дополнительной аутентификации аналогичен операции покупки:
После завершения проверки вам придет уведомление CHECK_CARD с результатом. Также вы можете всегда запросить текущий статус проверки.
## Тестирование проведения операций
При подключении идентификатора сайта партнёра siteId находится в тестовом режиме. В этом режиме партнёр может проводить операции без списания средств с банковской карты. Также можно запросить переключение в режим тестирования любого siteId партнёра, либо добавление нового siteId в режиме тестирования через сопровождающего менеджера.
Для операций в тестовом режиме используются стандартные URL API Протокола.
Тестовый режим для метода оплаты с баланса КИВИ Кошелька не предусмотрен.
Когда интеграция на вашей стороне закончена, служба поддержки QIWI переводит siteId в производственный режим. В этом режиме выполняются реальные списания денежных средств с карт.
При переходе в производственный режим перевыпускать ключ доступа к API не нужно.
При необходимости измените постоянный URL для обработки уведомлений с тестового (например, https://your-shop-test.ru/callbacks) на производственный (например, https://your-shop-prod.ru/callbacks) в Личном кабинете.
## Сплитование платежей
Сплитование платежей — решение, разработанное специально для маркетплейсов. Сплитование платежей позволяет рассчитываться с несколькими поставщиками товаров/услуг, производя одно списание с карты покупателя.
Чтобы подключить сплитование платежей, обратитесь к вашему сопровождающему менеджеру и запросите подключение решения.
## Статус подтверждения
Пример запроса статуса подтверждения
## Справочник ошибок API
Ошибки API описывают причину отклонения операции и передаются:
Некоторые ошибки API сопровождаются детализацией ошибки и рекомендованными действиями, полученными от платежной системы в поле status.psErrorCode.
Ошибка API Описание
INVALID_STATE Некорректный статус транзакции
INVALID_AMOUNT Некорректная сумма
INVALID_RECEIVER_DATA Ошибка при передаче данных о получателе
DECLINED_BY_MPI Отклонено MPI## Ошибки авторизации и проведения платежа
## Отклонено fraud-мониторингом
DECLINED_BY_FRAUD
## Повторный запрос авторизации запрещен на основании правил Платежной системы
REATTEMPT_NOT_PERMITTED
## Операция отклонена платежной системой.
Детализация ошибки содержится в поле status.psErrorCode.
По данной карте повторная операция невозможна
REATTEMPT_NOT_PERMITTED_BY_PS
## Ошибка взаимодействия с банком
GATEWAY_INTEGRATION_ERROR
## Техническая ошибка на стороне банка
GATEWAY_TECHNICAL_ERROR
## Техническая ошибка при проведении 3DS аутентификации
ACQUIRING_MPI_TECH_ERROR
## Техническая ошибка
ACQUIRING_GATEWAY_TECH_ERROR
## Техническая ошибка
ACQUIRING_ACQUIRER_ERROR
## Ошибка при проведении авторизации средств
ACQUIRING_AUTH_TECHNICAL_ERROR
## Ошибка эмитента. Банк-эмитент не доступен
ACQUIRING_ISSUER_NOT_AVAILABLE
## Ошибка эмитента. Подозрение на мошенничество
ACQUIRING_SUSPECTED_FRAUD
## Ошибка эмитента. Превышен один из лимитов
ACQUIRING_LIMIT_EXCEEDED
## Ошибка эмитента. Операция не разрешена
ACQUIRING_NOT_PERMITTED
## Ошибка эмитента. Некорректный CVV
ACQUIRING_INCORRECT_CVV
## Ошибка эмитента. Неверный срок действия карты
ACQUIRING_EXPIRED_CARD
## Ошибка эмитента. Проверьте корректность введенных данных
ACQUIRING_INVALID_CARD
## Ошибка эмитента. Недостаточно средств
ACQUIRING_INSUFFICIENT_FUNDS
## Неизвестная ошибка
ACQUIRING_UNKNOWN
## Счет уже оплачен
BILL_ALREADY_PAID
## Ошибка при проведении платежа
PAYIN_PROCESSING_ERROR
## Не пройдена 3DS-аутентификация
PAYMENT_EXPIRED_3DS
## Ошибка превышения лимита пользователя QIWI Кошелька
QW_LIMIT_ERROR
## Пользователю необходимо пройти идентификацию в QIWI Кошельке
QW_IDENTIFICATION_ERROR
## Ошибка авторизации в QIWI Кошельке
QW_AUTH_ERROR
## Недостаточно средств в QIWI Кошельке
QW_INSUFFICIENT_FUNDS
## Недопустимая сумма платежа
QW_AMOUNT_ERROR
## Ошибка регистрации пользователя QIWI Кошелька
QW_REGISTRATION_ERROR
## Ошибка при пополнении QIWI Кошелька пользователя
QW_AGENT_ERROR
## QIWI Кошелек заблокирован
QW_ACCOUNT_ERROR
## Достигнут лимит платежей в QIWI Кошельке
QW_IDENTIFICATION_STATUS_ERROR
## Валюта QIWI Кошелька не найдена
QW_CURRENCY_ERROR
## Ошибка проведения платежа в QIWI Кошельке
QW_PAYMENT_ERROR
## Провайдер QIWI Кошелька заблокирован
QW_PROVIDER_ERROR
## Истекло время СМС-подтверждения платежа в QIWI Кошельке
QW_SMS_CONFIRM_EXPIRED
## Повторите запрос через некоторое время
TRY_AGAIN_LATER
## Ошибки операции выплаты
## Неизвестная техническая ошибка, попробуйте повторить запрос еще раз
GATEWAY_TECHNICAL_ERROR
## Ошибка в настройках мерчанта, обратитесь в Службу поддержки
MERCHANT_SETTINGS_ERROR
## Отклонено выплатным шлюзом
DECLINED_BY_PAYOUT_GATEWAY
## Формат уведомления CHECK_CARD
### Пример тела уведомления CHECK_CARD
| Поле | Описание | Тип |
|----------------------------------------|-------------------------------------------|------------------------|
| 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
version Версия уведомлений String
## Выпуск токена для оплаты через СБП
Тело запроса выпуска токена СБП
Описание с деталями привязки счета
Тело ответа выпуска токена СБП
Тело запроса выпуска QR-кода СБП на оплату с привязкой счета и выпуском токена
Тело ответа с QR-кодом СБП на оплату с привязкой счета и выпуском токена
Для выпуска платежного токена СБП вы можете использовать два способа:
Чтобы гарантировать безопасность привязанных карточных данных, используйте разные параметры tokenizationAccount для разных покупателей.
Информацию о платежном токене СБП вы получите в объекте token ответа и в уведомлении TOKEN.
О том, как платить токеном СБП, читайте в разделе Оплата токеном через СБП.
## Процесс платежа
Безопасная сделка — сервис для расчётов между двумя физическими лицами на онлайн-площадке. Чтобы подключить Безопасную сделку, обратитесь к вашему сопровождающему менеджеру.
Алгоритм безопасной сделки состоит из двух этапов:
## Статус проверки карты
Пример запроса статуса проверки карты
## Проверка карты
Пример проверки карты
См. описание тестового режима для выплат.
## Перенаправление на форму QIWI
Пример ответа с payUrlЧтобы покупатель смог оплатить выставленный счет, перенаправьте его на Платежную форму по ссылке из поля payUrl ответа на запрос выставления счета.
По умолчанию, на Платежной форме QIWI 3-D Secure покупателя обязателен.
Пример ссылки с successUrl
К ссылке можно добавить параметры:
Параметр Описание Тип
successUrl URL для возврата на сайт мерчанта в случае успешной оплаты. Возврат произойдет после успешной 3DS аутентификации. Ссылку необходимо указывать в кодировке UTF-8. URL-закодированная строка
lang Язык платежной формы. Язык по умолчанию — русский (ru). ru, en
paymentMethod Платежный метод, предлагаемый покупателю по умолчанию на платежной форме. Если указанный метод недоступен мерчанту, отображается другой доступный. По умолчанию — CARD. CARD, SBP, QIWI_WALLET
Пример обработчика событий iframe
// Форма загружена // Попытка платежа // Платеж прошел успешно // Платеж не прошел
вы можете использовать метод postMessage для отслеживания состояния формы.
Возможные значения состояния:
Методы библиотеки позволяют открыть Платежную форму оплаты счета как всплывающее окно (popup) поверх вашего сайта. В библиотеке доступно два метода:
Для установки и подключения библиотеки добавьте скрипт в код сайта:
Пример вызова метода выставления счета
Чтобы создать счет и открыть форму оплаты, вызовите метод QiwiCheckout.createInvoice. Параметры метода:
Параметр Описание Формат
publicKey Обязательный параметр. Ключ идентификации мерчанта, уникальный для каждого siteId. Ключ можно получить в Личном кабинете в разделе Настройки. String
amount Обязательный параметр. Сумма, на которую выставляется счет, округленная в меньшую сторону до 2 десятичных знаков Number(6.2)
phone Номер телефона пользователя, на который выставляется счет (в международном формате) String
email E-mail пользователя, куда будет отправлена ссылка для оплаты счета String
account Идентификатор пользователя в системе мерчанта String
customFields Дополнительные данные счета. Список полей см. в описании одноименного параметра в запросе API выставления счета Object
lifetime Дата, до которой счет будет доступен для оплаты. Если счет не будет оплачен до этой даты, он получит финальный статус и последующая оплата станет невозможна. ГГГГ-ММ-ДДTччмм
Пример вызова метода открытия существующего счета
Этот метод используется, когда ссылка на Платежную форму оплаты счета получена при выставлении счета через API.
Чтобы открыть форму оплаты выставленного счета, вызовите метод QiwiCheckout.openInvoice. Параметры метода:
payUrl Обязательный параметр. URL-ссылка на Платежную форму String
Статус QR-кода СБП
Пример запроса статуса QR-кода СБП
Статусы операций
Статус операции отражает ее текущее состояние.
Ответы 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 Выплата успешно проведена
Создание счёта
Пример создания счета
Платежный токен
Использование платежного токена в запросе платежа
Платежные токены используются для списаний с карт или QIWI кошельков без ввода реквизитов карты или номера кошелька. Метод оплаты платежным токеном по умолчанию отключен. Чтобы подключить его, обратитесь к вашему сопровождающему менеджеру.
При оплате платёжным токеном покупатель не будет указывать свои карточные данные и проходить проверку 3-D Secure.
О выпуске платежного токена см. подробнее в этом разделе.
Чтобы инициировать платёж с оплатой платежным токеном, передайте в запросе API Платеж:
Если карта, для которой выпущен платежный токен, была уже ранее сохранена (токенизирована) на вашей стороне, должны быть добавлены дополнительные параметры в объекте paymentMethod:
Подтверждение платежа
Пример подтверждения платежа
Интеграция с Платёжной формой мерчанта
Чтобы отправить платёж со сплитованием, передайте в запросе API Платёж JSON-массив paymentSplits с данными поставщиков.
Пример платежа со сплитованием
Пример ответа на платеж со сплитованием
"Товар из корзины"
Формат массива paymentSplits в запросе:
Название Тип Описание
paymentSplits Array Массив данных о поставщиках
type String Тип передаваемых данных. Доступные значения: MERCHANT_DETAILS (данные поставщика)
siteUid String ID поставщика
splitAmount Object Возмещение поставщику
value Number Сумма возмещения, округленная в меньшую сторону до 2 десятичных знаков
currency String(3) Буквенный код валюты возмещения по ISO. Доступен только RUB
orderId String Номер заказа (необязательный)
В объекте paymentSplits ответа содержатся данные о принятых платежах и комиссиях:
Поле ответа Тип Описание
paymentSplits Array Массив с данными о принятых платежах
type String Тип передаваемых данных. Всегда возвращается строка MERCHANT_DETAILS
splitAmount Object Данные о возмещении поставщику
value String Сумма возмещения
splitCommissions Object Данные о комиссии (необязательный)
merchantCms Object Данные о комиссии с поставщика
value String Сумма комиссии
currency String(3) Буквенный код валюты комиссии по ISO
Платеж токеном СБП
Пример платежа токеном СБП
"Flower for my girlfriend"
Завершение аутентификации при проверке карты
Пример завершения аутентификации при проверке карты
Чтобы создать платеж, передайте в запросе API Платеж:
Типы операций
В Протоколе доступны следующие операции:
Частота отправки уведомлений
Сервис отправки уведомлений распределяет неуспешные уведомления по очередям:
Время повторной отправки может быть увеличено.
Статус возврата
Пример запроса статуса возврата
Возвраты по сплитованным платежам
После успешной авторизации списания денежных средств доступен возврат средств по операции сплитованного платежа. Поддерживается как полный, так и частичный возврат.
Пример запроса с возвратами по сплитованному платежу
В запросе API Операция возврата передайте JSON-массив refundSplits с данными о возвратах. Укажите общую сумму возврата и сумму возврата для каждого сплита.
Формат массива refundSplits в запросе:
refundSplits Array Массив данных о возвратах
splitAmount Object Информация об отменённом возмещении поставщику
value Number Сумма отменённого возмещения, округленная в меньшую сторону до 2 десятичных знаков
currency String(3) Буквенный код валюты отменённого возмещения по ISO. Доступен только RUB
В JSON-массиве refundSplits ответа содержатся данные о принятых возвратах:
value String Сумма отменённого возмещения
splitCommissions Object Информация о комиссии (необязательный)
merchantCms Object Информация о комиссии с поставщика
Способы подключения
Протокол приема платежей поддерживает несколько вариантов взаимодействия:
Статусы проверки карты
Статус Описание
INIT Сгенерирована ссылка на проверку карты, но клиент еще ей не воспользовался
SUCCESS Проверка выполнена успешно
ERROR Ошибка во время проверки
WAITING_3DS Ожидание завершения проверки 3-D Secure
Возвраты и отмены
Операции возврата и отмены доступны не для всех способов платежей:
При возврате платежа комиссия QIWI за проведение платежа не возвращается. Исключение — если при возврате платежа выполнена операция отмены. В этом случае финансовой операции (списания средств со счета покупателя) не происходит и комиссия не взимается.
Проверка карты покупателя
Мерчант может воспользоваться сервисом проверки реквизитов карты на валидность и доступность для совершения покупок. При этом средства на счете держателя карты не списываются до того, как будут установлены договоренности на рекуррентные списания или будет инициирована транзакция покупки на всю сумму.
Если проверка пройдена успешно, для карты может быть выпущен платежный токен.
Сервис проверки карт по умолчанию отключен. Чтобы подключить его, обратитесь к вашему сопровождающему менеджеру.
Акты
Акт по принятым платежам формируется ежемесячно во второй рабочий день месяца.
Акт сначала отправляется на 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"
Платеж через форму QIWI
При подключении платежей через форму QIWI покупателю доступен только способ оплаты банковскими картами. Другие способы оплаты включаются по запросу:
Чтобы выполнить платеж через форму QIWI, выставите счет покупателю. Воспользуйтесь выставлением счета через API или перенаправьте покупателя на форму QIWI по прямой ссылке с параметрами счета.
Получение QR-кода СБП
Пример получения QR-кода СБП (метод POST) "Flower for my girlfriend"
Метод PUT
Пример получения QR-кода СБП (метод PUT) "Flower for my girlfriend"
Аутентификация по цифровой подписи
Аутентификация по цифровой подписи применяется только для создания операций типа "Выплата" через API.
Для аутентификации по цифровой подписи мерчант должен создать пару RSA-ключей, например, с помощью утилиты OpenSSL. Закрытый ключ должен быть размером 2048 бит в PEM-формате. Мерчант должен передать в QIWI закодированный в Base64 открытый ключ, соответствующий закрытому ключу.
Как создать ключи
Алгоритм с примерами на языке Bash:
Тип операции Описание
CAPTURE Операция подтверждения.
Коды ошибок
Протокол приема платежей использует для запросов 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 — Сервер временно недоступен по техническим причинам, попробуйте позже.
Формат уведомления 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 Всегда
version Версия уведомлений String Всегда
Реестры
Реестр операций отправляется после 14:00 МСК по рабочим дням, содержит информацию только об успешных платежах, обработанных банком. Реестр полностью соответствует Акту.
Реестр отправляется на email, указанный при регистрации в сервисе, во вложенном в письме zip-архиве.
Уведомления по сплитованным операциям
Уведомления по сплитованным платежам и по возвратам сплитованных платежей формируются аналогично описанным выше ответам на запросы API:
Выплата
"some comment for payout operation"
"Incorrect payout amount"
Серверные уведомления
Уведомление от QIWI — это входящий POST-запрос с информацией о событии. Тело запроса содержит JSON-сериализованные данные платежа/счета (кодировка UTF-8).
Протокол поддерживает следующие типы уведомлений о событиях API:
Адрес вашего сервера для обработки уведомлений указывается в Личном кабинете в разделе Настройки.
Чтобы указать URL сервера обработки уведомлений для отдельной операции, используйте параметры:
URL для уведомлений должен начинаться с https, так как уведомления отправляются по протоколу HTTPS на порт 443. URL должен быть доступен из Интернета.
Сертификат сайта должен быть выпущен доверенным центром сертификации (например Comodo, Verisign, Thawte и т.п.).
Уведомление считается успешно доставленным, если ваш сервер ответил HTTP кодом состояния 200 OK.
ChequeData
Информация о фискальном чеке по операции.
Имя Описание Тип
id Идентификатор чека String
url Информация о чеке (URL-ссылка) String





