Сценарий из mcp-everything. Актуально на 2026-10-24.
Клиент заходит через СберБизнес ID, а сервис получает токены для работы с его счетами — первый шаг любой интеграции.
curl -X POST 'https://fintech.sberbank.ru:9443/ic/sso/api/v2/oauth/token' \
--cert-type P12 --cert client.p12:<пароль сертификата> \
-H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: application/json' \
-d grant_type=authorization_code -d code=<код> \
-d client_id=<client_id> -d client_secret=<client_secret> \
--data-urlencode 'redirect_uri=https://example.ru/sber/callback'
https://fintech.sberbank.ru:9443https://fintech-test.sberbank.ru:9443https://sbi.sberbank.ru:9443/ic/sso/api/v2/oauth/authorizeТип: OAuth 2.0
Авторизация по OAuth 2.0 (authorization code flow) через СберБизнес ID. Платформа получает при подключении client_id и client_secret, перенаправляет пользователя на /ic/sso/api/v2/oauth/authorize, получает код на redirect_uri и обменивает его на access_token, refresh_token и id_token. Запросы к API передают токен в заголовке Authorization. access_token живёт 60 минут.
Дополнительно обязателен клиентский TLS-сертификат (mTLS) в формате PKCS#12 (.p12) и установленные корневые сертификаты УЦ Сбера и Минцифры России. Сертификат выпускается в личном кабинете Sber API (для песочницы — на вкладке «Песочница API»), действует 12 месяцев и только для одного clientId.
curl --location 'https://fintech-test.sberbank.ru:9443/fintech/api/v1/client-info' \
--header 'Accept: application/json' \
--header 'Authorization: {value}'
Ссылка, которую платформа открывает в браузере пользователя (хост sbi.sberbank.ru:9443). После успешной аутентификации браузер возвращается на redirect_uri с кодом авторизации. Для песочницы используется промышленный URL с параметрами песочницы.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
response_type |
query | string | да | Только code |
client_id |
query | string | да | Идентификатор платформы |
redirect_uri |
query | uri | да | Адрес возврата; сверяется по маске с указанным при подключении |
scope |
query | string | да | Набор атрибутов и операций; обязательно содержит openid |
state |
query | string | да | Защита от CSRF, не короче 36 символов (буквы и цифры) |
nonce |
query | string | нет | Связь сессии с id_token, не короче 10 символов |
code_challenge |
query | string | нет | PKCE (RFC 7636) |
code_challenge_method |
query | string | нет | Только S256; обязателен при code_challenge |
prompt |
query | string | нет | none, login, consent, select_account |
Обменивает код авторизации на access_token, refresh_token, id_token или обновляет access_token (grant_type=refresh_token).
Пример ответа (сокращён):
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Content-Type |
header | string | да | application/x-www-form-urlencoded |
Accept |
header | string | нет | application/json (по умолчанию) или application/jose для зашифрованного ответа |
grant_type |
body | string | да | authorization_code или refresh_token |
code |
body | string | да | Код авторизации (для authorization_code) |
client_id |
body | string | да | Идентификатор платформы |
redirect_uri |
body | uri | да | Должен точно совпадать с переданным в /oauth/authorize |
client_secret |
body | string | да | Секретный ключ платформы |
code_verifier |
body | string | нет | Обязателен, если в /oauth/authorize передавался code_challenge |
Пример запроса:
{
"access_token": "BAAb16Adc851c14Ff5C73Fd57EDB5494708E6e",
"token_type": "Bearer",
"expires_in": 4801,
"refresh_token": "b89FABe82db60A13A81b160EBde2A5FfF815Dd",
"scope": "openid DICT GET_STATEMENT_ACCOUNT PAY_DOC_RU accounts inn orgKpp ...",
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJnb3N0MzQuMTAtMjAxMiJ9..."
}
Расширенная информация об организации пользователя и её счетах. В scope должен быть сервис GET_CLIENT_ACCOUNTS.
Пример ответа (сокращён):
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Authorization |
header | string | да | Access token организации-клиента |
Пример запроса:
{
"shortName": "ООО \"Сокращенное наименование\"",
"fullName": "ООО \"Полное наименование\"",
"resident": true,
"ogrn": "5186069854119",
"inn": "0102573875",
"okpo": "00040778",
"territorialBank": "Калужское отделение № 8608",
"nonClient": false,
"isCorpCardHolder": false,
"hasActiveCreditLine": true,
"creditLineAvailableSum": "348235.00"
}
clientId свой сертификат.access_token живёт 60 минут. Использованный refresh_token остаётся резервным 2 часа; если новая пара не дошла, повторите обновление с тем же refresh_token в течение часа.scope ссылки авторизации (например PAY_DOC_RU, GET_STATEMENT_ACCOUNT, GET_CLIENT_ACCOUNTS).digestSignatures создаётся черновиком. Порядок и количество полей дайджеста для подписи менять нельзя./sber-api/llms-full.txt.Если этого недостаточно — официальная документация: https://developers.sber.ru/docs/ru/sber-api/overview Вся интеграция одним документом: https://mcp-everything.ru/integrations/sberbusiness.md