СБП

Введение

Вы можете принимать платежи через СБП (Систему Быстрых Платежей) Национальной Системы Платежных Карт (НСПК). В этом случае вместо ввода карточных данных на платежной странице в браузере клиент сканирует динамический QR-код и производит оплату. Если используется мобильное приложение, клиент нажимает на кнопку оплаты СБП и переходит по ссылке, выбирая приложение банка для оплаты.

Чтобы включить возможность принимать платежи через СБП, обратитесь в службу технической поддержки.

Схемы интеграции

Оплата на платёжной странице

sequenceDiagram autonumber actor Client as Клиент participant Merchant as Мерчант participant Payment Gateway as Платежный шлюз participant NSPK as НСПК Client->>Merchant: Формирование заказа Merchant->>Payment Gateway: Регистрация заказа Payment Gateway-->>Merchant: orderId, formUrl Merchant-->>Client: Передача URL Client->>Payment Gateway: Запрос платёжной формы Payment Gateway-->>Client: Платёжная форма Client->>Payment Gateway: Запрос QR-кода Payment Gateway->>NSPK: Запрос QR-кода NSPK-->>Payment Gateway: Результат Payment Gateway-->>Client: Отображение QR-кода/кнопки Client->>NSPK: Сканирование QR-кода/нажатие кнопки, оплата NSPK-->>Payment Gateway: Callback с результатом оплаты opt Payment Gateway-->>Merchant: Callback о неуспешной оплате opt Merchant-->>Client: Callback/email end end Payment Gateway->>NSPK: Запрос статуса платежа NSPK-->>Payment Gateway: Callback со статусом платежа Payment Gateway->>Payment Gateway: Статус платежа "Завершён" Payment Gateway-->>Merchant: Callback об оплате opt Merchant-->>Client: Callback/email end
  1. Клиент оформляет заказ и переходит к оплате.
  2. Мерчант отправляет в Платежный шлюз запрос на регистрацию заказа register.do.
  3. В ответе на запрос регистрации Платежный шлюз возвращает уникальный идентификатор заказа в платёжной системе (в параметре orderId) и URL, на который необходимо перенаправить Клиента для получения платёжной формы (в параметре formUrl).
  4. Система Мерчанта передаёт браузеру Клиента redirect на URL (см. Шаг 3).
  5. Браузер Клиента запрашивает платёжную форму по указанному URL.
  6. Браузер отображает платёжную страницу, где Клиент выбирает оплату через СБП.
  7. Платёжная страница запрашивает у Платежного шлюза QR-код.
  8. Платежный шлюз отправляет в НСПК запрос QR-кода.
  9. НСПК возвращает ответ на запрос QR-кода.
  10. Клиенту на платёжной странице отображается QR-код или (в случае мобильного приложения) кнопка для оплаты.
  11. Клиент считывает QR-код при помощи специализированного ПО или (в случае мобильного приложения) нажимает кнопку, после чего производит оплату.
  12. Платежный шлюз получает ответ с результатом оплаты.
  13. Если оплата прошла неуспешно, то уменьшается количество попыток оплаты и Платежный шлюз направляет callback о неуспешной оплате системе Мерчанта.

    Если оплата прошла успешно, Шаги 13–14 пропускаются и выполняется переход на Шаг 15.

  14. Если у Мерчанта настроена отправка уведомлений (callbacks, email), то отправляется уведомление Клиенту о неуспешной оплате заказа. Процесс останавливается.

  15. Платежный шлюз направляет в НСПК запрос о конечном статусе платежа.

  16. НСПК возвращает callback со статусом платежа.

  17. Платежный шлюз переводит заказ в состояние "Завершен".

  18. Платежный шлюз направляет callback об успешной оплате системе Мерчанта.

  19. Если у Мерчанта настроена отправка уведомлений (callbacks, email), то отправляется уведомление Клиенту об успешной оплате заказа.

Оплата с вводом данных на стороне Мерчанта

sequenceDiagram autonumber actor Client as Клиент participant Merchant as Мерчант participant Payment Gateway as Платежный шлюз participant NSPK as НСПК Client->>Merchant: Формирование заказа Merchant->>Payment Gateway: Регистрация заказа Payment Gateway-->>Merchant: orderId Merchant-->>Client: Предоставление платёжной формы Client->>Merchant: Выбор оплаты через СБП Merchant->>Payment Gateway: Запрос получения QR-кода Payment Gateway->>NSPK: Запрос QR-кода NSPK-->>Payment Gateway: Ответ Payment Gateway-->>Merchant: Ответ на запрос QR-кода Merchant-->>Client:Отображение QR-кода/кнопки Client->>NSPK: Сканирование QR-кода/нажатие кнопки, оплата NSPK-->>Payment Gateway: Callback с результатом оплаты opt Payment Gateway-->>Merchant: Callback о неуспешной оплате opt Merchant-->>Client: Callback/email end end Merchant->>Payment Gateway: Запрос статуса платежа Payment Gateway-->>Merchant: Callback со статусом платежа opt Merchant-->>Client: Callback/email end
  1. Клиент оформляет заказ и переходит к оплате.
  2. Мерчант отправляет в Платежный шлюз запрос на регистрацию заказа register.do.
  3. В ответе на запрос регистрации Платежный шлюз возвращает уникальный идентификатор заказа в платежной системе (в параметре orderId).
  4. Мерчант перенаправляет Клиента на свою платёжную форму.
  5. Клиент выбирает оплату через СБП.
  6. Мерчант направляет в Платежный шлюз запрос на получение QR-кода sbp/c2b/qr/dynamic/get.do
  7. Платежный шлюз отправляет в НСПК запрос QR-кода.
  8. НСПК возвращает ответ на запрос QR-кода.
  9. Платежный шлюз возвращает в систему Мерчанта ответ на запрос QR-кода.
  10. Клиенту отображается QR-код или (в случае мобильного приложения) кнопка для оплаты.
  11. Клиент считывает QR-код при помощи специализированного ПО или (в случае мобильного приложения) нажимает кнопку, после чего производит оплату.
  12. Платёжный шлюз получает ответ c результатом оплаты.
  13. Если оплата прошла не успешно, то уменьшается количество попыток оплаты и Платежный шлюз направляет callback о неуспешной оплате системе Мерчанта.

    Если оплата прошла успешно, Шаги 13–14 пропускаются и выполняется переход на Шаг 15.

  14. Если у Мерчанта настроена отправка уведомлений (callbacks, email), то отправляется уведомление Клиенту о неуспешной оплате заказа.

  15. Мерчант запрашивает у Платёжного шлюза статус платежа sbp/c2b/qr/dynamic/status.do.

  16. Платежный шлюз возвращает callback со статусом платежа.

  17. Если у Мерчанта настроена отправка уведомлений (callbacks, email), то отправляется уведомление Клиенту об успешной оплате заказа.

Отмена запроса на оплату

sequenceDiagram autonumber actor Client as Клиент participant Merchant as Мерчант participant Payment Gateway as Платежный шлюз participant NSPK as НСПК Client->>Merchant: Желает отменить оплату Merchant->>Payment Gateway: Запрос отмены QR Payment Gateway->>Payment Gateway: Проверка возможности отмены Payment Gateway->>NSPK: Запрос статуса заказа opt NSPK-->>Payment Gateway: Ответ. Статус=ACWP Payment Gateway->>Payment Gateway: Статус заказа = Завершен Payment Gateway-->>Merchant: Ответ с ошибкой отмены end opt NSPK-->>Payment Gateway: Ответ. Статус=RCVD Payment Gateway-->>Merchant: Ответ с ошибкой отмены end NSPK-->>Payment Gateway: Ответ. Статус=RJCT или NTST Payment Gateway->>Payment Gateway: Статус QR = REJECTED_BY_USER Payment Gateway-->>Merchant: Ответ с успешной отменой opt NSPK-->>Payment Gateway: Уведомление об успешной оплате NSPK-->>Payment Gateway: Ответ. Статус=ACWP Payment Gateway->>NSPK: Запрос на автовозврат NSPK-->>Payment Gateway: Уведомление об успешном возврате end
  1. Клиент желает отменить заказ/оплату по уже созданному QR-коду.
  2. Мерчант отправляет в Платежный шлюз запрос на отмену QR-кода sbp/c2b/qr/dynamic/reject.do, передавая mdOrder и qrId.
  3. Платежный шлюз проверяет возможность отмены QR-кода.
  4. Платежный шлюз запрашивает статус QR-кода.
  5. НСПК присылает ответ: Статус QR = ACWP (см. Статусы заказа).

    Если в ответе пришел другой статус, переход на Шаг 8.

  6. Платежный шлюз присваивает заказу статус = Завершен.

  7. Платежный шлюз отправляет ответ с ошибкой отмены.

  8. НСПК присылает ответ: Статус QR = RCVD (см. Статусы заказа).

    Если в ответе пришел другой статус, переход на Шаг 10.

  9. Платежный шлюз отправляет ответ с ошибкой отмены.

  10. НСПК присылает ответ: Статус QR = RJCT или NTST (см. Статусы заказа).

  11. Платежный шлюз обновляет статус QR-кода: Статус QR=REJECTED_BY_USER.

  12. Платежный шлюз отправляет ответ с успешной отменой.

  13. НСПК присылает уведомление об успешной оплате

  14. НСПК присылает ответ со статусом QR = ACWP (см. Статусы заказа).

  15. Платежный шлюз запрашивает автовозврат.

  16. НСПК уведомляет Платежный шлюз об успешном возврате.

После отмены QR-кода заказ снова можно оплачивать любыми, ранее доступными способами оплаты, в том числе вновь начать СБП C2B оплату регистрацией нового QR-кода.

Статусы заказа

Статус Описание
NTST NOT STARTED. Выставляется при создании QR-кода
RCVD RECIEVED. Операция в обработке, Клиент отсканировал QR-код
ACWP ACCEPTED. Операция завершена, оплата прошла успешно
RJCT REJECTED. Операция отклонена. Считается как попытка оплаты

Возврат денежных средств

sequenceDiagram autonumber participant Merchant as Мерчант participant Payment Gateway as Платежный шлюз participant NSPK as НСПК Merchant->>Payment Gateway:1. Запрос на проведение возврата Payment Gateway->>NSPK:2. Запрос возможности возврата NSPK-->>Payment Gateway:3. Успешно Payment Gateway->>Payment Gateway:4. Обновление истории транзакции Payment Gateway->>NSPK:5. Запрос на возврат NSPK-->>Payment Gateway:6. Успешно Payment Gateway->>Payment Gateway:7. Обновление истории транзакции Payment Gateway-->>Merchant:8. Возврат успешно произведен
  1. Мерчант отправляет в Платежный шлюз запрос на возврат денежных средств refund.do.
  2. Платежный шлюз отправляет в НСПК запрос возможности возврата оплаты.
  3. НСПК отправляет ответ на запрос.
  4. Платежный шлюз обновляет историю транзакции.
  5. В случае успешного ответа на запрос возможности возврата Платежный шлюз отправляет в НСПК запрос возврата денежных средств.
  6. НСПК отправляет ответ на запрос.
  7. Платежный шлюз обновляет историю транзакции.
  8. Платежный шлюз возвращает результат выполнения операции возврата.

Если на Шаге 2 или Шаге 5 будет получена ошибка, то после обновления истории транзакции Платежный шлюз отправляет в систему Мерчанта errorCode=7 - "Системная ошибка".

API методы

Получить QR-код для оплаты по СБП

Для получения динамического QR-кода для оплаты через СБП используется запрос https://vtb.rbsuat.com/payment/rest/sbp/c2b/qr/dynamic/get.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

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

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..200] Пароль учетной записи API продавца.
Обязательно

mdOrder String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Необязательно

account String Счет юридического лица.
Необязательно

memberId String Идентификатор банка-участника СБП.
Необязательно

tspMerchantId String Идентификатор ТСП.
Необязательно

paymentPurpose String [1..140] Дополнительная информация от мерчанта. Если не заполнено, то по умолчанию будет подставлено описание заказа, если оно присутствует.
Необязательно

redirectUrl String [1..1024] Cсылка для автоматического возврата из приложения банка в приложение или на сайт мерчанта.
При некорректном заполнении параметр передаётся в значении "null".
Пример корректного заполнения: "redirectUrl"="http(s)://test.ru/", "redirectUrl"="mybee://finance.com?sbpId=123123/", "redirectUrl"="mybee://finance?sbpId=1968310434".
Примеры некорректного заполнения: "redirectUrl"="httpsы://test.ru/","redirectUrl"="1".
Необязательно

qrHeight String Высота QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
Необязательно

qrWidth String Ширина QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
Необязательно

qrFormat String Формат QR-кода. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG.
Допустимые значения:
  • matrix - матрица в виде строки из 0 и 1
  • image - изображение в кодировке base64 (по умолчанию)
Необязательно

createSubscription Boolean Создается ли связка (банковский счет плательщика привязывается к его идентификатору в системе магазина). Допустимые значения:
  • true – связка создается;
  • false – связка не создается.
Этот параметр является обязательным в случае создания подписки.

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

Обязательность Название Тип Описание
Необязательно

errorCode Integer [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

payload String Содержимое QR-кода. Этот параметр возвращается, если qrStatus = STARTED.
Необязательно

qrId String Идентификатор QR-кода.
Необязательно

qrStatus String Статус оплаты по QR-коду. Допустимые значения:
  • STARTED - QR-код cформирован
  • CONFIRMED - заказ принят к оплате
  • REJECTED - платеж отклонен
  • REJECTED_BY_USER - платеж отклонен мерчантом
  • ACCEPTED - заказ оплачен
Необязательно

renderedQr String QR-код в формате PNG, закодированный в формате, указанном в параметре qrFormat. Если формат не указан, по умолчанию используется image. Этот параметр возвращается, если запрос содержит qrHeight и qrWidth и если qrStatus = STARTED.

Примеры

Пример запроса

curl --request POST \
  --url https://vtb.rbsuat.com/payment/rest/sbp/c2b/qr/dynamic/get.do \
  --header 'Content-Type: application/json' \
  --data '{
    "userName": "test_user",
    "password": "test_user_password",
    "mdOrder": "04888d6f-7920-7531-8332-8de901efddd0",
    "qrFormat": "image"
}'

Пример успешного запроса

{
"qrId": "54d14bae6f7f4a73929308e9afa5915d",
"payload": "https://qr.nspk.ru/54d14bae6f7f4a73929308e9afa5915d",
"qrStatus": "STARTED"
}

Получение статуса СБП-платежа

Для получения статуса СБП-платежа с помощью динамического QR-кода используется запрос https://vtb.rbsuat.com/payment/rest/sbp/c2b/qr/status.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

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

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..200] Пароль учетной записи API продавца.
Обязательно

mdOrder String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Необязательно

qrId String Идентификатор QR-кода.

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

Обязательность Название Тип Описание
Необязательно

errorCode Integer [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

qrStatus String Статус оплаты по QR-коду. Допустимые значения:
  • STARTED - QR-код cформирован
  • CONFIRMED - заказ принят к оплате
  • REJECTED - платеж отклонен
  • REJECTED_BY_USER - платеж отклонен мерчантом
  • ACCEPTED - заказ оплачен
Необязательно

qrType String Тип QR-кода. Допустимые значения:
  • STATIC - статический QR-код
  • DYNAMIC - динамический QR-код
В настоящее время возвращается только значение DYNAMIC.
Необязательно

transactionState String Статус заказа. Допустимые значения:
  • CREATED - заказ создан
  • DECLINED - заказ отклонен
  • DEPOSITED - заказ оплачен

Примеры

Пример запроса

curl --request POST \
  --url https://vtb.rbsuat.com/payment/rest/sbp/c2b/qr/status.do \
  --header 'Content-Type: application/json' \
  --data '{
    "userName": "test_user",
    "password": "test_user_password",
    "mdOrder": "04888d6f-7920-7531-8332-8de901efddd0",
    "qrId": "3946c0c02d1042f7b7e63cc0f1b52a95"
}'

Пример успешного запроса

{
"qrType": "DYNAMIC",
"qrStatus": "ACCEPTED",
"transactionState": "DEPOSITED"
}

Отклонение СБП-платежа

Для отклонения платежа СБП с помощью динамического QR-кода, используется запрос https://vtb.rbsuat.com/payment/rest/sbp/c2b/qr/dynamic/reject.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

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

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..200] Пароль учетной записи API продавца.
Обязательно

mdOrder String [1..36] Номер заказа в платежном шлюзе. Уникален в пределах платежного шлюза.
Необязательно

qrId String Идентификатор QR-кода.

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

Обязательность Название Тип Описание
Необязательно

errorCode Integer [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Необязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Обязательно

rejected Boolean Указывает результат операции отклонения платежа. Допустимые значения:
  • true – платеж отклонен;
  • false – платеж не отклонен.
Если результат true, QR-код получает статус REJECTED_BY_USER.

Примеры

Пример запроса

curl --request POST \
  --url https://vtb.rbsuat.com/payment/rest/sbp/c2b/qr/dynamic/reject.do \
  --header 'Content-Type: application/json' \
  --data '{
    "userName": "test_user",
    "password": "test_user_password",
    "mdOrder": "04888d6f-7920-7531-8332-8de901efddd0",
    "qrId": "3946c0c02d1042f7b7e63cc0f1b52a95"
}'

Пример успешного запроса

{
"rejected": true
}

Создание статического QR-кода для оплаты SBP

Для создания статического QR-кода для оплаты СБП используется запрос https://vtb.rbsuat.com/payment/rest/templates/createTemplate.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

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

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..200] Пароль учетной записи API продавца.
Обязательно

name String [1..140] Наименование шаблона.
Необязательно

startDate String Дата начала действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты можно создать заказ и осуществить оплату по шаблону QR-кода.
Необязательно

endDate String Дата окончания действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты, статус QR-кода – EXPIRED
Обязательно

type String [1..10] Тип шаблона. Допустимое значение: SBP_QR.
Необязательно

amount Integer [0..10] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency String [3] Буквенный код валюты платежа ISO 4217. Если не указан, считается равным 643 (российский рубль).
Необязательно

distributionChannel String [1..256] Канал распространения. Канал продажи. Поле имеет свободный формат и заполняется значениями в соответствии с внутренними справочниками. Позволяет строить статистику по продажам.
Необязательно

qrTemplate Object Блок с параметрами шаблона для QR-кода. См. вложенные параметры.

Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

Обязательность Название Тип Описание
Обязательно

qrHeight String Высота QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.
Обязательно

qrWidth String Ширина QR-кода в пикселях. Укажите этот параметр, если хотите получить визуализированный QR-код в формате PNG. Минимальное значение - 10. Максимальное значение - 1000.

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

Обязательность Название Тип Описание
Обязательно

name String [1..140] Наименование шаблона.
Обязательно

type String [1..10] Тип шаблона. Допустимое значение: SBP_QR.
Обязательно

templateId String [1..32] Идентификатор шаблона соответствует зарегистрированному QR-коду в СБП.
Обязательно

status String [7..16] Статус шаблона. Допустимые значения:
  • ACTIVE - шаблон активен
  • INACTIVE - шаблон деактивирован вручную (через консоль или сервис)
  • WAITING - дата начала еще не наступила
  • EXPIRED - срок действия шаблона истек (этот статус устанавливается автоматически при достижении endDate)
  • USED - шаблон уже использовался (для одноразовых шаблонов)
Необязательно

distributionChannel String [1..256] Канал распространения. Канал продажи. Поле имеет свободный формат и заполняется значениями в соответствии с внутренними справочниками. Позволяет строить статистику по продажам.
Необязательно

startDate String Дата начала действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты можно создать заказ и осуществить оплату по шаблону QR-кода.
Необязательно

endDate String Дата окончания действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты, статус QR-кода – EXPIRED
Обязательно

qrTemplate Object Блок с параметрами шаблона для QR-кода. См. вложенные параметры.

Ниже приведены параметры блока qrTemplate (данные о размере QR-кода).

Обязательность Название Тип Описание
Обязательно

payload String [1..999] Содержимое QR-кода платежной ссылки.
Условие

renderedQr String [1..255] QR-код в формате PNG, закодированный в Base64. Этот параметр возвращается, если запрос содержит qrHeight и qrWidth и если status = ACTIVE.

Коды ответа HTTP в случае ошибок:

Примеры

Пример запроса

curl --request POST \
  --url https://vtb.rbsuat.com/payment/rest/templates/createTemplate.do \
  --header 'Content-Type: application/json' \
  --data '{
    "username": "test_user",
    "password": "test_user_password",
    "type": "SBP_QR",
    "name": "Test template",
    "distributionChannel": "Test distribution channel",
    "currency": "RUB",
    "qrTemplate": {
        "qrHeight": 15,
        "qrWidth": 15
    }
}'

Пример успешного запроса

{
  "templateId": "BS1A002R685NUVE58NNA6O3DF8ELMGUE",
  "name": "Test template",
  "distributionChannel": "Test distribution channel",
  "startDate": "2022-01-02T11:32:00",
  "endDate": "2122-03-01T11:49:50",
  "type": "SBP_QR",
  "status": "ACTIVE",
  "qrTemplate": {
    "renderedQr":"iVBORw0...CYII=",
    "payload": "https://qr.nspk.ru/BS1A002R685NUVE58NNA6O3DF8ELMGUE"
  }
}

Получение данных шаблона

Для получения данных шаблона используется запрос https://vtb.rbsuat.com/payment/rest/templates/getTemplateDetails.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

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

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..200] Пароль учетной записи API продавца.
Обязательно

templateId String [1..32] Идентификатор шаблона соответствует зарегистрированному QR-коду в СБП.

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

Обязательность Название Тип Описание
Обязательно

errorCode Integer [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Обязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Необязательно

amount Integer [0..10] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency Integer [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию.
Необязательно

distributionChannel String [1..256] Канал распространения. Канал продажи. Поле имеет свободный формат и заполняется значениями в соответствии с внутренними справочниками. Позволяет строить статистику по продажам.
Необязательно

endDate String Дата окончания действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты, статус QR-кода – EXPIRED
Обязательно

name String [1..140] Наименование шаблона.
Необязательно

startDate String Дата начала действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты можно создать заказ и осуществить оплату по шаблону QR-кода.
Обязательно

status String [7..16] Статус шаблона. Допустимые значения:
  • ACTIVE - шаблон активен
  • INACTIVE - шаблон деактивирован вручную (через консоль или сервис)
  • WAITING - дата начала еще не наступила
  • EXPIRED - срок действия шаблона истек (этот статус устанавливается автоматически при достижении endDate)
  • USED - шаблон уже использовался (для одноразовых шаблонов)
Обязательно

templateId String [1..32] Идентификатор шаблона соответствует зарегистрированному QR-коду в СБП.
Обязательно

type String [1..10] Тип шаблона. Допустимое значение: SBP_QR.
Обязательно

useDate String Дата последнего использования шаблона.

Примеры

Пример запроса

curl --request POST \
  --url https://vtb.rbsuat.com/payment/rest/templates/getTemplateDetails.do \
  --header 'Content-Type: application/json' \
  --data '{
    "userName": "test_user",
    "password": "test_user_password",
    "templateId": "886d674089f64538a055ec9494759ed"
}'

Пример запроса

{
  "templateId": "886d674089f64538a055ec9494759ed",
  "name": "Test template",
  "distributionChannel": "test distribution channel",
  "startDate": "2022-01-02T11:32:00",
  "endDate": "2122-03-01T11:49:50",
  "type": "SBP_QR",
  "status": "ACTIVE",
  "qrTemplate": {
    "payload": "https://qr.nspk.ru/886d674089f64538a055ec9494759ed"
}

Изменение данных статического QR-кода

Для изменения шаблона используется запрос https://vtb.rbsuat.com/payment/rest/templates/updateTemplate.do.


При выполнении запроса необходимо использовать заголовок: Content-Type: application/json

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

Обязательность Название Тип Описание
Обязательно

userName String [1..100] Логин учетной записи API продавца.
Обязательно

password String [1..200] Пароль учетной записи API продавца.
Обязательно

name String [1..140] Наименование шаблона.
Необязательно

startDate String Дата начала действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты можно создать заказ и осуществить оплату по шаблону QR-кода.
Необязательно

endDate String Дата окончания действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты, статус QR-кода – EXPIRED
Необязательно

templateId String [1..32] Идентификатор шаблона соответствует зарегистрированному QR-коду в СБП.
Обязательно

status String [7..16] Статус шаблона. Допустимые значения:
  • ACTIVE - шаблон активен
  • INACTIVE - шаблон деактивирован вручную (через консоль или сервис)
  • WAITING - дата начала еще не наступила
  • EXPIRED - срок действия шаблона истек (этот статус устанавливается автоматически при достижении endDate)
  • USED - шаблон уже использовался (для одноразовых шаблонов)

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

Обязательность Название Тип Описание
Обязательно

errorCode Integer [1..2] Информационный параметр в случае ошибки, который может иметь разные кодовые значения:
  • значение 0 - указывает на успех обработки запроса;
  • другое числовое значение (1-99) - указывает на ошибку, для получения более подробной информации о которой необходимо проверить параметр errorMesage.
Может отсутствовать, если результат не вызвал ошибки.
Обязательно

errorMessage String [1..512] Информационный параметр, являющийся описанием ошибки в случае возникновения ошибки. Значение errorMessage может варьироваться, поэтому не следует явным образом ссылаться на его значения в коде.
Язык описания задается в параметре language запроса.
Обязательно

name String [1..140] Наименование шаблона.
Необязательно

amount Integer [0..10] Сумма платежа в минимальных единицах валюты (например, в копейках).
Необязательно

currency Integer [3] Код валюты платежа ISO 4217. Если не указано, то используется значение по умолчанию.
Необязательно

distributionChannel String [1..256] Канал распространения. Канал продажи. Поле имеет свободный формат и заполняется значениями в соответствии с внутренними справочниками. Позволяет строить статистику по продажам.
Необязательно

endDate String Дата окончания действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты, статус QR-кода – EXPIRED
Необязательно

startDate String Дата начала действия шаблона в формате "yyyy-MM-dd'T'HH:mm:ss". Начиная с этой даты можно создать заказ и осуществить оплату по шаблону QR-кода.
Обязательно

status String [7..16] Статус шаблона. Допустимые значения:
  • ACTIVE - шаблон активен
  • INACTIVE - шаблон деактивирован вручную (через консоль или сервис)
  • WAITING - дата начала еще не наступила
  • EXPIRED - срок действия шаблона истек (этот статус устанавливается автоматически при достижении endDate)
  • USED - шаблон уже использовался (для одноразовых шаблонов)
Обязательно

templateId String [1..32] Идентификатор шаблона соответствует зарегистрированному QR-коду в СБП.
Обязательно

type String [1..10] Тип шаблона. Допустимое значение: SBP_QR.
Обязательно

useDate String Дата последнего использования шаблона.

Примеры

Пример запроса

curl --request POST \
  --url https://vtb.rbsuat.com/payment/rest/templates/updateTemplate.do \
  --header 'Content-Type: application/json' \
  --data '{
    "username": "test_user",
    "password": "test_user_password",
    "name": "Test template",
    "templateId": "cfa97cdf2a964661b79d9ba54205e1eb",
    "status": "ACTIVE"
    }
}'

Пример успешного запроса

{
    "templateId": "cfa97cdf2a964661b79d9ba54205e1eb",
    "name": "Test local template_133_update",
    "amount": 60000,
    "currency": "RUB",
    "distributionChannel": "test distribution channel",
    "startDate": "2022-01-02T11:32:00",
    "endDate": "2022-03-12T15:18:00",
    "useDate": "2022-02-02T17:16:59",
    "type": "SBP_QR",
    "status": "ACTIVE",
    "qrTemplate": {
        "payload": "https://qr.nspk.ru/cfa97cdf2a964661b79d9ba54205e1eb"
    }
}

       

Категории:
eCommerce API V1
Категории
Результаты поиска