ym88659208ym87991671
Песочница Универсальный QR-код | Документация для разработчиков

Песочница Универсальный QR-код

Обновлено 7 сентября 2026

Подключение тестового API

После оформления подписки необходимо обратиться в техподдержку для подключения тестового API по адресу support@ecom.sberbank.ru с запросом:

Прошу на ФПА добавить в настройки aud APIGW для clientID [укажите clientId вашего приложения] для использования "заглушек".

Для тестирования API SberPay QR реализованы базовые сценарии оплаты по QR-коду Продавца с использованием "заглушек".
"Заглушки" поддерживают ограниченную логику, которой достаточно для ознакомления с процессом работы с заказом (создание, отмена, возврат, получение реестра).
На каждый запрос создается уникальный rquid.


Бизнес-процесс работы с заказом

  1. Формирование заказа
    Продавец формирует заказ (с уникальным номером order_number) и вызывает метод CREATE для создания заказа в Банке.

    • При успешном создании заказа Банк возвращает в ответе статус CREATED (параметр order_state) и номер заказа в Банке (order_id).
    • При невозможности создать заказ возвращается статус DECLINED.
  2. Отмена неоплаченного заказа
    Если покупатель отказался от оплаты, неоплаченный заказ может быть отменен вызовом метода /revocation.
    При успешной отмене заказ переводится в статус REVOKED.

  3. Переход в статус PAID
    После оплаты заказа покупателем заказ переходит в статус PAID. Продавец узнает об этом, вызывая метод STATUS.
    Заглушка реализует автоматический перевод в статус PAID через минуту после оформления заказа. Новый статус отобразится после вызова операции STATUS.

  4. Отмена оплаченного заказа (REVERSE)
    В течение 24-х часов оплаченный заказ может быть отменен методом CANCEL с типом операции REVERSE.

  5. Возврат денежных средств (REFUND)
    Возврат по оплаченному заказу производится вызовом метода CANCEL с типом операции REFUND в любое время после оплаты.
    На тестовом стенде срок хранения данных ограничен, рекомендуется проводить тестирование возвратов в течение 24-х часов после создания заказа.


Таблица сервисов

Описание сервисаПроцессURLИнициаторПотребительСинхронный
1Создание заказаQR-код Продавца / QR-код СБП/oauth:
https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth

/creation:
https://mc.api.sberbank.ru:443/prod/qr/order/stub/v3/creation

scope:
https://api.sberbank.ru/qr/order.create
КлиентСбербанкДа
2Запрос статуса заказаQR-код Продавца / QR-код СБП/oauth:
https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth

/status:
https://mc.api.sberbank.ru:443/prod/qr/order/stub/v3/status

scope:
https://api.sberbank.ru/qr/order.status
КлиентСбербанкДа
3Отмена сформированного заказа (до проведения финансовой операции)QR-код Продавца / QR-код СБП/oauth:
https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth

/revocation:
https://mc.api.sberbank.ru:443/prod/qr/order/stub/v3/revocation

scope:
https://api.sberbank.ru/qr/order.revoke
КлиентСбербанкДа
4Отмена/возврат финансовой операцииQR-код Продавца / QR-код СБП/oauth:
https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth

/cancel:
https://mc.api.sberbank.ru:443/prod/qr/order/stub/v3/cancel

scope:
https://api.sberbank.ru/qr/order.cancel
КлиентСбербанкДа
5Запрос Реестра операцийQR-код Продавца / QR-код СБП/oauth:
https://mc.api.sberbank.ru:443/prod/tokens/v3/oauth

/registry:
https://mc.api.sberbank.ru:443/prod/qr/order/stub/v3/registry

scope:
auth://qr/order.registry
КлиентСбербанкДа

Позитивные сценарии

Сценарий 1 (оплата заказа, отмена оплаченного заказа)

  1. Выполнить запрос /creation, получить успешный ответ с order_state=CREATED. Заказ создан.
    Заказ автоматически переводится в статус PAID через минуту после создания.

  2. Выполнить запрос /status в течение минуты после создания, получить успешный ответ с order_state=CREATED (заказ еще не оплачен, передавать товар клиенту нельзя).

  3. Выполнить запрос /status через минуту, получить успешный ответ с order_state=PAID.
    Заказ оплачен клиентом в его мобильном приложении. Кейс срабатывает, если найден ранее созданный заказ со статусом CREATED.
    При переводе заказа в статус PAID создается набор параметров авторизации order_operation_params (для статуса CREATED параметры не создаются).

  4. Выполнить запрос отмены оплаченного заказа /cancel (заказ в статусе PAID):

    • с operation_type=REVERSE, получить успешный ответ с order_state=REVERSED;
    • с operation_type=REFUND/null, получить успешный ответ с order_state=REFUNDED.
  5. Выполнить запрос /status, получить успешный ответ с текущим order_state=REFUNDED/REVERSED (в зависимости от типа отмены) и с текущим набором order_operation_params.

  6. Выполнить запрос /registry:

    • с registryType=REGISTRY, получить успешный ответ с перечнем операций за период;
    • с registryType=QUANTITY, получить успешный ответ с агрегированными данными по операциям за период.

Сценарий 2 (отмена неоплаченного заказа)

  1. Выполнить запрос /creation, получить успешный ответ с order_state=CREATED. Заказ создан.

  2. Выполнить запрос /status в течение минуты, получить успешный ответ с order_state=CREATED.

  3. Выполнить запрос /revocation, получить успешный ответ с order_state=REVOKED.
    Неоплаченный заказ отменен (например, если клиент отказался от оплаты).


Альтернативные сценарии

  • /creation — создание заказа
  • /revocation — отмена сформированного заказа (до проведения финансовой операции)
  • /status — запрос статуса заказа
  • /cancel — отмена/возврат финансовой операции

/creation — создание заказа

Моделируется таймаут (отсутствие ответа на запрос создания заказа), т.е. ситуация, когда торговая точка не знает, создан заказ или нет.

№ п/пУсловиеРезультатПример запросаПример ответа
1amount=6002Таймаут, заказ не создается{ "rq_tm": "2024-06-17T09:26:57Z", "operation_date_time": "2024-06-17T09:27:31Z", "sbp_operation_params": { "sbp_cancel_operation_id": "629bc42ddb0a4629827abc3d3a87bbe2", "sbp_merchant_name": "Ромашка_SBP" }, "operation_type": "REFUND", "operation_currency": "643", "tid": "20151881", "rrn": "832123399686", "auth_code": "501957", "order_status": "REFUNDED", "operation_sum": 1100, "id_qr": "1000100051", "error_description": "", "error_code": "990000", "operation_id": "96bf589d9940420a87d02d5bb837666d", "rq_uid": "e1a0bd56da294ddba5ea5760625dc23b", "order_id": "acce59772765431f8be55849588946e2" }HTTP / 1.1 504 Gateway Timeout
Server: nginx / 1.20.1
Date: Thu, 03 Feb 2022 14:14:06 GMT
Content-Length: 0
Connection: keep-alive
X-Rate-Limit-Limit: 20
X-Rate-Limit-Remaining: 19
X-Rate-Limit-Reset: 1643897637404
2Любая сумма, неравная 6002Повторный запрос с тем же order_number, но другой суммой. Получите успешный ответ с order_state=CREATED{ "rq_uid": "4b7eed9b632c40d898994626e7c7194f", "rq_tm": "2022-02-03T17:08:05Z", "member_id": "000001", "order_number": "8833917575134", "order_create_date": "2022-02-03T17:08:05Z", "order_params_type": [ { "position_name": "Water Still", "position_count": 1, "position_sum": 6003, "position_description": "Water Still" } ], "id_qr": "1000100051", "order_sum": 6003, "currency": "643", "description": "Water Still" }{ "rq_tm": "2022-02-03T17:08:05Z", "error_description": "Операция выполнена успешно", "order_number": "8833917575134", "order_form_url": "http://sberbank.ru/qr/?dynamicQR=a7b3a2b2395341b68bdfbf2424c1b300", "error_code": "000000", "rq_uid": "4b7eed9b632c40d898994626e7c7194f", "order_id": "a7b3a2b2395341b68bdfbf2424c1b300", "order_state": "CREATED" }

/revocation — отмена сформированного заказа (до проведения финансовой операции)

№ п/пУсловиеРезультатПример запросаПример ответа
1Отмена несуществующего заказа. Заказ с order_id не найден в Банке.Ошибка:
error_code=090000
error_description=Оригинальный заказ для отмены/возврата не найден
{ "rq_uid": "add59867466f45ef8f431388a376b774", "rq_tm": "2005-08-15T15:52:01Z", "order_id": "a7b3a2b2395341b68bdfbf2424c1b301" }{ "rq_tm": "2005-08-15T15:52:01Z", "error_description": "Оригинальный заказ для отмены/возврата не найден", "error_code": "090000", "rq_uid": "add59867466f45ef8f431388a376b774" }
2Статус заказа не позволяет провести его нефинансовую отмену. order_state не равен CREATED.Ошибка:
error_code=080000
error_description=Нарушена последовательность запросов
{ "rq_uid": "ef4e25c7f2194dc29f4bf657e7efe9ea", "rq_tm": "2005-08-15T15:52:01Z", "order_id": "37f894f034f6466580a79c8f36c0bc84" }{ "rq_tm": "2005-08-15T15:52:01Z", "error_description": "Нарушена последовательность запросов", "error_code": "080000", "rq_uid": "ef4e25c7f2194dc29f4bf657e7efe9ea" }

/status — запрос статуса заказа

№ п/пУсловиеРезультатПример запросаПример ответа
1Нарушена связка номеров заказа партнера и Банка. order_id и/или partner_order_number не равны текущим значениям.Ошибка:
error_code=100000
error_description=Указанный заказ не найден
{ "rq_uid": "5b1905404f5540878587d4118129bd8f", "rq_tm": "2022-02-03T16:04:85Z", "order_id": "37f894f034f6466580a79c8f36c0bc84", "tid": "", "partner_order_number": "820336013834" }{ "rq_tm": "2022-02-03T16:04:85Z", "error_description": "Указанный заказ не найден", "mid": "101000012345", "error_code": "100000", "rq_uid": "5b1905404f5540878587d4118129bd8f" }
2Торговая точка не получила ответ на запрос CREATE с номером заказа в Банке. Есть возможность узнать статус заказа по его номеру в торговой точке. order_id в этом случае не передавать.Успешный ответ{ "rq_uid": "e3240d7e16b5484e99411c17b80867b1", "rq_tm": "2022-02-04T14:57:89Z", "tid": "21214354", "partner_order_number": "8203636013834" }{ "rq_tm": "2022-02-03T15:15:23Z", "mid": "101000012345", "tid": "21214354", "id_qr": "1000100051", "order_operation_params": [ { "operation_date_time": "2022-02-03T15:57:47Z", "response_code": "00", "operation_sum": 1111, "operation_type": "PAY", "response_desc": "Успешная обработка", "operation_id": "cf8f78a1-1e75-414e-95fc-8ce56932e5d9-0d1c07e8-abe9", "operation_currency": "643", "rrn": "962001894699", "auth_code": "86651307" } ], "error_code": "000000", "rq_uid": "1c80621a143f4cc48a7135a380cfed16", "order_id": "37f894f034f6466580a79c8f36c0bc84", "order_state": "PAID" }
3Торговая точка выполняет запрос статуса после запроса на возврат СБП, для получения финального статуса по возврату (переход в финальный статус через 30 секунд)"response_code": "99" (промежуточный статус в процессе возврата), если возврат СБП был совершен менее 30 секунд назад,
"response_code": "00" (финальный статус, успех) – если 30 секунд назад и более
{ "rq_uid": "e1a0bd56da294ddba5ea5760625dc23b", "rq_tm": "2024-06-17T09:26:57Z", "operation_id": "96bf589d9940420a87d02d5bb837666d", "operation_type": "REFUND", "order_id": " acce59772765431f8be55849588946e2", "id_qr": "1000100051", "cancel_operation_sum": 1100, "operation_currency": "643", "auth_code": "501957", "tid": "20151881" }{ "rq_tm": "2024-06-17T09:26:57Z", "operation_date_time": "2024-06-17T09:27:31Z", "sbp_operation_params": { "sbp_cancel_operation_id": "629bc42ddb0a4629827abc3d3a87bbe2", "sbp_merchant_name": "Ромашка_SBP" }, "operation_type": "REFUND", "operation_currency": "643", "tid": "20151881", "rrn": "832123399686", "auth_code": "501957", "order_status": "REFUNDED", "operation_sum": 1100, "id_qr": "1000100051", "error_description": "", "error_code": "990000", "operation_id": "96bf589d9940420a87d02d5bb837666d", "rq_uid": "e1a0bd56da294ddba5ea5760625dc23b", "order_id": "acce59772765431f8be55849588946e2" }

/cancel — отмена/возврат финансовой операции

№ п/пУсловиеРезультатПример запросаПример ответа
1Попытка отмены несуществующего заказа. order_id не найден.Ошибка:
error_code=090000
error_description=Оригинальный заказ для отмены/возврата не найден
{ "rq_uid": "3f4f4fa411cd4da98499c45218ff9df3", "rq_tm": "2005-08-15T15:52:01Z", "operation_id": "000001", "order_id": "37f894f034f6466580a79c8f36c0bc81", "id_qr": "1000100051", "cancel_operation_sum": 100, "operation_currency": "643", "auth_code": "123", "tid": "21214354" }{ "rq_tm": "2005-08-15T15:52:01Z", "error_description": "Оригинальный заказ для отмены/возврата не найден", "error_code": "010000", "rq_uid": "3f4f4fa411cd4da98499c45218ff9df3", "order_id": "37f894f034f6466580a79c8f36c0bc81" }
2Указан неверный тип операции. operation_type = PAY (допустимы только REFUND и REVERSE, null).Ошибка валидации на шлюзе. Запрос не дойдет до поставщика сервиса.{ "rq_uid": "d7f8b5c37f444f0c91f4ef58c21c0352", "rq_tm": "2005-08-15T15:52:01Z", "operation_id": "000001", "order_id": "37f894f034f6466580a79c8f36c0bc84", "id_qr": "1000100051", "cancel_operation_sum": 100, "operation_currency": "643", "auth_code": "123", "tid": "21214354" }{ "httpCode": "400", "httpMessage": "Bad Request", "moreInformation": "Body of the request is not valid according to json schema" }
3Не найдена транзакция оплаты, связанная с заказом. operation_id не найден в связке с заказом.Ошибка:
error_code=050000
error_description=Некорректный формат запроса или данные не найдены
{ "rq_uid": "ac01cA1CEae1D1111dABf1fD1Bb0acAd", "rq_tm": "2005-08-15T15:52:01Z", "operation_id": "6b368fbc-367f-40cd-b329-3b632597a403-07a262e4-024e", "order_id": "310670c0e6144475bb36b64ce7724a09", "operation_type": "REFUND", "id_qr": "1000100051", "cancel_operation_sum": 321, "operation_currency": "643", "auth_code": "123", "tid": "21214354" }{ "rq_tm": "2005-08-15T15:52:01Z", "error_description": "Некорректный формат запроса или данные не найдены", "error_code": "050000", "rq_uid": "ac01cA1CEae1D1111dABf1fD1Bb0acAd", "order_id": "310670c0e6144475bb36b64ce7724a09" }
4Торговая точка выполняет возврат по заказу СБП, в ответ получает нефинальный статус ("error_code"= "990000"), что означает запрос в процессе обработки."error_code": "990000" в теле ответа{ "rq_uid": "fce97d55bcc34ff1bbf0c9a9bdf8276f", "rq_tm": "2024-06-17T09:25:19Z", "order_id": "acce59772765431f8be55849588946e2", "tid": "20151881", "partner_order_number": "325852686457" }Промежуточный ответ:
{ "rq_tm": "2024-06-17T09:25:19Z", "sbp_operation_params": { "sbp_operation_id": "92122336135248957226072191328692", "sbp_masked_payer_id": "*********9167" }, "mid": "101000012345", "tid": "20151881", "id_qr": "10000001", "order_operation_params": [ { "operation_date_time": "2024-06-17T09:26:57Z", "response_code": "00", "operation_sum": 1100, "operation_type": "PAY", "response_desc": "Тестовое описание", "operation_id": "d87080a7a63847d88d9c89f0a73f5cdf", "operation_currency": "643", "client_name": "Тест Тестович Т.", "rrn": "361144694147", "auth_code": "858811" }, { "operation_date_time": "2024-06-17T09:27:31Z", "response_code": "99", "operation_sum": 1100, "operation_type": "REFUND", "response_desc": "Операция выполнена успешно", "operation_id": "96bf589d9940420a87d02d5bb837666d", "operation_currency": "643", "rrn": "832123399686", "auth_code": "501957" } ], "error_code": "000000", "rq_uid": "fce97d55bcc34ff1bbf0c9a9bdf8276f", "order_id": "acce59772765431f8be55849588946e2", "order_state": "REFUNDED" }

Финальный ответ:
{ "rq_tm": "2024-06-17T09:25:19Z", "sbp_operation_params": { "sbp_operation_id": "92122336135248957226072191328692", "sbp_masked_payer_id": "*********9167" }, "mid": "101000012345", "tid": "20151881", "id_qr": "10000001", "order_operation_params": [ { "operation_date_time": "2024-06-17T09:26:57Z", "response_code": "00", "operation_sum": 1100, "operation_type": "PAY", "response_desc": "Тестовое описание", "operation_id": "d87080a7a63847d88d9c89f0a73f5cdf", "operation_currency": "643", "client_name": "Тест Тестович Т.", "rrn": "361144694147", "auth_code": "858811" }, { "operation_date_time": "2024-06-17T09:27:31Z", "response_code": "00", "operation_sum": 1100, "operation_type": "REFUND", "response_desc": "Операция выполнена успешно", "operation_id": "96bf589d9940420a87d02d5bb837666d", "operation_currency": "643", "rrn": "832123399686", "auth_code": "501957" } ], "error_code": "000000", "rq_uid": "fce97d55bcc34ff1bbf0c9a9bdf8276f", "order_id": "acce59772765431f8be55849588946e2", "order_state": "REFUNDED" }

Коллекция Postman

Для проверки работы сервисов в ручном режиме можно использовать подготовленную коллекцию:
SandBox SberPay.QR.postman_collection.json

Краткая инструкция по использованию коллекции сервисов Песочница Универсальный QR-код в Postman

1. Загрузка коллекции

Импорт коллекции в Postman:

  • Перейти в настройки Postman (File → Import).
  • В открывшемся окне "Import" нажать на кнопку "Upload Files" и выбрать сохраненный файл коллекции "Mock коллекция SberAPI сертификат Минцифра.postman_collection.json" и нажать "Открыть".
  • Для загрузки коллекции нажать "Import", для выхода — "Cancel".

2. Добавление сертификата

Для использования коллекции нужно применить сертификат, полученный на портале для Песочницы:

  • Перейти в настройки Postman (File → Settings).
  • В окне «Settings» перейти на вкладку «Certificates».
  • Нажать на кнопку «Add Certificate».
  • В открывшемся окне заполнить поля:
    • Hostmc.api.sberbank.ru:443
    • PFX file – добавить сертификат, выпущенный на портале
    • Passphrase – ввести пароль от сертификата
  • После заполнения нажать «Add».

3. Авторизационные данные

Для авторизации запросов используется тип "Basic Auth":

  • Во вкладке Authorization выбрать тип: Type = «Basic Auth».
  • В поле «Username» вводится client_id.
  • В поле «Password»client_secret.

4. Переменные коллекции

Используются в базовых сценариях для выполнения запросов без дополнительных манипуляций. При желании переменные можно изменить на валидные значения полей (валидность можно проверить в таблицах параметров запросов и ответов).

VARIABLE / ПеременнаяКраткое пояснениеГде применяется
creation_tokenТокен создается в сервисе Access Token Creation, необходим для доступа к сервису Create. Срок жизни токена 60с.Create - Authorization
status_tokenТокен создается в сервисе Access Token Status, необходим для доступа к сервису Status. Срок жизни токена 60с.Status - Authorization
order_idИдентификатор заказаCreate - тело ответа (сохраняется в память); Status, Revocation, Cancel – тело запроса (подставляется из памяти)
order_numberНомер заказа в CRM КлиентаCreate, Status
revocation_tokenТокен создается в сервисе Access Token Revocation, необходим для доступа Create. Срок жизни токена 60с.Revocation - Authorization
cancel_tokenТокен создается в сервисе Access Token Cancel, необходим для доступа к сервису Cancel. Срок жизни токена 60с.Cancel - Authorization
registry_tokenТокен создается в сервисе Access Token RegistryQR, необходим для доступа к сервису RegistryQr. Срок жизни токена 60с.Registry - Authorization
auth_codeКод авторизации – любое валидное значение; в коллекции по умолчанию "12345"Cancel
rquidУникальный идентификатор запросаВо всех сервисах
member_idИдентификатор клиентаCreate
sbp_member_idИдентификатор клиента в СБП. Для Сбербанка: константа: 100000000111Create СБП QR
id_qrИдентификатор устройства, на котором сформирован заказCreate QR, Cancel
tidУникальный идентификатор терминалаCreate СБП, Status, Cancel
order_sumСумма заказа в копейках; в коллекции настроена как рандомное число от 0 до 1000Create
todayПеременная для генерации текущей даты; в registry применяется для предоставления реестра операций за день. При желании можно изменить на любое валидное значение даты и времени.REGISTRY
tmПеременная для генерации текущей даты и времениВо всех сервисах
position_sumСумма конкретной позиции заказа в копейках; в коллекции настроена как рандомное число от 0 до 1000Create
operation_idИдентификатор операции (оплаты/возврата)Status – тело ответа (отдельно по каждой операции); подставляется в тело запроса Cancel – например, для возврата или отмены оплаченного заказа
Заметили ошибку?
Выделите текст и нажмите
Ctrl
+
Enter
, чтобы сообщить нам об ошибке