---
slug: "sberbusiness"
name: "Sber API (СберБизнес API)"
vendor: "Сбербанк"
industry: "finance"
docsUrl: "https://developers.sber.ru/docs/ru/sber-api/overview"
version: 2
updatedAt: "2026-10-24"
---

# Sber 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).

```bash
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 организации.

```bash
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. Вместо частого опроса можно получать финальный статус вебхуком.

```bash
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

- Боевой: `https://fintech.sberbank.ru:9443`
- Тестовый (песочница): `https://fintech-test.sberbank.ru:9443`
- Страница авторизации СберБизнес ID: `https://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}'
```

## Методы

### 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 <access_token> |

### 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 организации-клиента |

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

```json
{
  "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" }
}
```

## Нюансы

- Без клиентского TLS-сертификата (mTLS) запросы к API не проходят; тестовые сертификаты работают только в песочнице, у каждого `clientId` свой сертификат.
- `access_token` живёт 60 минут. Использованный `refresh_token` остаётся резервным 2 часа; если новая пара не дошла, повторите обновление с тем же `refresh_token` в течение часа.
- Каждый метод требует своего сервиса в `scope` ссылки авторизации (например `PAY_DOC_RU`, `GET_STATEMENT_ACCOUNT`, `GET_CLIENT_ACCOUNTS`).
- Платёжное поручение без `digestSignatures` создаётся черновиком. Порядок и количество полей дайджеста для подписи менять нельзя.
- Выписку запрашивают постранично начиная с первой страницы; доступна за 5 предыдущих лет и текущий год.
- В песочнице ответы зависят от тестовых данных: сценарии и фиксированные значения указаны на странице каждого метода. Нагрузочное тестирование в песочнице не предусмотрено.
- О финальном статусе платёжного поручения банк может сообщить вебхуком — без постоянного опроса статуса.
- Для работы с дочерними организациями в наборе «Холдингам» нужна отдельная пара токенов для каждой организации.
- У Sber API есть MCP-сервер для AI-агентов (набор «Компаниям»: рублёвое платёжное поручение, выписка, инкассация, НСО и депозиты), а документация доступна в формате llms.txt: `/sber-api/llms-full.txt`.

## Ошибки

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

## Источники

- [Sber API — обзор](https://developers.sber.ru/docs/ru/sber-api/overview)
- [Наборы Sber API](https://developers.sber.ru/docs/ru/sber-api/start/overview)
- [TLS-сертификат](https://developers.sber.ru/docs/ru/sber-api/start/tls)
- [Песочница API](https://developers.sber.ru/docs/ru/sber-api/start/sandbox)
- [Получение кода авторизации](https://developers.sber.ru/docs/ru/sber-api/specifications/oauth/oauth-authorize-get)
- [Получение токенов](https://developers.sber.ru/docs/ru/sber-api/specifications/oauth/oauth-token-post)
- [Информация о клиенте](https://developers.sber.ru/docs/ru/sber-api/specifications/client-info/get-client-info)
- [Создание РПП](https://developers.sber.ru/docs/ru/sber-api/specifications/payments/create-payment)
- [Статус РПП](https://developers.sber.ru/docs/ru/sber-api/specifications/payments/get-payment-state)
- [Выписка по счёту](https://developers.sber.ru/docs/ru/sber-api/specifications/statement/transactions)
- [MCP](https://developers.sber.ru/docs/ru/sber-api/mcp/overview)
- [Работа с документацией в LLM](https://developers.sber.ru/docs/ru/sber-api/start/using-docs-with-llm)

---

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