API приёма платежей
Версия 1.2
API предназначен для проведения платежей в рамках продукта «Интернет-эквайринг». Подробности интеграции интернет-эквайринга с помощью данного API см. в разделе «Руководства по интеграции» → «Интернет-эквайринг».
Формат взаимодействия
API приёма платежей основан на принципах REST-архитектуры. Данные и методы считаются ресурсами, которые доступны через вызов универсальных идентификаторов ресурсов (URI).
Взаимодействие по API совершается по защищённому протоколу (HTTPS). Поддерживаются только HTTPS-запросы. HTTP-запросы по нешифрованному каналу не поддерживаются. Данные в запросах передаются в формате JSON в кодировке UTF-8. В ответах данные возвращаются также в формате JSON в кодировке UTF-8.
Методы API обеспечивают логическую идемпотентность, т. е. многократный вызов метода эквивалентен однократному. Однако ответ сервера может меняться: например, состояние счёта может меняться от запроса к запросу.
URL для вызовов API
Постоянная часть URL-адреса для вызова методов API:
https://b2b-api.qiwi.com/partner/
Авторизация
Пример запроса с авторизацией
curl -X PUT \
https://b2b-api.qiwi.com/partner/v1/sites/{site_id}/payments/{payment_id} \
--oauth2-bearer <Ключ API>
Пример заголовка авторизации
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Для авторизации запросов к API используется стандарт OAuth 2.0 согласно RFC 6750. Указывайте значение ключа доступа к API в HTTP-заголовке Authorization
как
Bearer <Ключ API>
Проверка карты покупателя
Мерчант может воспользоваться сервисом проверки реквизитов карты на валидность и доступность для совершения покупок. При этом средства на счете держателя карты не списываются до того, как будут установлены договоренности на рекуррентные списания или будет инициирована транзакция покупки на всю сумму.
Если проверка пройдена успешно, для карты может быть выпущен платёжный токен.
Сервис проверки карт по умолчанию отключен. Чтобы подключить его, обратитесь к вашему сопровождающему менеджеру.
Как использовать сервис через API
Пример запроса проверки карты
PUT /partner/payin/v1/sites/site-01/validation/card/requests/acd7bf20-22e2-4cbf-a218-38d90e9f29b9 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"cardData": {
"pan": "1111222233334444",
"expiryDate": "12/34",
"cvv2": "123",
"holderName": "Super Man"
},
"tokenizationData": {
"account": "cat_girl"
}
}
Пример тела успешного ответа, когда для карты не включен 3DS
{
"requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
"status": "SUCCESS",
"isValidCard": true,
"threeDsStatus": "WITHOUT",
"checkOperationDate": "2025-03-25T12:55:12+03:00",
"cardInfo": {
"issuingCountry": "643",
"issuingBank": "Gazprombank",
"paymentSystem": "MIR",
"fundingSource": "DEBIT",
"paymentSystemProduct": "details"
},
"createdToken": {
"token": "1a77343a-dd8a-11eb-ba80-0242ac130004",
"name": "111122******4444",
"expiredDate": "2034-12-31T00:00:00+03:00",
"account": "cat_girl"
}
}
Пример тела ответа с требованием аутентификации покупателя
{
"requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
"status": "WAITING_3DS",
"requirements": {
"pareq": "Some string pareq",
"acsUrl": "http://xxxxxxx"
}
}
Перенаправление для аутентификации 3-D Secure
<form name="form" action="{ACSUrl}" method="post" >
<input type="hidden" name="TermUrl" value="{TermUrl}" >
<input type="hidden" name="MD" value="{MD}" >
<input type="hidden" name="PaReq" value="{PaReq}" >
</form>
Пример тела ответа с ошибкой проверки
{
"requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
"status": "ERROR"
}
Пример запроса завершения 3DS при проверке карты
POST /partner/payin/v1/sites/site-01/validation/card/requests/acd7bf20-22e2-4cbf-a218-38d90e9f29b9/complete HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"pares": "Some string pares"
}
Пример тела ответа
{
"requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
"status": "SUCCESS",
"isValidCard": true,
"threeDsStatus": "PASSED",
"checkOperationDate": "2025-03-25T12:55:12+03:00",
"cardInfo": {
"issuingCountry": "643",
"issuingBank": "Gazprombank",
"paymentSystem": "MIR",
"fundingSource": "DEBIT",
"paymentSystemProduct": "details"
},
"createdToken": {
"token": "1a77343a-dd8a-11eb-ba80-0242ac130004",
"name": "111122******4444",
"expiredDate": "2034-12-31T00:00:00+03:00",
"account": "cat_girl"
}
}
- Отправьте запрос API "Проверка карты". В запросе укажите:
- Уникальный в рамках вашего сайта идентификатор проверки (
requestUid
в URL запроса). - Данные карты (
cardData
в теле запроса). Обязательные параметры — PAN, срок действия и CVV2.
Для генерации платежного токена в запросе должен быть указан параметр
tokenizationData.account
— уникальный идентификатор покупателя в системе ТСП. - Уникальный в рамках вашего сайта идентификатор проверки (
- В ответе информация о доступности карты для списаний содержится в атрибуте
isValidCard
(true
— карта доступна). ЕслиisValidCard=true
и запрошен выпуск платежного токена, то платежный токен возвращается в объектеcreatedToken
.
Чтобы убедиться, что номер карты ввел именно держатель карты, используется дополнительная аутентификация покупателя 3-D Secure. Включение/отключение 3DS производится на строне банка, выпустившего карту. Если 3DS включен, то в ответе на запрос проверки карты вы получите объект "requirements"
с ACS URL для перенаправления покупателя (в поле status
будет значение "WAITING_3DS"
).
Сценарий дополнительной аутентификации аналогичен операции покупки:
- Перенаправьте покупателя на страницу аутентификации.
- Завершите 3-D Secure запросом "Завершение 3DS при проверке карты". В запросе укажите тот же идентификатор проверки, что и в исходном запросе проверки карты.
- Если проверка 3-D Secure завершилась успешно, в ответе информация о доступности карты для списаний содержится в атрибуте
isValidCard
(true
— карта доступна). ЕслиisValidCard=true
и запрошен выпуск платежного токена, то платежный токен возвращается в объектеcreatedToken
.
После завершения проверки вам придет уведомление CHECK_CARD с результатом. Также вы можете всегда запросить текущий статус проверки.
Статусы проверки карты
Статус | Описание |
---|---|
INIT | Сгенерирована ссылка на проверку карты, но клиент еще ей не воспользовался |
SUCCESS | Проверка выполнена успешно |
ERROR | Ошибка во время проверки |
WAITING_3DS | Ожидание завершения проверки 3-D Secure |
Платежный токен
В Протоколе приема платежей поддерживается выпуск платежных токенов карт. Они могут быть использованы для последующих списаний без дополнительного ввода реквизитов карт. При выпуске платежного токена карты ее реквизиты сохраняются в зашифрованном виде в QIWI.
Особенности
По умолчанию выпуск платежных токенов отключен. Чтобы подключить его, обратитесь к курирующему менеджеру.
Выпуск платежного токена карты
Пример запроса проверки карты
PUT /partner/payin/v1/sites/site-01/validation/card/requests/acd7bf20-22e2-4cbf-a218-38d90e9f29b9 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"cardData": {
"pan": "1111222233334444",
"expiryDate": "12/34",
"cvv2": "123",
"holderName": "Super Man"
},
"tokenizationData": {
"account": "cat_girl"
}
}
Пример тела успешного ответа, когда для карты не включен 3DS
{
"requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
"status": "SUCCESS",
"isValidCard": true,
"threeDsStatus": "WITHOUT",
"checkOperationDate": "2025-03-25T12:55:12+03:00",
"cardInfo": {
"issuingCountry": "643",
"issuingBank": "Gazprombank",
"paymentSystem": "MIR",
"fundingSource": "DEBIT",
"paymentSystemProduct": "details"
},
"createdToken": {
"token": "1a77343a-dd8a-11eb-ba80-0242ac130004",
"name": "111122******4444",
"expiredDate": "2034-12-31T00:00:00+03:00",
"account": "cat_girl"
}
}
Пример запроса выставления счета с выпуском платежного токена
PUT /partner/payin/v1/sites/23044/bills/893794793973 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"amount": {
"currency": "RUB",
"value": 10.00
},
"expirationDateTime": "2021-04-13T14:30:00+03:00",
"customer": {
"account":"token32"
},
"customFields": {},
"flags":["BIND_PAYMENT_TOKEN"]
}
Пример запроса платежа с выпуском платежного токена
PUT /partner/payin/v1/sites/test-01/payments/test-022 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"amount": {
"currency": "RUB",
"value": 2211.24
},
"customer": {
"account": "token324",
"phone": "79022222222"
},
"flags":["BIND_PAYMENT_TOKEN"]
}
Пример тела ответа с платежным токеном
{
"paymentId": "test-022",
"billId": "autogenerated-c4479bb1-c916-4fba-8445-802592fa8d51",
"createdDateTime": "2020-03-26T12:22:12+03:00",
"amount": {
"currency": "RUB",
"value": 2211.24
},
"capturedAmount": "..",
"refundedAmount": "..",
"paymentMethod": "..",
"createdToken": {
"token": "66aebf5f-098e-4e36-922a-a4107b349a96",
"name": "411111******1111"
},
"customer": {
"account": "token324",
"phone": "79022222222"
},
"status": ".."
}
Воспользуйтесь запросом Проверка карты. В запросе укажите параметр tokenizationData.account для выпуска платежного токена:
tokenizationData.account
— уникальный идентификатор Покупателя в системе ТСП.
Чтобы гарантировать безопасность карточных данных, используйте разные параметры account
для разных покупателей.
Вы получите информацию о платежном токене карты:
- В синхронном ответе на запрос API Проверка карты или Завершение аутентификации при проверке карты в поле
createdToken
. - В синхронном ответе на запрос API Статус проверки карты в поле
createdToken
. - В уведомлении в поле
checkPaymentMethod.createdToken
.
Либо воспользуйтесь запросом Платеж или Создание счета. В запросе укажите дополнительные параметры:
"flags": ["BIND_PAYMENT_TOKEN"]
— команда для выпуска платежного токена.customer.account
— уникальный идентификатор Покупателя в системе ТСП.
Чтобы гарантировать безопасность карточных данных, используйте разные параметры account
для разных покупателей.
Вы получите информацию о платежном токене карты:
- В синхронном ответе на запрос API Платеж или Завершение аутентификации покупателя в поле
createdToken
. - После успешного завершения платежа в уведомлении в поле
tokenData
.
Удаление платежного токена
Чтобы прекратить действие платежного токена карты, отправьте запрос API Удаление платёжного токена. В JSON-теле запроса укажите параметры:
customerAccountId
— уникальный идентификатор покупателя в системе ТСП, привязанный к платежному токену.token
— платежный токен.
Успешный ответ с HTTP-статусом 204
означает, что платежный токен для указанного покупателя больше не действует.
Серверные уведомления
Формат уведомления PAYMENT
HEADERS
- Signature: XXX
- Accept: application/json
- Content-type: application/json
Пример тела уведомления PAYMENT
{
"payment": {
"paymentId": "A22170834426031500000733E625FCB3",
"customFields": {},
"type": "PAYMENT",
"createdDateTime": "2022-08-05T11:34:42+03:00",
"status": {
"value": "SUCCESS",
"changedDateTime": "2022-08-05T11:34:44+03:00"
},
"amount": {
"value": 5,
"currency": "RUB"
},
"paymentMethod": {
"type": "SBP",
"phone": "79111112233"
},
"merchantSiteUid": "test-00",
"customer": {
"phone": "0",
"bankAccountNumber": "4081710809561219555",
"bic": "044525974",
"lastName": "ИВАНОВ",
"firstName": "ИВАН",
"middleName": "ИВАНОВИЧ",
"simpleAddress": "",
"bankMemberId": "100000000008"
},
"billId": "autogenerated-6cd20922-b1d0-4e67-ba61-e2b7310c4006",
"flags": [
"SALE"
],
"qrCodeUid": "acfd9"
},
"type": "PAYMENT",
"version": "1"
}
Поле | Описание | Тип | В каких случаях используется |
---|---|---|---|
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 — Система Быстрых Платежей |
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 |
Телефон, с которого выполнялась оплата через СБП | String | При оплате через СБП |
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. credentialOnFile |
Сведения о сохранённой карте | Object | Если в платеже используется токенизированнаяя карта |
payment. credentialOnFile. type |
Тип операции платежа: CREDENTIAL_ON_FILE — операция по сохранённым реквизитам карты, инициированная владельцем карты, CREDENTIAL_CAPTURED — операция с сохранением реквизитов карты для последующих оплат, RECURRING — операция списания по инициативе ТСП по сохранённым реквизитам карты, INSTALLMENT — операция списания по инициативе ТСП по сохранённым реквизитам карты (только код MCC 6538) |
String | Если в платеже используется токенизированнаяя карта |
payment. credentialOnFile. trn |
Идентификатор транзакции, в которой была привязана карта | String | Если в платеже используется токенизированнаяя карта |
payment. merchantSiteUid |
Строковый идентификатор сайта ТСП в QIWI Кассе | String | Всегда |
payment. customer |
Информация о покупателе | Object | Всегда |
payment. customer. phone |
Номер телефона покупателя | String | Всегда |
payment. customer. |
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. settlementAmount |
Сведения о сумме расчёта с мерчантом | Object | Если валюта платежа и расчёта с мерчантом различаются |
payment. settlementAmount. value |
Сумма расчёта с мерчантом | Number(6.2) | Если валюта платежа и расчёта с мерчантом различаются |
payment. settlementAmount. currency |
Идентификатор валюты расчёта с мерчантом (Alpha-3 ISO 4217 код) | String(3) | Если валюта платежа и расчёта с мерчантом различаются |
type | Тип уведомления — только PAYMENT |
String | Всегда |
version | Версия уведомлений | String | Всегда |
Формат уведомления CAPTURE
HEADERS
- Signature: XXX
- Accept: application/json
- Content-type: application/json
Пример тела уведомления CAPTURE
{
"capture": {
"paymentId": "134d707d-fec4-4a84-93f3-781b4f8c24ac",
"captureId": "B33180934426031511100733DG332XTQ1",
"customFields": {},
"type": "CAPTURE",
"createdDateTime": "2022-08-06T11:34:42+03:00",
"status": {
"value": "SUCCESS",
"changedDateTime": "2022-08-06T12:55:44+03:00"
},
"amount": {
"value": 5,
"currency": "RUB"
},
"paymentMethod": {
"type": "CARD",
"maskedPan": "54************47",
"cardHolder": null,
"cardExpireDate": "12/2024"
},
"merchantSiteUid": "test-00",
"customer": {},
"billId": "autogenerated-6cd20922-b1d0-4e67-ba61-e2b7310c4006",
"flags": []
},
"type": "CAPTURE",
"version": "1"
}
Поле | Описание | Тип | |
---|---|---|---|
capture | Описание операции подтверждения | Object | |
capture. type |
Тип операции — только CAPTURE |
String(200) | |
capture. paymentId |
Идентификатор платежа в системе ТСП | String(200) | |
capture. captureId |
Идентификатор подтверждения в системе ТСП | String(200) | |
capture. createdDateTime |
Дата создания операции | URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ |
|
capture. amount |
Информация о сумме операции | Object | |
capture. amount. value |
Сумма операции, округленная до двух десятичных знаков в меньшую сторону | Number(6.2) | |
capture. amount. currency |
Идентификатор валюты операции (Alpha-3 ISO 4217 код) | String(3) | |
capture. billId |
ID счёта, соответствующего операции | String(200) | |
capture. status |
Информация о статусе операции | Object | |
capture. status. value |
Строковое значение статуса | String | |
capture. status. changedDateTime |
Дата обновления статуса | URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ |
|
capture. status. reasonCode |
Код причины отклонения | String(200) | |
capture. status. reasonMessage |
Описание причины отклонения | String(200) | |
capture. status. errorCode |
Код ошибки | Number | |
capture. paymentMethod |
Информация о средстве платежа | Object | |
capture. paymentMethod. type |
Тип метода оплаты | String | |
capture. paymentMethod. maskedPan |
Маскированный PAN карты | String | |
capture. paymentMethod. rrn |
RRN платежа (по ISO 8583) | Number | |
capture. paymentMethod. authCode |
Auth-code платежа | Number | |
capture. merchantSiteUid |
Строковый идентификатор сайта ТСП в QIWI Кассе | String | |
capture. customer |
Информация о покупателе | Object | |
capture. customer. phone |
Номер телефона покупателя | String | |
capture. customer. |
E-mail покупателя | String | |
capture. customer. account |
Идентификатор покупателя в системе ТСП | String | |
capture. customer. ip |
IP адрес покупателя | String | |
capture. customer. country |
Страна адреса покупателя | String | |
capture. customFields |
Поля с произвольной информацией, дополняющей данные по операции | Object | |
capture. customFields. cf1 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | |
capture. customFields. cf2 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | |
capture. customFields. cf3 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | |
capture. customFields. cf4 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | |
capture. customFields. cf5 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | |
capture. flags |
Дополнительные команды, переданные в API | Array(Strings). Возможные элементы: SALE , REVERSAL |
|
capture. settlementAmount |
Сведения о сумме расчёта с мерчантом | Object | Если валюта платежа и расчёта с мерчантом различаются |
capture. settlementAmount. value |
Сумма расчёта с мерчантом | Number(6.2) | Если валюта платежа и расчёта с мерчантом различаются |
capture. settlementAmount. currency |
Идентификатор валюты расчёта с мерчантом (Alpha-3 ISO 4217 код) | String(3) | Если валюта платежа и расчёта с мерчантом различаются |
type | Тип уведомления — только CAPTURE |
String | |
version | Версия уведомлений | String |
Формат уведомления REFUND
HEADERS
- Signature: XXX
- Accept: application/json
- Content-type: application/json
Поле | Описание | Тип | В каких случаях используется |
---|---|---|---|
refund | Описание возврата | Object | Всегда |
refund. type |
Тип операции — только REFUND |
String(200) | Всегда |
refund. paymentId |
Идентификатор платежа в системе ТСП | String(200) | Всегда |
refund. refundId |
Идентификатор возврата в системе ТСП | String(200) | Всегда |
refund. createdDateTime |
Дата создания операции | URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ |
Всегда |
refund. amount |
Информация о сумме операции | Object | Всегда |
refund. amount. value |
Сумма операции, округленная до двух десятичных знаков в меньшую сторону | Number(6.2) | Всегда |
refund. amount. currency |
Идентификатор валюты операции (Alpha-3 ISO 4217 код) | String(3) | Всегда |
refund. billId |
ID счёта, соответствующего операции | String(200) | Всегда |
refund. status |
Информация о статусе операции | Object | Всегда |
refund. status. value |
Строковое значение статуса | String | Всегда |
refund. status. changedDateTime |
Дата обновления статуса | URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ |
Всегда |
refund. status. reasonCode |
Код причины отклонения | String(200) | В случае отклонения операции |
refund. status. reasonMessage |
Описание причины отклонения | String(200) | В случае отклонения операции |
refund. status. errorCode |
Код ошибки | Number | В случае ошибки |
refund. paymentMethod |
Информация о средстве платежа | Object | Всегда |
refund. paymentMethod. type |
Тип метода оплаты | String | Всегда |
refund. paymentMethod. maskedPan |
Маскированный PAN карты | String | Всегда |
refund. paymentMethod. rrn |
RRN платежа (по ISO 8583) | Number | Всегда |
refund. paymentMethod. authCode |
Auth-code платежа | Number | Всегда |
refund. merchantSiteUid |
Строковый идентификатор сайта ТСП в QIWI Кассе | String | Всегда |
refund. customer |
Информация о покупателе | Object | Всегда |
refund. customer. phone |
Номер телефона покупателя | String | Всегда |
refund. customer. |
E-mail покупателя | String | Всегда |
refund. customer. account |
Идентификатор покупателя в системе ТСП | String | Всегда |
refund. customer. ip |
IP адрес покупателя | String | Всегда |
refund. customer. country |
Страна адреса покупателя | String | Всегда |
refund. customFields |
Поля с произвольной информацией, дополняющей данные по операции | Object | Всегда |
refund. customFields. cf1 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | Всегда |
refund. customFields. cf2 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | Всегда |
refund. customFields. cf3 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | Всегда |
refund. customFields. cf4 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | Всегда |
refund. customFields. cf5 |
Поле с произвольной информацией, дополняющей данные по операции | String(256) | Всегда |
refund. flags |
Дополнительные команды, переданные в API | Array(Strings). Возможные элементы: SALE , REVERSAL |
Всегда |
refund. settlementAmount |
Сведения о сумме расчёта с мерчантом | Object | Если валюта платежа и расчёта с мерчантом различаются |
refund. settlementAmount. value |
Сумма расчёта с мерчантом | Number(6.2) | Если валюта платежа и расчёта с мерчантом различаются |
refund. settlementAmount. currency |
Идентификатор валюты расчёта с мерчантом (Alpha-3 ISO 4217 код) | String(3) | Если валюта платежа и расчёта с мерчантом различаются |
type | Тип уведомления — только REFUND |
String | Всегда |
version | Версия уведомлений | String | Всегда |
Формат уведомления CHECK_CARD
HEADERS
- Signature: XXX
- Accept: application/json
- Content-type: application/json
Пример тела уведомления CHECK_CARD
{
"checkPaymentMethod": {
"status": "SUCCESS",
"isValidCard": true,
"threeDsStatus": "PASSED",
"cardInfo": {
"issuingCountry": "RUS",
"issuingBank": "Альфа-банк",
"paymentSystem": "MASTERCARD",
"fundingSource": "PREPAID",
"paymentSystemProduct": "TNW|TNW|Mastercard® New World—Immediate Debit|TNW|Mastercard New World-Immediate Debit"
},
"createdToken": {
"token": "7653465767c78-a979-5bae621db96f",
"name": "54**********47",
"expiredDate": "2022-12-30T00:00:00+03:00",
"account": "acc1"
},
"requestUid": "uuid1-uuid2-uuid3-uuid4",
"paymentMethod": {
"type": "CARD",
"maskedPan": "54************47",
"cardHolder": null,
"cardExpireDate": "12/2022"
},
"checkOperationDate": "2021-08-16T14:15:07+03:00",
"merchantSiteUid": "test-00"
},
"type": "CHECK_CARD",
"version": "1"
}
Поле | Описание | Тип |
---|---|---|
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 |
version | Версия уведомлений | String |
Формат уведомления TOKEN
HEADERS
- Signature: XXX
- Accept: application/json
- Content-type: application/json
Уведомление об успешной привязке токена СБП
{
"token": {
"status": {
"value": "CREATED",
"changedDateTime": "2023-01-01T10:00:00+03:00"
},
"merchantSiteUid": "test-00",
"account": "test",
"value": "d28a4ff8-548d-4536-927d-fc01123bebbf",
"expiredDate": "2029-01-01T10:00:00+03:00",
"tokenizationSource": {
"type": "QR_CODE",
"uid": "100220001"
},
"bankMemberId": "100000000008"
},
"type": "TOKEN",
"version": "1"
}
Уведомление о неуспешной привязке токена СБП
{
"token": {
"status": {
"value": "REJECTED",
"changedDateTime": "2023-01-01T10:00:00+03:00"
},
"merchantSiteUid": "test-00",
"account": "test",
"tokenizationSource": {
"type": "QR_CODE",
"uid": "14012000011"
}
},
"type": "TOKEN",
"version": "1"
}
Поле | Описание | Тип | В каких случаях используется |
---|---|---|---|
token | Описание токена | Object | Всегда |
token. status |
Информация о статусе операции | Object | Всегда |
token. status. value |
Строковое значение статуса | String | Всегда |
token. status. changedDateTime |
Дата обновления статуса | URL-закодированная строкаГГГГ-ММ-ДДTчч:мм:ссZ |
Всегда |
token. status. rejectReason |
Причина отклонения | String | В случае отклонения операции |
token. merchantSiteUid |
ID поставщика | String | Всегда |
token. account |
Идентификатор покупателя, указанный при выпуске платёжного токена | String | Всегда |
token. value |
Платёжный токен | String | В случае успешной операции |
token. expiredDate |
Дата окончания срока действия платёжного токена. Формат даты соответствует стандарту ISO-8601: ГГГГ-ММ-ДДTчч:мм:сс±чч:мм |
String | В случае успешной операции |
token. tokenizationSource |
Информация об источнике токенизации | Object | Всегда |
token. tokenizationSource. type |
Тип источника токенизации | String | Всегда |
token. tokenizationSource. uid |
ID источника токенизации | String | Всегда |
token. bankMemberId |
Идентификатор банка покупателя | String | В случае успешной операции |
type | Тип уведомления — только TOKEN |
String | Всегда |
version | Версия уведомлений | String | Всегда |
Типы операций
Тип операции возвращается в поле {operation}.type
уведомления.
Тип операции | Описание |
---|---|
PAYMENT | Платёж. В уведомлении может присутствовать поле flags: [ "SALE" ] (обычный платёж) или flags: [ "AUTH" ] (платёж с холдированием средств). |
CAPTURE | Операция подтверждения. |
REFUND | Операция возврата. В уведомлении может присутствовать поле flags: [ "REVERSAL" ] . Это значит, что финансовой операции (списания средств со счёта покупателя) не было, комиссия по операции удержана не будет. |
Статусы операций
Статус операции отражает ее текущее состояние.
Ответы API
API возвращает синхронный статус операции в поле status.value
.
В таблице перечислены возможные статусы и типы операций, в которых эти статусы используются.
Тип операции | Статус операции | Описание статуса |
---|---|---|
PAYMENT | WAITING | Ожидание 3DS авторизации |
PAYMENT | DECLINED | Запрос авторизации отклонен (в синхронном ответе) |
PAYMENT | DECLINE | Запрос авторизации отклонен (в асинхронном ответе) |
PAYMENT | COMPLETED | Запрос авторизации успешно обработан |
CAPTURE | DECLINE | Запрос подтверждения отклонен |
CAPTURE | DECLINED | Запрос подтверждения отклонен (в ответе API на запрос статуса) |
CAPTURE | COMPLETED | Запрос подтверждения успешно обработан |
REFUND | DECLINE | Запрос возврата отклонен |
REFUND | COMPLETED | Запрос возврата успешно обработан |
Уведомления
В уведомлениях статус помещается в поле {operation}.status.value
.
В таблице перечислены возможные статусы и типы операций, в которых эти статусы используются.
Тип операции | Статус операции | Описание статуса |
---|---|---|
PAYMENT | DECLINE | Запрос авторизации отклонен |
PAYMENT | SUCCESS | Запрос авторизации успешно обработан |
CAPTURE | DECLINE | Запрос подтверждения отклонен |
CAPTURE | SUCCESS | Запрос подтверждения успешно обработан |
REFUND | DECLINE | Запрос возврата отклонен |
REFUND | SUCCESS | Запрос возврата успешно обработан |
Ошибки
HTTP-коды ошибок
Протокол приёма платежей использует для запросов 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 описывают причину отклонения операции и передаются:
- в ответах на запросы — в поле
status.reason
; - в уведомлениях — в поле
status.reasonCode
.
Некоторые ошибки API сопровождаются детализацией ошибки и рекомендованными действиями, полученными от платёжной системы в поле status.psErrorCode
.
Ошибка API | Описание |
---|---|
INVALID_STATE | Некорректный статус транзакции |
INVALID_AMOUNT | Некорректная сумма |
INVALID_RECEIVER_DATA | Ошибка при передаче данных о получателе |
DECLINED_BY_MPI | Отклонено MPI |
DECLINED_BY_FRAUD | Отклонено fraud-мониторингом |
REATTEMPT_NOT_PERMITTED | Повторный запрос авторизации запрещен на основании правил Платёжной системы |
REATTEMPT_NOT_PERMITTED_BY_PS | Операция отклонена платёжной системой. Детализация ошибки содержится в поле status.psErrorCode . По данной карте повторная операция невозможна |
GATEWAY_INTEGRATION_ERROR | Ошибка взаимодействия с банком |
GATEWAY_TECHNICAL_ERROR | Техническая ошибка на стороне банка |
ACQUIRING_MPI_TECH_ERROR | Техническая ошибка при проведении 3DS аутентификации |
ACQUIRING_GATEWAY_TECH_ERROR | Техническая ошибка |
ACQUIRING_ACQUIRER_ERROR | Техническая ошибка |
ACQUIRING_AUTH_TECHNICAL_ERROR | Ошибка при проведении авторизации средств |
ACQUIRING_ISSUER_NOT_AVAILABLE | Ошибка эмитента. Банк-эмитент не доступен |
ACQUIRING_SUSPECTED_FRAUD | Ошибка эмитента. Подозрение на мошенничество |
ACQUIRING_LIMIT_EXCEEDED | Ошибка эмитента. Превышен один из лимитов |
ACQUIRING_NOT_PERMITTED | Ошибка эмитента. Операция не разрешена |
ACQUIRING_INCORRECT_CVV | Ошибка эмитента. Некорректный CVV |
ACQUIRING_EXPIRED_CARD | Ошибка эмитента. Неверный срок действия карты |
ACQUIRING_INVALID_CARD | Ошибка эмитента. Проверьте корректность введенных данных |
ACQUIRING_INSUFFICIENT_FUNDS | Ошибка эмитента. Недостаточно средств |
ACQUIRING_UNKNOWN | Неизвестная ошибка |
BILL_ALREADY_PAID | Счёт уже оплачен |
PAYIN_PROCESSING_ERROR | Ошибка при проведении платежа |
PAYMENT_EXPIRED_3DS | Не пройдена 3DS-аутентификация |
TRY_AGAIN_LATER | Повторите запрос через некоторое время |
Ошибки операции выплаты
Ошибка API | Описание |
---|---|
GATEWAY_TECHNICAL_ERROR | Неизвестная техническая ошибка, попробуйте повторить запрос еще раз |
MERCHANT_SETTINGS_ERROR | Ошибка в настройках мерчанта, обратитесь в Службу поддержки |
DECLINED_BY_FRAUD | Отклонено fraud-мониторингом |
DECLINED_BY_PAYOUT_GATEWAY | Отклонено выплатным шлюзом |
Справочник кодов детализации ошибки
Коды детализации ошибки и рекомендованных действий, полученные от платёжной системы, возвращаются в поле 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 | Клиенту может быть рекомендовано повторить попытку совершения операции после пополнения счёта |
54 | ACQUIRING_EXPIRED_CARD | Срок действия карты отсутствует или передан неверно |
57 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция данного типа недоступна для карты |
58 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция данного типа недоступна для эквайера |
61 | ACQUIRING_LIMIT_EXCEEDED | Клиенту может быть рекомендовано повторить попытку совершения операции в другой день — после переустановки Эмитентом лимита по общей сумме операций данного типа |
62 | REATTEMPT_NOT_PERMITTED_BY_PS | Операция недоступна из-за ограничений на карте или счёте Держателя карты |
63 | ACQUIRING_NOT_PERMITTED | Операция отклонена, обратитесь в Qiwi за дополнительной информацией |
65 | ACQUIRING_LIMIT_EXCEEDED | Клиенту может быть рекомендовано повторить попытку совершения операции в другой день — после переустановки Эмитентом лимита по общему количеству операций данного типа |
75 | ACQUIRING_INCORRECT_CVV | Отклонение запроса по причине неверного ввода PIN-кода ранее |
76 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение отмены запроса из-за отсутствия оригинального запроса |
78 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение запроса из-за попытки использования закрытой карты |
86 | ACQUIRING_INCORRECT_CVV | Отклонение запроса по причине неверного ввода PIN-кода ранее |
88 | ACQUIRING_AUTH_TECHNICAL_ERROR | Отклонение запроса из-за ошибки криптографии, может возникнуть из-за неправильного CVV2/CVC2 |
91 | ACQUIRING_ISSUER_NOT_AVAILABLE | Клиенту может быть рекомендовано повторить попытку совершения операции в другое время — после восстановления работоспособности Эмитента |
92 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение Платёжной Системой из-за невозможности проведения операции |
93 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение запроса по причине нарушения требований законодательства |
94 | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение задублированного запроса |
96 | ACQUIRING_NOT_PERMITTED | Клиенту может быть рекомендовано повторить попытку совершения операции в другое время — после восстановления работоспособности Эмитента или Платформы |
TS | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение запроса в связи с отменой длительного поручения Держателя карты |
CB | ACQUIRING_ACQUIRER_ERROR | Отклонение запроса из-за некорректной даты рождения Держателя карты |
CD | REATTEMPT_NOT_PERMITTED_BY_PS | Отклонение запроса по причине смерти Держателя карты |
Правила работы с детализированной информацией
Существуют две группы кодов ошибок:
- Группа 1:
03
,04
,12
,15
,33
,41
,43
,57
,58
,62
,76
,78
,92
,93
,94
,CD
,TS
,05
. - Группа 2:
13
,14
,30
,54
,51
,61
,63
,65
,75
,86
,88
,91
,96
,CB
.
По правилам НСПК действуют следующие условия совершения повторов транзакций с non-3DS авторизацией по картам платёжной системы МИР:
- После ответа из группы 1 проводить транзакции больше нельзя в течение суток.
- После ответа из группы 2 разрешается ещё одна попытка проведения транзакций в течение суток.
Ограничения применяются в отношении конечного получателя, в случае если нами были получены соответствующие коды ответа.
Справочник методов API
Создание счёта
Пример создания счёта
PUT /partner/payin/v1/sites/site-01/bills/893794793973 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"amount": {
"currency": "RUB",
"value": 100.00
},
"billPaymentMethodsType": [
"SBP"
],
"comment": "Text comment",
"expirationDateTime": "2022-04-13T14:30:00+03:00",
"customer": {},
"customFields": {
"cf1": "Some data"
}
}
Пример успешного ответа на запрос создания счёта
{
"billId": "893794793973",
"invoiceUid": "d875277b-6f0f-445d-8a83-f62c7c07be77",
"amount": {
"value": "100.00",
"currency": "RUB"
},
"status": {
"value": "CREATED",
"changedDateTime": "2022-04-05T11:27:41"
},
"comment": "Text comment",
"customFields": {
"cf1": "Some data"
},
"creationDateTime": "2022-03-05T11:27:41",
"expirationDateTime": "2022-04-13T14:30:00",
"payUrl": "https://payment.qiwi.com/form/?invoice_uid=d875277b-6f0f-445d-8a83-f62c7c07be77"
}
Пример ответа если счёт уже существует и у него истек срок оплаты
{
"billId": "12345",
"invoiceUid": "3b39ad6d-f111-401d-8108-ed11af920a65",
"amount": {
"currency": "RUB",
"value": "1.00"
},
"expirationDateTime": "2023-03-21T13:02:00+03:00",
"status": {
"value": "EXPIRED",
"changedDateTime": "2023-03-21T13:02:00+03:00"
},
"comment": "Text comment",
"flags": [
"TEST"
],
"payUrl": "https://payment.qiwi.com/form?invoiceUid=3b39ad6d-f211-401d-8008-ed11af920a65"
}
Пример ответа с ошибкой 4xx на запрос создания счёта
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2022-03-05T11:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Получение информации о счёте
Пример запроса статуса счёта
GET /partner/payin/v1/sites/site-01/bills/3a3d0286cefe645d2b11/details HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
Пример успешного ответа на запрос статуса счёта
{
"billId": "3a3d0286cefe645d2b11",
"invoiceUid": "235d8d5a-38ed-11fc-9ab6-8b5a65d7e2f8",
"amount": {
"currency": "RUB",
"value": "3000.00"
},
"expirationDateTime": "2023-05-07T19:25:36+03:00",
"status": {
"value": "PAID",
"changedDateTime": "2023-04-07T19:28:12+03:00"
},
"comment": "Детская футбольная школа «Тигры»",
"flags": [
"SALE"
],
"payUrl": "https://payment.qiwi.com/form?invoiceUid=235d8d5a-11ed-46fc-9ab6-8b5a65d7e2f8",
"payments": [
{
"paymentId": "cd4a4ade-011e6-484d-87c8-40a7f48326fa",
"billId": "3a3d0286cefe645d2b11",
"createdDateTime": "2023-04-07T19:27:52+03:00",
"amount": {
"currency": "RUB",
"value": "3000.00"
},
"capturedAmount": {
"currency": "RUB",
"value": "3000.00"
},
"refundedAmount": {
"currency": "RUB",
"value": "0.00"
},
"paymentMethod": {
"type": "CARD",
"maskedPan": "422264******1232",
"rrn": "309711196151",
"authCode": "231181"
},
"status": {
"value": "COMPLETED",
"changedDateTime": "2023-04-07T19:28:12+03:00"
},
"comment": "Детская футбольная школа «Тигры»",
"customFields": {
"auto_capture": "true",
"invoice_creation_type": "PUBLIC_KEY"
},
"paymentCardInfo": {
"issuingCountry": "643",
"issuingBank": "Сбербанк России",
"paymentSystem": "VISA",
"fundingSource": "DEBIT",
"paymentSystemProduct": "N1|Visa Rewards"
}
},
{
"paymentId": "A30971626215731E01110841111138B2",
"billId": "3a3d0286cefe645d2b11",
"createdDateTime": "2023-04-07T19:26:21+03:00",
"amount": {
"currency": "RUB",
"value": "3000.00"
},
"capturedAmount": {
"currency": "RUB",
"value": "3000.00"
},
"refundedAmount": {
"currency": "RUB",
"value": "0.00"
},
"paymentMethod": {
"type": "SBP",
"phone": "0079031232001"
},
"status": {
"value": "DECLINED",
"changedDateTime": "2023-04-07T19:26:23+03:00",
"reason": "GATEWAY_INTEGRATION_ERROR",
"reasonMessage": "I07999 OPKC_TECH_ERROR"
},
"comment": "Детская футбольная школа «Тигры»",
"customFields": {
"auto_capture": "true",
"invoice_creation_type": "PUBLIC_KEY"
}
}
]
}
Пример ответа с ошибкой 4xx на запрос статуса счёта
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2022-03-05T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Получение списка платежей по счёту
Пример запроса на получение списка платежей по счёту
GET /partner/payin/v1/sites/site-01/bills/3a3d0286cefe645d2b00 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
Пример успешного ответа на запрос списка платежей по счёту
[
{
"paymentId": "cd4a4ade-12e6-484d-87c8-40a7f48326fa",
"billId": "3a3d0286cefe645d2b11",
"createdDateTime": "2023-04-07T19:27:52+03:00",
"amount": {
"currency": "RUB",
"value": "3000.00"
},
"capturedAmount": {
"currency": "RUB",
"value": "3000.00"
},
"refundedAmount": {
"currency": "RUB",
"value": "0.00"
},
"paymentMethod": {
"type": "CARD",
"maskedPan": "422264******1232",
"rrn": "309711234151",
"authCode": "232481"
},
"status": {
"value": "COMPLETED",
"changedDateTime": "2023-04-07T19:28:12+03:00"
},
"comment": "Детская футбольная школа «Тигры»",
"customFields": {
"auto_capture": "true",
"invoice_creation_type": "PUBLIC_KEY"
},
"paymentCardInfo": {
"issuingCountry": "643",
"issuingBank": "Сбербанк России",
"paymentSystem": "VISA",
"fundingSource": "DEBIT",
"paymentSystemProduct": "N1|Visa Rewards"
}
},
{
"paymentId": "A30971626215731E000008415C2D38B2",
"billId": "3a3d0286cefe645d2b00",
"createdDateTime": "2023-04-07T19:26:21+03:00",
"amount": {
"currency": "RUB",
"value": "3000.00"
},
"capturedAmount": {
"currency": "RUB",
"value": "3000.00"
},
"refundedAmount": {
"currency": "RUB",
"value": "0.00"
},
"paymentMethod": {
"type": "SBP",
"phone": "0079099922001"
},
"status": {
"value": "DECLINED",
"changedDateTime": "2023-04-07T19:26:23+03:00",
"reason": "GATEWAY_INTEGRATION_ERROR",
"reasonMessage": "I07999 OPKC_TECH_ERROR"
},
"comment": "Детская футбольная школа «Тигры»",
"customFields": {
"auto_capture": "true",
"invoice_creation_type": "PUBLIC_KEY"
}
}
]
Пример ответа с ошибкой 4xx на запрос получения списка платежей по счёту
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Создание платежа
Пример платежа
PUT /partner/payin/v1/sites/test-01/payments/1811 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"billId": "string",
"amount": {
"currency": "RUB",
"value": 200.00
},
"paymentMethod" : {
"type" : "CARD",
"pan" : "4444443616621049",
"expiryDate" : "12/19",
"cvv2" : "123",
"holderName" : "CARDHOLDER NAME",
"cardTokenPaymentType" : "INSTALLMENT",
"firstTransaction" : {
"paymentId" : "testPaymentId28"
}
},
"callbackUrl": "https://example.com/callbacks",
"comment": "Example payment",
"customer": {
"account": "string",
"address": {
"city": "Moscow",
"country": "Russian Federation",
"details": "Severnoe chertanovo microdistrict 1a 1",
"region": "Moscow city"
},
"email": "customer@example.com",
"phone": "+79991234567"
},
"deviceData": {
"datetime": "2017-09-03T14:30:00+03:00",
"fingerprint": "TW96aWxsYS81LjAgKHBsYXRmb3JtOyBydjpnZWNrb3ZlcnNpb24p",
"ip": "127.0.0.1",
"screenResolution": "1280x1024",
"timeOnPage": 1440,
"userAgent": "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion"
},
"customFields": {
"cf1": "Some data"
},
"flags": [
"SALE"
]
}
Пример успешного ответа на запрос платежа
{
"paymentId" : "223E",
"createdDateTime" : "2024-03-01T17:10:31.284+03:00",
"amount" : {
"currency" : "RUB",
"value" : "200.00"
},
"capturedAmount" : {
"currency" : "RUB",
"value" : "0.00"
},
"refundedAmount" : {
"currency" : "RUB",
"value" : "0.00"
},
"paymentMethod" : {
"type" : "CARD",
"maskedPan" : "444444******1049"
},
"customer" : { },
"deviceData" : { },
"requirements" : {
"threeDS" : {
"pareq" : "eJyrrgUAAXUA+Q==",
"acsUrl" : "https://test.paymentgate.ru/acs/auth/start.do"
}
},
"status" : {
"value" : "WAITING",
"changedDateTime" : "2024-03-01T17:10:32.607+03:00"
},
"paymentCardInfo": {
"issuingCountry": "810",
"issuingBank": "QiwiBank",
"paymentSystem": "VISA",
"fundingSource": "CREDIT",
"paymentSystemProduct": "P|Visa Gold"
},
"callbackUrl": "https://example.com/callbacks",
"customFields" : {
"cf1": "Some data"
},
"flags" : [ ]
}
Пример ответа с ошибкой 4xx на запрос платежа
{
"serviceName":"payin-core",
"errorCode":"validation.error",
"description":"Validation error",
"userMessage":"Validation error",
"dateTime":"2022-11-13T16:49:59.166+03:00",
"traceId":"fd0e2a08c63ace83",
"cause":{
"paymentToken": [
"Exchange token error. Token disabled, please create new one"
]
}
}
Пример ответа с ошибкой 5xx на запрос платежа
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Получение информации о платеже
Пример запроса статуса платежа
GET /partner/payin/v1/sites/test-01/payments/1811 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
Пример успешного ответа на запрос статуса платежа
{
"paymentId" : "223E",
"createdDateTime" : "2024-03-01T17:10:31.284+03:00",
"amount" : {
"currency" : "RUB",
"value" : "200.00"
},
"capturedAmount" : {
"currency" : "RUB",
"value" : "0.00"
},
"refundedAmount" : {
"currency" : "RUB",
"value" : "0.00"
},
"paymentMethod" : {
"type" : "CARD",
"maskedPan" : "444444******1049",
"rrn": "124",
"authCode": "182817",
},
"customer" : { },
"deviceData" : { },
"requirements" : {
"threeDS" : {
"pareq" : "eJyrrgUAAXUA+Q==",
"acsUrl" : "https://test.paymentgate.ru/acs/auth/start.do"
}
},
"status" : {
"value" : "WAITING",
"changedDateTime" : "2024-03-01T17:10:32.607+03:00"
},
"customFields" : { },
"flags" : [ ]
}
Пример ответа с ошибкой 4xx на запрос статуса платежа
{
"serviceName":"payin-core",
"errorCode":"validation.error",
"description":"Validation error",
"userMessage":"Validation error",
"dateTime":"2022-11-13T16:49:59.166+03:00",
"traceId":"fd0e2a08c63ace83",
"cause":{
"paymentToken": [
"Exchange token error. Token disabled, please create new one"
]
}
}
Пример ответа с ошибкой 5xx на запрос статуса платежа
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Завершение аутентификации покупателя
Пример завершения аутентификации покупателя
POST /partner/payin/v1/sites/test-01/payments/1811/complete HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"threeDS": {
"pares": "eJzVWFevo9iyfu9fMZrzaM0QjWHk3tIiGptgooE3cgabYMKvv3jvTurTc3XOfbkaJMuL...."
}
}
Пример успешного ответа на запрос завершения аутентификации покупателя
{
"paymentId" : "223E",
"createdDateTime" : "2024-03-01T17:10:31.284+03:00",
"amount" : {
"currency" : "RUB",
"value" : "200.00"
},
"capturedAmount" : {
"currency" : "RUB",
"value" : "0.00"
},
"refundedAmount" : {
"currency" : "RUB",
"value" : "0.00"
},
"paymentMethod" : {
"type" : "CARD",
"maskedPan" : "444444******1049"
},
"customer" : { },
"deviceData" : { },
"requirements" : {
"threeDS" : {
"pareq" : "eJyrrgUAAXUA+Q==",
"acsUrl" : "https://test.paymentgate.ru/acs/auth/start.do"
}
},
"status" : {
"value" : "COMPLETED",
"changedDateTime" : "2024-03-01T17:10:32.607+03:00"
},
"customFields" : { },
"flags" : [ ]
}
Пример ответа с ошибкой 4xx на запрос завершения аутентификации покупателя
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос завершения аутентификации покупателя
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Подтверждение платежа
Пример подтверждения платежа
PUT /partner/payin/v1/sites/test-01/payments/1811/captures/bxwd8096 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"callbackUrl": "https://example.com/callbacks",
"comment": "Example capture"
}
Пример успешного ответа на запрос подтверждения платежа
{
"captureId": "bxwd8096",
"createdDateTime": "2024-03-20T16:29:58.96+03:00",
"amount": {
"currency": "RUB",
"value": "6.77"
},
"status": {
"value": "COMPLETED",
"changedDateTime": "2024-03-20T16:29:58.963+03:00"
}
}
Пример ответа с ошибкой 4xx на запрос подтверждения платежа
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос подтверждения платежа
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Получение информации о подтверждении платежа
Пример запроса статуса подтверждения
GET /partner/payin/v1/sites/test-01/payments/1811/captures/bxwd8096 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
Пример успешного ответа на запрос статуса подтверждения
{
"captureId": "bxwd8096",
"createdDateTime": "2024-03-20T16:29:58.96+03:00",
"amount": {
"currency": "RUB",
"value": "6.77"
},
"status": {
"value": "COMPLETED",
"changedDateTime": "2024-03-20T16:29:58.963+03:00"
}
}
Пример ответа с ошибкой 4xx на запрос статуса подтверждения
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос статуса подтверждения
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Создание QR-кода СБП
Метод POST
Пример получения QR-кода СБП (метод POST)
POST /partner/payin/v1/sites/test-01/sbp/qrCodes HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"qrCodeUid": "Test12",
"amount": {
"value": 1.00,
"currency": "RUB"
},
"qrCode": {
"type": "DYNAMIC",
"ttl": 60,
"image": {
"mediaType": "image/png",
"width": 300,
"height": 300
}
},
"paymentPurpose": "Flower for my girlfriend",
"redirectUrl": "http://example.com"
}
Пример успешного ответа на запрос получения QR-кода СБП
{
"qrCodeUid": "Test12",
"amount": {
"currency": "RUB",
"value": "1.00"
},
"qrCode": {
"type": "DYNAMIC",
"ttl": 60,
"image": {
"mediaType": "image/png",
"width": 300,
"height": 300,
"content": "iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAA"
},
"payload": "https://qr.nspk.ru/AD10006M8KH234K782OQM0L13JI31LQD?type=02&bank=100000000009&sum=200&cur=RUB&crc=C63A",
"status": "CREATED"
},
"createdOn": "2022-08-11T20:10:32+03:00"
}
Пример ответа с ошибкой 4xx на запрос получения QR-кода СБП
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос получения QR-кода СБП
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Метод PUT
Пример получения QR-кода СБП (метод PUT)
PUT /partner/payin/v1/sites/test-01/sbp/qrCodes/Test12 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"amount": {
"value": 1.00,
"currency": "RUB"
},
"qrCode": {
"type": "DYNAMIC",
"ttl": 60,
"image": {
"mediaType": "image/png",
"width": 300,
"height": 300
}
},
"paymentPurpose": "Flower for my girlfriend",
"redirectUrl": "http://example.com"
}
Пример успешного ответа на запрос получения QR-кода СБП
{
"qrCodeUid": "Test12",
"amount": {
"currency": "RUB",
"value": "1.00"
},
"qrCode": {
"type": "DYNAMIC",
"ttl": 60,
"image": {
"mediaType": "image/png",
"width": 300,
"height": 300,
"content": "iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAA"
},
"payload": "https://qr.nspk.ru/AD10006M8KH234K782OQM0L13JI31LQDtype=02bank=100000000009&sum=200&cur=RUB&crc=C63A",
"status": "CREATED"
},
"createdOn": "2022-08-11T20:10:32+03:00"
}
Пример ответа с ошибкой 4xx на запрос получения QR-кода СБП
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос получения QR-кода СБП
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Получение информации о QR-коде СБП
Пример запроса статуса QR-кода СБП
GET /partner/payin/v1/sites/test-01/sbp/qrCodes/Test HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
Пример успешного ответа на запрос статуса QR-кода СБП
{
"qrCodeUid": "Test",
"amount": {
"currency": "RUB",
"value": "1.00"
},
"qrCode": {
"type": "DYNAMIC",
"ttl": 60,
"payload": "https://qr.nspk.ru/AD10006M8KH234K782OQM0L13JI31LQDtype=02bank=100000000009&sum=200&cur=RUB&crc=C63A",
"status": "PAYED"
},
"payment": {
"paymentUid": "A22231710446971300200933E625FCB3",
"paymentStatus": "COMPLETED"
},
"createdOn": "2022-08-11T20:10:32+03:00"
}
Пример ответа с ошибкой 4xx на запрос статуса QR-кода СБП
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос статуса QR-кода СБП
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Удаление платёжного токена
Пример удаления платёжного токена
DELETE /partner/payin/v1/sites/test-01/tokens HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"customerAccountId": "customer123",
"token": "c5ba4a05-21c9-4a36-af7a-b709b4caa4d6"
}
Пример успешного ответа на запрос удаления токенв
HTTP/1.1 204 No Content
Пример ответа с ошибкой 4xx на запрос удаления токена
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос удаления токена
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Оплата токеном СБП
Пример платежа токеном СБП
POST /partner/payin/v1/sites/test-01/sbp/qrCodes/adghj17d1g8/payments HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"tokenizationAccount": "customer123",
"token": "c5ba4a05-21c9-4a36-af7a-b709b4caa4d6"
}
Пример успешного ответа на запрос платежа токеном СБП
{
"qrCodeUid": "adghj17d1g8",
"amount": {
"value": "100.00",
"currency": "RUB"
},
"paymentPurpose": "Flower for my girlfriend",
"redirectUrl": "http://someurl.com",
"qrCode": {
"type": "DYNAMIC",
"ttl": 999,
"status": "INIT_PAYMENT_BY_TOKEN",
"payload": ""
}
}
Пример ответа с ошибкой 4xx на запрос платежа токеном СБП
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос платежа токеном СБП
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Отмена и возврат
Пример возврата по платежу
PUT /partner/payin/v1/sites/test-01/payments/1811/refunds/tcwv3132 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"amount": {
"value": 2.34,
"currency": "RUB"
}
}
Пример успешного ответа на запрос возврата по платежу
{
"refundId": "tcwv3132",
"createdDateTime": "2024-03-20T16:32:55.547+03:00",
"amount": {
"currency": "RUB",
"value": "2.34"
},
"status": {
"value": "COMPLETED",
"changedDateTime": "2024-03-20T16:32:55.55+03:00"
},
"flags": [
"REVERSAL"
]
}
Пример ответа с ошибкой 4xx на запрос возврата
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос возврата
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Получение информации об отмене или возврате
Пример запроса статуса возврата
GET /partner/payin/v1/sites/test-01/payments/1811/refunds/tcwv3132 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
Пример успешного ответа на запрос статуса возврата по платежу
{
"refundId": "tcwv3132",
"createdDateTime": "2024-03-20T16:32:55.547+03:00",
"amount": {
"currency": "RUB",
"value": "2.34"
},
"status": {
"value": "COMPLETED",
"changedDateTime": "2024-03-20T16:32:55.55+03:00"
},
"flags": [
"REVERSAL"
]
}
Пример ответа с ошибкой 4xx на запрос статуса возврата
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Получение информации обо всех отменах и возвратах
Пример запроса статуса всех возвратов по платежу
GET /partner/payin/v1/sites/test-01/payments/1811/refunds HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
Пример успешного ответа на запрос статуса всех возвратов по платежу
[
{
"refundId": "tcwv3132",
"createdDateTime": "2024-03-20T16:32:55.547+03:00",
"amount": {
"currency": "RUB",
"value": "2.34"
},
"status": {
"value": "COMPLETED",
"changedDateTime": "2024-03-20T16:32:55.55+03:00"
},
"flags": [
"REVERSAL"
]
}
]
Пример ответа с ошибкой 4xx на запрос статуса всех возвратов по платежу
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос статуса всех возвратов по платежу
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Проверка карты
Пример проверки карты
PUT /partner/payin/v1/sites/test-01/validation/card/requests/acd7bf20-22e2-4cbf-a218-38d90e9f29b9 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"cardData": {
"pan": "1111222233334444",
"expiryDate": "12/34",
"cvv2": "123",
"holderName": "Super Man"
},
"tokenizationData": {
"account": "cat_girl"
}
}
Пример успешного ответа на запрос проверки карты
{
"requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
"status": "SUCCESS",
"isValidCard": true,
"threeDsStatus": "WITHOUT",
"checkOperationDate": "2025-03-25T12:55:12+03:00",
"cardInfo": {
"issuingCountry": "643",
"issuingBank": "Gazprombank",
"paymentSystem": "MIR",
"fundingSource": "DEBIT",
"paymentSystemProduct": "details"
},
"createdToken": {
"token": "1a77343a-dd8a-11eb-ba80-0242ac130004",
"name": "111122******4444",
"expiredDate": "2034-12-31T00:00:00+03:00",
"account": "cat_girl"
}
}
Пример ответа с ошибкой 4xx на запрос проверки карты
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос проверки карты
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Статус проверки карты
Пример запроса статуса проверки карты
GET /partner/payin/v1/sites/test-01/validation/card/requests/acd7bf20-22e2-4cbf-a218-38d90e9f29b9 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
Пример успешного ответа на запрос статуса проверки карты
{
"requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
"status": "SUCCESS",
"isValidCard": true,
"threeDsStatus": "WITHOUT",
"checkOperationDate": "2025-03-25T12:55:12+03:00",
"cardInfo": {
"issuingCountry": "643",
"issuingBank": "Gazprombank",
"paymentSystem": "MIR",
"fundingSource": "DEBIT",
"paymentSystemProduct": "details"
},
"createdToken": {
"token": "1a77343a-dd8a-11eb-ba80-0242ac130004",
"name": "111122******4444",
"expiredDate": "2034-12-31T00:00:00+03:00",
"account": "cat_girl"
}
}
Пример ответа с ошибкой 4xx на запрос статуса проверки карты
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос статуса проверки карты
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}
Завершение аутентификации при проверке карты
Пример завершения аутентификации при проверке карты
POST /partner/payin/v1/sites/test-01/validation/card/requests/acd7bf20-22e2-4cbf-a218-38d90e9f29b9/complete HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"pares": "eJzVWFevo9iyfu9fMZrzaM0QjWHk3tIiGptgooE3cgabYMKvv3jvTurTc3XOfbkaJMuL...."
}
Пример успешного ответа на запрос завершения аутентификации при проверке карты
{
"requestUid": "acd7bf20-22e2-4cbf-a218-38d90e9f29b9",
"status": "SUCCESS",
"isValidCard": true,
"threeDsStatus": "PASSED",
"checkOperationDate": "2025-03-25T12:55:12+03:00",
"cardInfo": {
"issuingCountry": "643",
"issuingBank": "Gazprombank",
"paymentSystem": "MIR",
"fundingSource": "DEBIT",
"paymentSystemProduct": "details"
},
"createdToken": {
"token": "1a77343a-dd8a-11eb-ba80-0242ac130004",
"name": "111122******4444",
"expiredDate": "2034-12-31T00:00:00+03:00",
"account": "cat_girl"
}
}
Пример ответа с ошибкой 4xx на запрос завершения аутентификации при проверке карты
{
"serviceName" : "payin-core",
"errorCode" : "validation.error",
"description" : "Validation error",
"userMessage" : "Validation error",
"dateTime" : "2024-03-13T16:49:59.166+03:00",
"traceId" : "fd0e2a08c63ace83"
}
Пример ответа с ошибкой 5xx на запрос завершения аутентификации при проверке карты
{
"serviceName":"payin-core",
"errorCode":"internal.error",
"userMessage":"Internal error",
"description":"Internal error",
"traceId":"3fb3420ee1795dcf",
"dateTime":"2020-02-12T21:28:01.813+03:00"
}