Перейти к содержанию

Оплата с помощью СБП

Общие сведения

Партнёр может реализовать оплату с собственной платёжной формы с помощью Системы быстрых платежей (СБП). В этом случае клиент оплачивает заказ без ввода данных банковской карты: сканирует QR-код и получает ссылку на платеж, которую можно открыть в приложении банка. Для подключения этого способа оплаты обратитесь в службу поддержки.

Обратите внимание

Подключение нового способа оплаты предполагает, что партнёр уже реализовал сценарий «Оплата с формы партнёра».

Проведение оплаты

Для проведения оплаты с помощью СБП необходимо отправить запрос на создание QR-кода (можно использовать как POST-, так и PUT-метод).

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": 100.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"
}
HTTP/1.1 200 OK
Content-Type: application/json

{
    "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&rc=C63A",
        "status": "CREATED"
    },
    "createdOn": "2022-08-11T20:10:32+03:00"
}

Запрос и ответ приведены в качестве примера: актуальные формат, список и описание параметров см. в документации API приёма платежей.

В ответе на запрос содержатся данные QR-кода:

  • qrCode.image.content — QR-код, закодированный в base64.
  • qrCode.payload — URL для перенаправления клиента в приложение банка.

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

Определить текущее состояние QR-кода (в том числе, не истёк ли срок его действия) можно с помощью запроса статуса кода: см. в ответе значение поля qrCode.status.