FAQ
В этом разделе вы найдете ответы на часто задаваемые вопросы.
- Все
- Авторизация
- Выписка
- Платежи
- Письма
- Общие вопросы
Для работы с сервисами Sber API необходимо иметь действующую учетную запись СберБизнес ID для прохождения авторизации. Также для осуществл ения запросов к сервисам Sber API, подразумевающих создание документов с подписью, учетная запись должна иметь соответствующие полномочия, которые определяются при создании пользователя в СберБизнес.
Параметр | Описание | Срок жизни | Способ получения | Примечания и ссылки |
---|---|---|---|---|
Authorization Code | Рекомендация: Это одноразовый код и срок жизни 2 минуты. Механизм его получения инициируется пользователем (логин в СберБизнес ID). Система должна быть готова немедленно его использовать. Техническая реализация: Серверная часть приложения, обрабатывающая redirect_uri, должна быть высокодоступной и иметь минимальну ю задержку. Получив код, она должна немедленно (в течение секунд, а не минут) выполнить запрос на /oauth/token для его обмена на токены. Не ставить в очередь на асинхронную обработку — он может успеть “протухнуть”. | 2 минуты | Только через авторизацию по ссылке | Пользователь проходит аутентификацию в СберБизнес ID, и браузер перенаправляется на ваш redirect_uri с кодом в параметрах. Спецификация: Получение кода авторизации |
Access Token | Рекомендация: Реализуйте автоматический механизм обновления по истечении срока его действия (60 минут) или при получении ошибки 401 Unauthorized. Необходимо обеспечить безопасное хранение. Техническая реализация: Кэширование с проверкой срока: Сохраняйте токен вместе с временем его получения. Перед каждым вызовом API проверяйте, не истек ли срок его жизни (например, если прошло >55 минут). Авто-обновление по ошибке: Реализуйте перехватчик, который при получении 401 ошибки от Банка автоматически: Использует имеющийся refresh_token для запроса нового access_token. Повторяет исходный запрос с новым токеном. Для пользователя этот процесс должен быть невидим. Не используйте долгоживущий токен из ЛК в ПРОМ: Токен на 30 дней из Личного кабинета — это исключение, предоставляемое для удобства разработки. Как только вы обновите токен полученный в ЛК с помощью методов API, он превращается в стандартный 60 мину тный токен. | 60 минут (при получении через API) 30 дней (при выпуске в ЛК) | 1. Через API (в ответ на запрос с authorization code) 2. В Личном кабинете Sber API | Токен для доступа к API. Спецификация: Получение токенов доступа Личный кабинет: инструкция |
Refresh Token | Рекомендация: Это ключ к долгосрочной работе без участия пользователя. Необходимо обеспечить безопасное хранение. Техническая реализация: Безопасное хранение: Храните его в зашифрованном виде в надежном хранилище. Не логируйте его и не коммитьте в код. Жизненный цикл (180 дней с последнего использования): Срок жизни refresh_token обновляется каждый раз, когда вы его успешно используете. Это значит, что при каждом обновлении пары токенов вы получаете новый refresh_token с новым "счетчиком" в 180 дней. Постоянная валидность: Необходимо обновлять пару токенов хотя бы раз в 180 дней. Привязка к пользователю: Четко связывайте пару access/refresh token с учетной записью пользователя в вашей системе, чтобы при запросе знать, чьи токены обновлять. | 180 дней (через API и из ЛК) | 1. Через API (в ответ на запрос с authorization code) 2. В Личном кабинете Sber API | Используется для получения новой пары access/refresh_token. Истекает через 180 дней с момента последнего использования. Спецификация: Обновление access_token, refresh_token Личный кабинет: инструкция |
Client Secret | Рекомендация: Это самый критичный параметр. Без Client Secret невозможна процедура получения/обновления токенов. Реализуйте строгий процесс обновления до истечения срока его действия (40 дней). Необходимо обеспечить безопасное хранение. Техническая реализация: Установите напоминание на 35-й день жизни текущего секрета. Это даст запас в 5 дней на решение возможных проблем. Дополнительно Банк оповещает о окончании client_secret с помощью sms и письма на почту уполномоченного лица по договору. Автоматизация через API: Предпочтительный способ. Напишите скрипт, который через API автоматически генерирует новый секрет каждый 38й день. Ротация через ЛК или поддержку: Если автоматизация через API невозможна, добавьте в план ручное обновление через Личный кабинет по напоминанию. Способ через поддержку — аварийный, на случай если Client Secret истек, а в ЛК доступа нет. Программный код: не храните client_secret в коде приложения, конфигурационных файлах (особенно в git) или переменных окружения на машинах разработчиков. Только в специализированных защищенных хранилищах. | 40 дней (через API и из ЛК) | 1. Через API 2. В Личном кабинете Sber API 3. Через запрос с почты уполномоченного лица на поддержку | Нельзя передавать третьим лицам. Необходимо регулярно обновлять. Спецификация: Обновление Client Secret Личный кабинет: инструкция Почта поддержки: supportdbo2@sberbank.ru |
Любым Authorization Code можно воспользоваться только один раз в течение 2-х минут. При запросе нового Authorization Code, старый код остается действующим в течение установленного срока (3 минуты на тестовых стендах). Любая попытка обмена Authorization Code на Access Token приведет либо к успешному обмену и выдачи токена, либо, при наличии ошибок в запросе токена, сделает Authorization Code невалидным.
Повторное получение авторизационного кода не требуется, достаточно будет выполнить обновление авторизационного токена согласно документации Запрос на обновление Access Token.
-
Рекомендуется обновлять ключи доступа (Access Token/Refresh Token) как минимум один раз за время жизни Refresh Token. В случае если Refresh Token потеряет актуальность (не будет обновлен до истечения времени жизни), партнер сможет получить актуальные ключи доступа только после повторной авторизации клиента в сервисе партнера через СберБизнес.
-
Если при обновлении ключей доступа не был получен ответ из банка, то рекомендуется повторно отправить запрос на актуализацию ключей в течение 1 часа от момента отправки первой попытки.
При обращении к ресурсам Sber API токен должен быть действительным на момент запроса. Срок действия т окена 60 минут. Таким образом токен можно обновлять:
- либо непосредственно перед отправкой запроса, если запросы отправляются реже, чем раз в 1 час;
- либо регулярно раз в час.
Срок действия client secret составляет 40 дней.
Длина client secret может составлять от 8 до 256 символов.
Аналогично получению выписки по счетам собственной организации, но с использованием АТ пользователя дочерней.
Код возврата 202 STATEMENT_RESPONSE_PROCESSING
означает, что в СберБизнес не была сформирована выписка по запрашиваемым параметрам, либо сформированная выписка неактуальна.
В каждом из этих случаев получение указанного кода возврата также означает, что в СберБизнес инициирован процесс формирования или актуализации выписки по запрошенным параметрам.
Формирование выписки может занять до нескольких минут, после чего можно выполнить запрос повторно.
Обычно выписка формируется автоматически по мере поступления информации об операциях по счету. Полная синхронизация данных об операциях за прошедший день происходит каждый раз после его окончания.
Методы получения информации об операциях в Sber API доступны и в выходные дни, однако на первый запрос может вернуться код возврата 202 STATEMENT_RESPONSE_PROCESSING
.
В Sber API реализован контроль, исключающий создание дублирующего документа. Данная ошибка означает, что в СберБизнес уже существует документ того же типа, для которого значения параметров: номер документа, дата создания, счет плательщика, сумма платежа; полностью совпадают со значениями аналогичных параметров из запроса.
backUrl
при осуществлении перенаправления клиента?-
При передаче
backUrl
необходимо выполнять URLEncode (подробнее в спецификации RFC3986 ). При осуществлении перенаправления выполняется преобразование закодированной для передачи в URL-адрес строки в декодированную строку.Пример:
Исходный
backUrl
:http://sberbank.ru1/sites/ShopingCard%23RCM-Contracts
Декодированный
backUrl
:http://sberbank.ru1/sites/ShopingCard#RCM-Contracts
-
Параметр
backUrl
является необязательным и в случае его отсутствия в ссылке клиент не сможет вернуться в сервис Партнера. -
Параметр
backUrl
должен соответствовать адресу сервиса Партнера, указанному при регистрации в банке.
Новые документы добавляются в начало первой страницы.
SENDED_TO_PAYER
от конечного SENDED_TO_PAYER
в ответе на запрос GET /v1/payment-requests/outgoing/{externalId}/state?Статус SENDED_TO_PAYER
:
- промежуточный, если ИПТ выставлено в адрес плательщика, который является клиентом Сбербанка,
- окончательный, если ИПТ выставлено в адрес плательщика, который не является клиентом Сбербанка.
Банк не предоставляет такую услугу, но вы можете ознакомиться со списком участников нашей партнерской программы по ссылке .
Вы можете воспользоваться SDK - готовыми инструментами для взаимодействия с Sber API. На данный момент только для Java.
Вы можете узнать своего клиентского менеджера в на линии поддержки 0321 (моб).
В случае возникновения ошибок проверки электрон ной подписи/ошибки несоответствия подписи, проверьте соответствие сформированной строки base64 требованиям к электронной подписи. Требования к электронной подписи представлены в документации:
- Подпись CaDES-BES в формате PEM;
- Подпись открепленная — detatched;
- Алгоритм цифровой подписи ГОСТ Р 34.10-2012 для ключей длины 256 бит;
- Блок с сертификатами (Certificates) обязателен — включает сертификат подписанта;
- Данные подписанта (Signer Info) — содержит информацию только по одному подписанту;
- Присутствует время формирования подписи (Signing Time).
Проверить сформированную подпись можно на странице Удостоверяющего центра :
- Выберете раздел «Проверка электронной подписи»
- Выберете тип электронной подписи - Отсоединенная (электронная подпись содержится в отдельном файле)
Дополнительно проверьте дайджест на соответствие требованиям:
- Необходимо использовать кодировку UTF-8;
- Поля дайджеста должны быть отсортированы по алфавиту (от A до Z);
- Значения сумм и комиссий должны задаваться с точностью 2 знака после точки;
- Значения сумм и комиссий в дайджесте и в запросе должны быть идентичны;
- Если какое-то поле не заполняется, его не требуется добавлять в дайджест;
- Разделитель строк должен быть в формате unix (одиночный \n);
- Последняя строка дайджеста не должна содержать перевод строки;
- Перевод строк должен быть экранирован как \n;
- При заполнении полей с данными компании (название компании, например) используйте значения, полученные от Банка в рамках запросов API (в том числе с сохранением регистра).
Ссылка авторизации не меняется при использовании смс или токена, отличаются процессы авторизации. У пользователя с типом защиты СМС после ввода логина и пароля необходимо ввести одноразовый СМС-код. Если логин и пароль вводит пользователь с типом защиты токен, то ему необходимо авторизоваться в СберБизнесе через usb-token, а затем пройти авторизацию СберБизнес ID.
Полностью исключить аутент ификацию через сайт в Sber API нет возможности, но при правильной настройке, это потребуется сделать только один раз.
- Однажды авторизоваться через браузер и получить код авторизации.
- Запросом обменять код авторизации на пару токенов, access и refresh.
- Настроить дальнейшее обновление пары токенов с помощью ранее полученного refresh токена запросом.
- Использовать получаемые access токены в запросах выписки.
- Настроить обновление client_secret каждые 40 дней запросом.
Для работы с сервисами Sber API необходимо иметь действующую учетную запись СберБизнес ID для прохождения авторизации. Также для осуществления запросов к сервисам Sber API, подразумевающих создание документов с подписью, учетная запись должна иметь соответствующие полномочия, которые определяются при создании пользователя в СберБизнес.
Параметр | Описание | Срок жизни | Способ получения | Примечания и ссылки |
---|---|---|---|---|
Authorization Code | Рекомендация: Это одноразовый код и срок жизни 2 минуты. Механизм его получения инициируется пользователем (логин в СберБизнес ID). Система должна быть готова немедленно его использовать. Техническая реализация: Серверная часть приложения, обрабатывающая redirect_uri, должна быть высокодоступной и иметь минимальную задержку. Получив код, она должна немедленно (в течение секунд, а не минут) выполнить запрос на /oauth/token для его обмена на токены. Не ставить в очередь на асинхронную обработку — он может успеть “протухнуть”. | 2 минуты | Только через авторизацию по ссылке | Пользователь проходит аутентификацию в СберБизнес ID, и браузер перенаправляется на ваш redirect_uri с кодом в параметрах. Спецификация: Получение кода авторизации |
Access Token | Рекомендация: Реализуйте автоматический механизм обновления по истечении срока его действия (60 минут) или при получении ошибки 401 Unauthorized. Необходимо обеспечить безопасное хранение. Техническая реализация: Кэширование с проверкой срока: Сохраняйте токен вместе с временем его получения. Перед каждым вызовом API проверяйте, не истек ли срок его жизни (например, если прошло >55 минут). Авто-обновление по ошибке: Реализуйте перехватчик, который при получении 401 ошибки от Банка автоматически: Использует имеющийся refresh_token для запроса нового access_token. Повторяет исходный запрос с новым токеном. Для пользователя этот процесс должен быть невидим. Не используйте долгоживущий токен из ЛК в ПРОМ: Токен на 30 дней из Личного кабинета — это исключение, предоставляемое для удобства разработки. Как только вы обновите токен полученный в ЛК с помощью методов API, он превращается в стандартный 60 мину тный токен. | 60 минут (при получении через API) 30 дней (при выпуске в ЛК) | 1. Через API (в ответ на запрос с authorization code) 2. В Личном кабинете Sber API | Токен для доступа к API. Спецификация: Получение токенов доступа Личный кабинет: инструкция |
Refresh Token | Рекомендация: Это ключ к долгосрочной работе без участия пользователя. Необходимо обеспечить безопасное хранение. Техническая реализация: Безопасное хранение: Храните его в зашифрованном виде в надежном хранилище. Не логируйте его и не коммитьте в код. Жизненный цикл (180 дней с последнего использования): Срок жизни refresh_token обновляется каждый раз, когда вы его успешно используете. Это значит, что при каждом обновлении пары токенов вы получаете новый refresh_token с новым "счетчиком" в 180 дней. Постоянная валидность: Необходимо обновлять пару токенов хотя бы раз в 180 дней. Привязка к пользователю: Четко связывайте пару access/refresh token с учетной записью пользователя в вашей системе, чтобы при запросе знать, чьи токены обновлять. | 180 дней (через API и из ЛК) | 1. Через API (в ответ на запрос с authorization code) 2. В Личном кабинете Sber API | Используется для получения новой пары access/refresh_token. Истекает через 180 дней с момента последнего использования. Спецификация: Обновление access_token, refresh_token Личный кабинет: инструкция |
Client Secret | Рекомендация: Это самый критичный параметр. Без Client Secret невозможна процедура получения/обновления токенов. Реализуйте строгий процесс обновления до истечения срока его действия (40 дней). Необходимо обеспечить безопасное хранение. Техническая реализация: Установите напоминание на 35-й день жизни текущего секрета. Это даст запас в 5 дней на решение возможных проблем. Дополнительно Банк оповещает о окончании client_secret с помощью sms и письма на почту уполномоченного лица по договору. Автоматизация через API: Предпочтительный способ. Напишите скрипт, который через API автоматически генерирует новый секрет каждый 38й день. Ротация через ЛК или поддержку: Если автоматизация через API невозможна, добавьте в план ручное обновление через Личный кабинет по напоминанию. Способ через поддержку — аварийный, на случай если Client Secret истек, а в ЛК доступа нет. Программный код: не храните client_secret в коде приложения, конфигурационных файлах (особенно в git) или переменных окружения на машинах разработчиков. Только в специализированных защищенных хранилищах. | 40 дней (через API и из ЛК) | 1. Через API 2. В Личном кабинете Sber API 3. Через запрос с почты уполномоченного лица на поддержку | Нельзя передавать третьим лицам. Необходимо регулярно обновлять. Спецификация: Обновление Client Secret Личный кабинет: инструкция Почта поддержки: supportdbo2@sberbank.ru |
Любым Authorization Code можно воспользоваться только один раз в течение 2-х минут. При запросе нового Authorization Code, старый код остается действующим в течение установленного срока (3 минуты на тестовых стендах). Любая попытка обмена Authorization Code на Access Token приведет либо к успешному обмену и выдачи токена, либо, при наличии ошибок в запросе токена, сделает Authorization Code невалидным.
Повторное получение авторизационного кода не требуется, достаточно будет выполнить обновление авторизационного токена согласно документации Запрос на обновление Access Token.
-
Рекомендуется обновлять ключи доступа (Access Token/Refresh Token) как минимум один раз за время жизни Refresh Token. В случае если Refresh Token потеряет актуальность (не будет обновлен до истечения времени жизни), партнер сможет получить актуальные ключи доступа только после повторной авторизации клиента в сервисе партнера через СберБизнес.
-
Если при обновлении ключей доступа не был получен ответ из банка, то рекомендуется повторно отправить запрос на актуализацию ключей в течение 1 часа от момента отправки первой попытки.
При обращении к ресурсам Sber API токен должен быть действительным на момент запроса. Срок действия т окена 60 минут. Таким образом токен можно обновлять:
- либо непосредственно перед отправкой запроса, если запросы отправляются реже, чем раз в 1 час;
- либо регулярно раз в час.
Срок действия client secret составляет 40 дней.
Длина client secret может составлять от 8 до 256 символов.
Ссылка авторизации не меняется при использовании смс или токена, отличаются процессы авторизации. У пользователя с типом защиты СМС после ввода логина и пароля необходимо ввести одноразовый СМС-код. Если логин и пароль вводит пользователь с типом защиты токен, то ему необходимо авторизоваться в СберБизнесе через usb-token, а затем пройти авторизацию СберБизнес ID.
Полностью исключить аутентификацию через сайт в Sber API нет возможности, но при правильной настройке, это потребуется сделать только один раз.
- Однажды авторизоваться через браузер и получить код авторизации.
- Запросом обменять код авторизации на пару токенов, access и refresh.
- Настроить дальнейшее обновление пары токенов с помощью ранее полученного refresh токена запросом.
- Использовать получаемые access токены в запросах выписки.
- Настроить обновление client_secret каждые 40 дней запросом.
Аналогично получению выписки по счетам собственной организации, но с использованием АТ пользователя дочерней.
Код возврата 202 STATEMENT_RESPONSE_PROCESSING
означает, что в СберБизнес не была сформирована выписка по запрашиваемым параметрам, либо сформированная выписка неактуальна.
В каждом из этих случаев получение указанного кода возврата также означает, что в СберБизнес инициирован процесс формирования или актуализации выписки по запрошенным параметрам.
Формирование выписки может занять до нескольких минут, после чего можно выполнить запрос повторно.
Обычно выписка формируется автоматически по мере поступления информации об операциях по счету. Полная синхронизация данных об операциях за прошедший день происходит каждый раз после его окончания.
Методы получения информации об операциях в Sber API доступны и в выходные дни, однако на первый запрос может вернуться код возврата 202 STATEMENT_RESPONSE_PROCESSING
.
В Sber API реализован контроль, исключающий создание дублирующего документа. Данная ошибка означает, что в СберБизнес уже существует документ того же типа, для которого значения параметров: номер документа, дата создания, счет плательщика, сумма платежа; полностью совпадают со значениями аналогичных параметров из запроса.
backUrl
при осуществлении перенаправления клиента?-
При передаче
backUrl
необходимо выполнять URLEncode (подробнее в спецификации RFC3986 ). При осуществлении перенаправления выполняется преобразование закодированной для передачи в URL-адрес строки в декодированную строку.Пример:
Исходный
backUrl
:http://sberbank.ru1/sites/ShopingCard%23RCM-Contracts
Декодированный
backUrl
:http://sberbank.ru1/sites/ShopingCard#RCM-Contracts
-
Параметр
backUrl
является необязательным и в случае его отсутствия в ссылке клиент не сможет вернуться в сервис Партнера. -
Параметр
backUrl
должен соответствовать адресу сервиса Партнера, указанному при регистрации в банке.
SENDED_TO_PAYER
от конечного SENDED_TO_PAYER
в ответе на запрос GET /v1/payment-requests/outgoing/{externalId}/state?Статус SENDED_TO_PAYER
:
- промежуточный, если ИПТ выставлено в адрес плательщика, который является клиентом Сбербанка,
- окончательный, если ИПТ выставлено в адрес плательщика, который не является клиентом Сбербанка.
Новые документы добавляются в начало первой страницы.
Банк не предоставляет такую услугу, но вы можете ознакомиться со списком участников нашей партнерской программы по ссылке .
Вы можете воспользоваться SDK - готовыми инструментами для взаимодействия с Sber API. На данный момент только для Java.
Вы можете узнать своего клиентского менеджера в на линии поддержки 0321 (моб).
В случае возникновения ошибок проверки электрон ной подписи/ошибки несоответствия подписи, проверьте соответствие сформированной строки base64 требованиям к электронной подписи. Требования к электронной подписи представлены в документации:
- Подпись CaDES-BES в формате PEM;
- Подпись открепленная — detatched;
- Алгоритм цифровой подписи ГОСТ Р 34.10-2012 для ключей длины 256 бит;
- Блок с сертификатами (Certificates) обязателен — включает сертификат подписанта;
- Данные подписанта (Signer Info) — содержит информацию только по одному подписанту;
- Присутствует время формирования подписи (Signing Time).
Проверить сформированную подпись можно на странице Удостоверяющего центра :
- Выберете раздел «Проверка электронной подписи»
- Выберете тип электронной подписи - Отсоединенная (электронная подпись содержится в отдельном файле)
Дополнительно проверьте дайджест на соответствие требованиям:
- Необходимо использовать кодировку UTF-8;
- Поля дайджеста должны быть отсортированы по алфавиту (от A до Z);
- Значения сумм и комиссий должны задаваться с точностью 2 знака после точки;
- Значения сумм и комиссий в дайджесте и в запросе должны быть идентичны;
- Если какое-то поле не заполняется, его не требуется добавлять в дайджест;
- Разделитель строк должен быть в формате unix (одиночный \n);
- Последняя строка дайджеста не должна содержать перевод строки;
- Перевод строк должен быть экранирован как \n;
- При заполнении полей с данными компании (название компании, например) используйте значения, полученные от Банка в рамках запросов API (в том числе с сохранением регистра).