Вопросы
bss@qiwi.com
NAV Navbar
Примеры

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"
    }
}
  1. Отправьте запрос API "Проверка карты". В запросе укажите:
    • Уникальный в рамках вашего сайта идентификатор проверки (requestUid в URL запроса).
    • Данные карты (cardData в теле запроса). Обязательные параметры — PAN, срок действия и CVV2.

    Для генерации платежного токена в запросе должен быть указан параметр tokenizationData.account — уникальный идентификатор покупателя в системе ТСП.

  2. В ответе информация о доступности карты для списаний содержится в атрибуте isValidCard (true — карта доступна). Если isValidCard=true и запрошен выпуск платежного токена, то платежный токен возвращается в объекте createdToken.

Чтобы убедиться, что номер карты ввел именно держатель карты, используется дополнительная аутентификация покупателя 3-D Secure. Включение/отключение 3DS производится на строне банка, выпустившего карту. Если 3DS включен, то в ответе на запрос проверки карты вы получите объект "requirements" с ACS URL для перенаправления покупателя (в поле status будет значение "WAITING_3DS").

Сценарий дополнительной аутентификации аналогичен операции покупки:

  1. Перенаправьте покупателя на страницу аутентификации.
  2. Завершите 3-D Secure запросом "Завершение 3DS при проверке карты". В запросе укажите тот же идентификатор проверки, что и в исходном запросе проверки карты.
  3. Если проверка 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 для выпуска платежного токена:

Чтобы гарантировать безопасность карточных данных, используйте разные параметры account для разных покупателей.

Вы получите информацию о платежном токене карты:

Либо воспользуйтесь запросом Платеж или Создание счета. В запросе укажите дополнительные параметры:

Чтобы гарантировать безопасность карточных данных, используйте разные параметры account для разных покупателей.

Вы получите информацию о платежном токене карты:

Удаление платежного токена

Чтобы прекратить действие платежного токена карты, отправьте запрос API Удаление платёжного токена. В JSON-теле запроса укажите параметры:

Успешный ответ с HTTP-статусом 204 означает, что платежный токен для указанного покупателя больше не действует.

Серверные уведомления

Формат уведомления PAYMENT

Пример тела уведомления 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.
email
E-mail покупателя String Всегда
payment.
customer.
account
Идентификатор покупателя в системе ТСП String Всегда
payment.
customer.
ip
IP адрес покупателя String Всегда
payment.
customer.
country
Страна адреса покупателя String Всегда
payment.
customer.
bankAccountNumber
Номер счёта плательщика String Только для платежей через СБП
payment.
customer.
bic
БИК банка, выпустившего карту String Только для платежей через СБП
payment.
customer.
lastName
Фамилия покупателя String Только для платежей через СБП
payment.
customer.
firstName
Имя покупателя String Только для платежей через СБП
payment.
customer.
middleName
Отчество покупателя String Только для платежей через СБП
payment.
customer.
simpleAddress
Адрес покупателя String Только для платежей через СБП
payment.
customer.
inn
ИНН покупателя String Только для платежей через СБП
payment.
customer.
bankMemberId
Идентификатор банка покупателя String Только для платежей через СБП
payment.
customFields
Поля с произвольной информацией, дополняющей данные по операции Object Всегда
payment.
customFields.
cf1
Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.
customFields.
cf2
Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.
customFields.
cf3
Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.
customFields.
cf4
Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.
customFields.
cf5
Поле с произвольной информацией, дополняющей данные по операции String(256) Всегда
payment.
flags
Дополнительные команды, переданные в API Массив. Возможные элементы: SALE, REVERSAL Всегда
payment.
tokenData
Объект с информацией о выпущенном платёжном токене Object Если в платеже был запрошен выпуск платёжного токена
payment.
tokenData.
paymentToken
Строка платёжного токена String Если в платеже был запрошен выпуск платёжного токена
payment.
tokenData.
expiredDate
Дата окончания срока действия платёжного токена. Формат даты соответствует стандарту ISO-8601:
ГГГГ-ММ-ДДTчч:мм:сс±чч:мм
String Если в платеже был запрошен выпуск платёжного токена
payment.
settlementAmount
Сведения о сумме расчёта с мерчантом Object Если валюта платежа и расчёта с мерчантом различаются
payment.
settlementAmount.
value
Сумма расчёта с мерчантом Number(6.2) Если валюта платежа и расчёта с мерчантом различаются
payment.
settlementAmount.
currency
Идентификатор валюты расчёта с мерчантом (Alpha-3 ISO 4217 код) String(3) Если валюта платежа и расчёта с мерчантом различаются
type Тип уведомления — только PAYMENT String Всегда
version Версия уведомлений String Всегда

Формат уведомления CAPTURE

Пример тела уведомления 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.
email
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

Поле Описание Тип В каких случаях используется
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.
email
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

Пример тела уведомления 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

Уведомление об успешной привязке токена СБП

{
  "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 описывают причину отклонения операции и передаются:

Некоторые ошибки 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 Отклонение запроса по причине смерти Держателя карты

Правила работы с детализированной информацией

Существуют две группы кодов ошибок:

По правилам НСПК действуют следующие условия совершения повторов транзакций с non-3DS авторизацией по картам платёжной системы МИР:

Ограничения применяются в отношении конечного получателя, в случае если нами были получены соответствующие коды ответа.

Справочник методов 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"
}