Sber API (СберБизнес API) API

Отрасль: Платежи и финансы. Актуально на 2026-10-24.

Банковский API Сбера для юрлиц и ИП, подключённых к СберБизнес: информация о компании и счетах, выписки, рублёвые платёжные поручения, бизнес-карты, СБП, зарплатный проект, депозиты, валютный контроль и другие сервисы. Доступные методы определяются набором («Компаниям», «Холдингам», «Платформам», «СберБизнес ID» и др.), который закрепляется в договоре. Подключение бесплатное.

Сценарии

Подключить организацию через СберБизнес ID

Клиент заходит через СберБизнес ID, а сервис получает токены для работы с его счетами — первый шаг любой интеграции.

  1. Подключись к Sber API: получи client_id, client_secret и выпусти в личном кабинете клиентский TLS-сертификат (.p12). Без сертификата (mTLS) запросы к API не проходят; для песочницы сертификат отдельный.
  2. Отправь пользователя на страницу авторизации: GET /ic/sso/api/v2/oauth/authorize на хосте sbi.sberbank.ru:9443 с response_type = code, client_id, redirect_uri, scope (обязательно openid и нужные сервисы, например GET_STATEMENT_ACCOUNT, PAY_DOC_RU) и state — строкой не короче 36 символов.
  3. Пользователь вернётся на redirect_uri с code. Обменяй его: POST /ic/sso/api/v2/oauth/token с grant_type = authorization_code, code, client_id, client_secret и тем же redirect_uri.
  4. access_token живёт 60 минут. Обновляй его тем же методом с grant_type = refresh_token; если новая пара не дошла, повтори обновление со старым refresh_token в течение часа.
  5. Проверь, что за организация подключилась: GET /fintech/api/v1/client-info (нужен сервис GET_CLIENT_ACCOUNTS в scope).
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'

Получить выписку по счёту за день

Автоматическая сверка поступлений: остатки, обороты и все операции по расчётному счёту.

  1. В scope авторизации должен быть сервис GET_STATEMENT_ACCOUNT.
  2. Получи сводку за день: GET /fintech/api/v2/statement/summary с accountNumber (20 цифр) и statementDate (yyyy-MM-dd) — входящий и исходящий остатки и обороты.
  3. Получи операции: GET /fintech/api/v2/statement/transactions с теми же параметрами и page, начиная с 1. Переходи по страницам, пока в _links есть ссылка на следующую.
  4. Выписка доступна за 5 предыдущих лет и текущий год. Каждый запрос — с клиентским сертификатом и access_token организации.
curl -G 'https://fintech.sberbank.ru:9443/fintech/api/v2/statement/transactions' \
  --cert-type P12 --cert client.p12:<пароль сертификата> \
  -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Accept: application/json' \
  -d accountNumber=40702810500006103990 -d statementDate=2026-10-23 -d page=1

Создать платёжное поручение и узнать его статус

Платежи поставщикам и налоги из своей учётной системы — без ручного ввода в СберБизнес.

  1. В scope нужен сервис PAY_DOC_RU.
  2. Создай поручение: POST /fintech/api/v1/payments с externalId (твой UUID документа), date, amount, operationCode = 01, priority, purpose (до 210 символов), реквизитами плательщика (payerName, payerInn, payerAccount, payerBankBic, payerBankCorrAccount) и получателя (payeeName, payeeBankBic и счёт).
  3. Без электронной подписи digestSignatures поручение создаётся черновиком — клиент подписывает его в интерфейсе СберБизнес. С подписью банк сразу начинает обработку; порядок полей дайджеста менять нельзя.
  4. Проверяй статус: GET /fintech/api/v1/payments/{externalId}/state — bankStatus и bankComment. Вместо частого опроса можно получать финальный статус вебхуком.
curl -X POST 'https://fintech.sberbank.ru:9443/fintech/api/v1/payments' \
  --cert-type P12 --cert client.p12:<пароль сертификата> \
  -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Content-Type: application/json' \
  -d '{
        "externalId": "a0000000-0000-0000-0000-000000001042",
        "date": "2026-10-24",
        "amount": 15000.00,
        "operationCode": "01",
        "priority": "5",
        "purpose": "Оплата по счёту № 305 от 20.10.2026. В т.ч. НДС 20% - 2500.00",
        "payerName": "ООО \"Ромашка\"", "payerInn": "7700000000", "payerAccount": "40702810500000000001",
        "payerBankBic": "044525225", "payerBankCorrAccount": "30101810400000000225",
        "payeeName": "ООО \"Поставщик\"", "payeeInn": "7800000000", "payeeAccount": "40702810600000000002",
        "payeeBankBic": "044030653", "payeeBankCorrAccount": "30101810500000000653"
      }'

Базовые URL

Авторизация

Тип: 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}'

Методы

GET /ic/sso/api/v2/oauth/authorize — Получение кода авторизации

Ссылка, которую платформа открывает в браузере пользователя (хост 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

POST /ic/sso/api/v2/oauth/token — Получение и обновление токенов

Обменивает код авторизации на 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..."
}

GET /fintech/api/ic/sso/api/v2/oauth/user-info — Информация об учётной записи

Возвращает данные клиента в виде ID token (JWT). Набор атрибутов зависит от подключённого сервиса: accounts, email, inn, orgKpp, orgFullName и др.

Параметр Где Тип Обяз. Описание
Authorization header string да Bearer

GET /fintech/api/v1/client-info — Информация о клиенте

Расширенная информация об организации пользователя и её счетах. В 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"
}

POST /fintech/api/v1/payments — Создание рублёвого платёжного поручения

Создаёт РПП. Если передать электронную подпись (digestSignatures), банк сразу начнёт обработку; без подписи поручение создаётся черновиком, который нужно подписать в интерфейсе СберБизнес. В scope должен быть сервис PAY_DOC_RU.

Дайджест для подписи (порядок полей сохраняется):

Параметр Где Тип Обяз. Описание
Authorization header string да Access token организации-клиента
externalId body string (uuid) да Идентификатор документа, присвоенный партнёром
date body string (date) да Дата составления документа, YYYY-MM-DD
number body string нет Номер документа, до 8 цифр
amount body number да Сумма, от 0.01
operationCode body string да Код операции, 01
priority body string да Очерёдность платежа, 1–5
purpose body string да Назначение платежа, до 210 символов
payerName body string да Полное наименование плательщика
payerInn body string да ИНН плательщика
payerKpp body string нет КПП плательщика
payerAccount body string да Счёт плательщика, 20 цифр
payerBankBic body string да БИК банка плательщика
payerBankCorrAccount body string да Корсчёт банка плательщика
payeeName body string да Полное наименование получателя
payeeInn body string нет ИНН получателя
payeeKpp body string нет КПП получателя
payeeAccount body string нет Счёт получателя
payeeBankBic body string да БИК банка получателя
payeeBankCorrAccount body string нет Корсчёт банка получателя
urgencyCode body string нет Код срочности: INTERNAL, INTERNAL_NOTIF, OFFHOURS, BESP, NORMAL
deliveryKind body string нет Вид платежа
voCode body string нет Код вида валютной операции
departmentalInfo body object нет Бюджетные реквизиты (КБК, ОКТМО, статус составителя и др.)
vat body object нет НДС
incomeTypeCode body string нет Код вида дохода по 229-ФЗ
isPaidByCredit body boolean нет Оплата за счёт кредитных средств
creditContractNumber body string нет Номер кредитного договора
digestSignatures body object[] нет Электронные подписи дайджеста документа

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

amount=100.00
date=2018-05-31
departmentalInfo.docNumber108=123
departmentalInfo.drawerStatus101=01
departmentalInfo.kbk=18210102010011000110
departmentalInfo.oktmo=01701000
departmentalInfo.paymentKind110=НС
departmentalInfo.reasonCode106=ТП
departmentalInfo.uip=0
externalId=a0000000-0000-0000-0000-000000000001
incomeTypeCode=2
operationCode=01
payeeAccount=40702810600100001212
payeeBankBic=044525225
payeeBankCorrAccount=30101810400000000225
payeeInn=222201236445
payeeKpp=222201001
payeeName=Общество с ограниченной ответственностью "Получатель"
payerAccount=40702810500006103990
payerBankBic=044525225
payerBankCorrAccount=30101810400000000225
payerInn=222201236445
payerKpp=222201001
payerName=Общество с ограниченной ответственностью "Клиент"
priority=5
purpose=Оплата интернет заказа №123. НДС нет.
voCode=61150
creditContractNumber=2026/33556

GET /fintech/api/v1/payments/{externalId}/state — Статус рублёвого платёжного поручения

Статус ранее созданного поручения. Доступно с любым из сервисов PAY_DOC_RU, PAY_DOC_RU_INVOICE, PAY_DOC_RU_INVOICE_ANY, PAY_DOC_RU_INVOICE_BUDGET.

Параметр Где Тип Обяз. Описание
externalId path string да Внешний UUID платёжного поручения
Authorization header string да Access token организации-клиента

Пример ответа:

{
  "bankStatus": "PROCESSING",
  "bankComment": "Документ в обработке",
  "channelInfo": "string",
  "crucialFieldsHash": "12345678901234567890123456789012"
}

GET /fintech/api/v2/statement/transactions — Выписка по счёту

Выписка по рублёвому или валютному счёту за выбранную дату, постранично. Требуется сервис GET_STATEMENT_ACCOUNT.

Пример ответа (сокращён):

Параметр Где Тип Обяз. Описание
accountNumber query string да Номер счёта, 20 цифр
statementDate query string да Дата выписки, yyyy-MM-dd
page query integer да Номер страницы, начиная с 1
curFormat query string нет Формат операции по валютному счёту
Authorization header string да Access token организации-клиента
Accept header string нет application/json или application/jose

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

{
  "_links": [
    {
      "href": "?accountNumber=40702810500006103990&statementDate=2018-03-15&page=3",
      "rel": "string"
    }
  ],
  "transactions": [
    {
      "amount": { "amount": 1.01, "currencyName": "USD" },
      "amountRub": { "amount": 1.01, "currencyName": "USD" }
    }
  ]
}

GET /fintech/api/v2/statement/summary — Сводная информация по выписке

Входящие и исходящие остатки и обороты за день. Требуется сервис GET_STATEMENT_ACCOUNT.

Пример ответа (сокращён):

Параметр Где Тип Обяз. Описание
accountNumber query string да Номер счёта, 20 цифр
statementDate query string да Дата выписки, yyyy-MM-dd
Authorization header string да Access token организации-клиента

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

{
  "closingBalance": { "amount": 1.01, "currencyName": "USD" },
  "composedDateTime": "2022-04-04T23:59:59",
  "creditTransactionsNumber": 1,
  "creditTurnover": { "amount": 1.01, "currencyName": "USD" }
}

Нюансы

Ошибки

Код Описание
400 Некорректный запрос
401 Не авторизован
403 Доступ запрещён
404 Не найдено
415 Неподдерживаемый тип данных
429 Слишком много запросов
500 Внутренняя ошибка
503 Сервис недоступен

Источники


Если этого недостаточно — официальная документация: https://developers.sber.ru/docs/ru/sber-api/overview JSON: https://mcp-everything.ru/api/integrations/sberbusiness. MCP: https://mcp-everything.ru/mcp