Модульбанк API: Вернуть оплату по динамическому QR-коду СБП

Сценарий из mcp-everything. Актуально на 2026-10-13.

Возврат создаётся по номеру исходной операции СБП. Метод возвращает requestId, по которому запрашивается итоговый статус.

  1. Получи токен с правами account-info и operation-upload.
  2. Запроси GET /sbp/qr-codes/{qrcId} и возьми operationId успешной оплаты для передачи как sbpOperId.
  3. Создай полный или частичный возврат: POST /sbp/qr-codes/refund.
  4. Возьми requestId из ответа и передай его как refundId в GET /sbp/qr-codes/refund/{refundId}.
  5. Проверь status возврата; пример завершённого статуса в документации — Executed.
curl -X POST 'https://api.modulbank.ru/v1/sbp/qr-codes/refund' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "sbpOperId": "A931608381015300KXVWKp1837BE5609",
    "type": "full",
    "remitInfo": ""
  }'

curl -X GET 'https://api.modulbank.ru/v1/sbp/qr-codes/refund/13a8804e-ded0-4f29-a231-725ffce47859' \
  -H 'Authorization: Bearer <access_token>'

Базовые URL

Авторизация

Тип: Bearer-токен

Для работы только со своей учётной записью сгенерируй токен в личном кабинете через пункт «Подключиться к API». Передавай его в каждом запросе в заголовке Authorization: Bearer <access_token> и не передавай третьим лицам.

Для приложения других пользователей зарегистрируй приложение через api@modulbank.ru и получи clientId и clientSecret. Отправь пользователя на GET /oauth/authorize с clientId, redirectUri, scope и state, затем немедленно обменяй одноразовый code через POST /oauth/token. Доступные права scope: account-info, operation-history, operation-upload.

В песочнице используй clientId: sandboxapp, clientSecret: sandboxappsecret и Authorization: Bearer sandboxtoken; реальные идентификаторы и токены там запрещены.

Методы сценария

GET /sbp/qr-codes/{qrcId} — Получение данных QR-кода

Возвращает свойства и статус QR-кода: NotStarted, Received, InProgress, Accepted, Rejected или TimedOut.

Документация: https://api.modulbank.ru/#tag/QR-Pay/paths/~1sbp~1qr-codes~1%7BqrcId%7D/get

Параметр Где Тип Обяз. Описание
qrcId path string да ID QR-кода

POST /sbp/qr-codes/refund — Возврат по платежу

Создаёт возврат по sbpOperId. type принимает full или partial; amount передаёт сумму частичного возврата, remitInfo — причину длиной до 140 символов.

Документация: https://api.modulbank.ru/#tag/QR-Pay/paths/~1sbp~1qr-codes~1refund/post

GET /sbp/qr-codes/refund/{refundId} — Статус возврата

Возвращает исходную операцию СБП, операцию возврата, сумму и статус.

Документация: https://api.modulbank.ru/#tag/QR-Pay/paths/~1sbp~1qr-codes~1refund~1%7BrefundId%7D/get

Параметр Где Тип Обяз. Описание
refundId path string да ID возврата

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://api.modulbank.ru/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/modulbank.md