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

Создание QR-кода СБП

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

Сценарии, в которых используется метод создания QR-кода, см. в статьях «Оплата с помощью СБП» и «Платёжный токен»

Запрос

POST /payin/v1/sites/{siteId}/sbp/qrCodes

PUT /payin/v1/sites/{siteId}/sbp/qrCodes/{qrCodeUid}

Параметры строки запроса

Параметр Обязательный Тип Описание
siteId Да string Строковый идентификатор сайта ТСП в QIWI Кассе
Параметр Обязательный Тип Описание
siteId Да string Строковый идентификатор сайта ТСП в QIWI Кассе
qrCodeUid Да string Уникальный идентификатор запроса в информационной системе ТСП. Уникальность означает, что идентификатор должен отличаться от идентификаторов всех таких ранее созданных запросов в рамках одного siteId

Заголовки

Заголовки для методов POST и PUT одинаковые.

Заголовок Обязательный Тип Описание
Authorization Да string Авторизационные данные. Bearer [access-token]
Content-type Да string Тип запроса. application/json
Accept Нет string Тип ответа. application/json

Параметры тела запроса

Параметр Обязательный Тип Описание
qrCodeUid Да string Уникальный идентификатор запроса в информационной системе ТСП. Уникальность означает, что идентификатор должен отличаться от идентификаторов всех таких ранее созданных запросов в рамках одного siteId
qrCode Да object Параметры запрашиваемого QR-кода
amount Нет object Данные о сумме операции
paymentPurpose Нет string(140) Описание товара или услуги, которую получает Плательщик
redirectUrl Нет string(1000) URL для переадресации покупателя после оплаты
tokenizationPurpose Нет string(140) Описание платёжного токена
tokenizationAccount Нет string(64) Уникальный идентификатор Покупателя в системе ТСП. Используется при выдаче токена, когда qrCode.type=TOKEN
flags Нет array of strings Дополнительные команды для API.
  • CREATE_TOKEN — флаг для выпуска платёжного токена.
  • Параметр Обязательный Тип Описание
    qrCode Да object Параметры запрашиваемого QR-кода
    amount Нет object Данные о сумме операции
    paymentPurpose Нет string(140) Описание товара или услуги, которую получает Плательщик
    redirectUrl Нет string(1000) URL для переадресации покупателя после оплаты
    tokenizationPurpose Нет string(140) Описание платёжного токена
    tokenizationAccount Нет string(64) Уникальный идентификатор Покупателя в системе ТСП. Используется при выдаче токена, когда qrCode.type=TOKEN
    flags Нет array of strings Дополнительные команды для API.
  • CREATE_TOKEN — флаг для выпуска платёжного токена.
  • Пример запроса

    Создание QR-кода
    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-кода
    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"
    }
    

    Ответ

    Ответы для методов POST и PUT одинаковые.

    Поля успешного ответа

    Параметр Обязательный Тип Описание
    qrCodeUid Да string Идентификатор запроса QR-кода
    qrCode Да [object] Параметры QR-кода
    createdOn Да string Дата и время создания QR-кода
    amount Нет object Сумма операции
    tokenizationPurpose Нет string(140) Описание платёжного токена. Возвращается, если запрошен выпуск токена СБП
    flags Нет array of strings Дополнительные команды для API из исходного запроса
    token Нет object Информация о платёжном токене СБП. Возвращается, если запрошен выпуск токена СБП
    payment Нет object Информация о платеже по QR-коду. Только для type=DYNAMIC
    refunds Нет array of objects Информация о возвратах по QR-коду. Только для type=DYNAMIC

    Поля ответа с ошибкой

    Параметр Обязательный Тип Описание
    serviceName Да string Имя сервиса, сгенерировавшего ошибку
    errorCode Да string Код ошибки
    description Да string Описание ошибки для ТСП
    userMessage Да string Описание ошибки для отображения покупателю
    dateTime Да string Дата и время ошибки
    traceId Да string Уникальный ID лога ошибки

    Примеры ответов

    {
      "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"
    }
    
    {
      "serviceName" : "payin-core",
      "errorCode" : "validation.error",
      "description" : "Validation error",
      "userMessage" : "Validation error",
      "dateTime" : "2022-03-05T11:49:59.166+03:00",
      "traceId" : "fd0e2a08c63ace83"
    }
    
    {
      "serviceName":"payin-core",
      "errorCode":"internal.error",
      "userMessage":"Internal error",
      "description":"Internal error",
      "traceId":"3fb3420ee1795dcf",
      "dateTime":"2020-02-12T21:28:01.813+03:00"
    }