ym88659208ym87991671
Совершить B2B/B2P-перевод | Документация для разработчиков

Совершить B2B/B2P-перевод

Обновлено 21 февраля 2024

Схема работы функциональности

Шаги

  1. Получить access_token
  2. Получить данные для перевода
  3. Получить размер комиссии
  4. Создать заявление на перевод
  5. Получить статус заявления

Usecase

Участники

  • Сотрудник - представитель ЮЛ/ИП, на которого была выпущена бизнес-карта и который имеет пользовательский профиль в СберБизнес своей компании (наличие права подписи необязательно);
  • Платформа - любое программное обеспечение для внутреннего использования компании или web-ресурс (интернет-магазин, мобильное приложение и т.д.), который Вы используете в рамках клиентского пути Клиентов;
  • СберБизнес ID - единая учетная запись пользователя ЮЛ/ИП, используемая для регистрации и входа пользователей в продукты и сервисы Банка и партнеров Sber API;
  • Банк - в контексте usecase включает в себя ресурсы Sber API и любые службы ПАО "Сбербанк";

Предусловия

  • Сотрудник авторизован на Платформе
  • Сотрудник находится на Платформе

Постусловия

  • Осуществлен перевод с бизнес-карты на другую карту
Usecase
  • Процесс получения access_token необходимо реализовать с помощью сервиса СберБизнес ID.

Получение информации по бизнес-картам (/v1/corporate-cards)

Alt text https://fintech.sberbank.ru:9443/fintech/api/v1/corporate-cards

Метод /v1/corporate-cards позволяет получить информацию по всем бизнес-картам конкретного пользователя, чей access_token используется для запроса.

Для получения списка бизнес-карт пользователя необходимо отправить GET-запрос /v1/corporate-cards с токеном доступа (access_token) пользователя в параметре Authorization заголовка.

В параметре scope ссылки авторизации пользователя должен быть указан сервис CORPORATE_CARDS для получения доступа к этому методу.


Для обращения к методу необходимо отправлять запрос на:

  • Тестовый контур https://iftfintech.testsbi.sberbank.ru:9443/fintech/api
  • Промышленный контур https://fintech.sberbank.ru:9443/fintech/api

Request

/v1/corporate-cards
НаименованиеТипФорматRegexpОбязательностьОписание
HEADER
AuthorizationstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})-((1)|(2))$requiredAccess token пользователя, полученный через SSO.

Responses

200 (OK)
НаименованиеТипОбязательностьОписание
Inline Model [
Inline Model 1Array[Inline Model 1]requiredПеречень всех бизнес-карт сотрудника
]
Inline Model 1 {
accountstringoptionalНомер счета, к которому привязана карта,
cardExpiredDatestringoptionalДата окончания действия карты,
cardIssuedDatestringoptionalДата выдачи карты,
cardPanstringoptionalНомер карты,
cardTypestringoptionalТип карты,
corpCardIdstringoptionalИдентификатор бизнес-карты,
embossedTextstringoptionalЭмбоссированный текст,
limitsArray[CorpCardLimit]optionalЛимиты по карте
}
CorpCardLimit [
{
amountnumberoptionalЗначение лимита,
codestringoptionalКод типа лимита
}
]
400 (Bad request)
CauseMessageDescription
DESERIALIZATION_FAULTНеверный формат запросаДанные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request метода. Скорректируйте заполнение атрибутов и повторите запрос.
VALIDATION_FAULTОшибка валидацииДанные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request метода, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос.
WORKFLOW_FAULTДля внешнего сервиса недоступны операции по счету: номер счетаДля Платформы недоступны операции по счету:
- счет не добавлен в список разрешенных в оферте;
- счет указан неверно.
Отсутствует доступный открытый рублевый расчетный счет.
Не найден тип карты название типа карты для платежной системой название платежной системыДля указанного типа бизнес-карты нет возможности выпуска с указанной платежной системой. Проверьте на сайте Банка доступные платежные системы для требуемого типа бизнес-карты.
Не найден тип карты название типа картыДля параметра typeName используется значение не из справочника СorpCardType. Получите корректные доступные значения для параметра, используя метод /v1/dicts
НаименованиеТипОбязательностьОписание
ResourceFault {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
checksArray[Check]optionalСписок проверок, приведших к ошибке,
fieldNamesArray[string]optionalНазвания полей с некорректным значением (только для VALIDATION_FAULT)
}
Check [
{
levelstringoptionalУровень результата = ['ERROR', 'WARNING'],
messagestringoptionalСообщение,
fieldsArray[string]optionalНазвания полей (при наличии связи с моделью)
}
]
401 (Unauthorized Error)
CauseMessageDescription
UNAUTHORIZEDaccessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-хУказан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
403 (Forbidden)
CauseMessageDescription
ACTION_ACCESS_EXCEPTIONОперация не может быть выполнена: доступ к ресурсу запрещенИспользуемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.
В строке аутентификации СберБизнес ID, в параметре scope, не указана операция CORPORATE_CARDS. Необходимо добавить эту операцию в scope. Пользователю потребуется пройти аутентификацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
500 (Internal Server Error)
CauseMessageDescription
UNKNOWN_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
503 (Service Temporarily Unavailable)
CauseMessageDescription
UNAVAILABLE_RESOURCE_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}

Шифрование номера бизнес-карты

В поле receiverCardNumber не допускается передача номера карты получателя в открытом виде, значение номера карты должно быть обязательно зашифровано. Номер карты перед шифрованием не должен содержать пробелов и спецсимволов. Получившуюся строку необходимо зашифровать, используя алгоритм RSA шифрования "RSA/OAEP" с ключом длиной 2048.

RSA/OAEP (Optimal Asymmetric Encryption Padding) - это алгоритм шифрования, разработанный для улучшения безопасности и защиты от атак на основе подобранных открытых текстов в асимметричных системах шифрования. RSA/OAEP использует ключ длиной 2048 бит, что является достаточно длинным и сложным для обеспечения безопасности.

Алгоритм RSA/OAEP состоит из следующих шагов:

  1. Генерация ключей: Выбираются два больших простых числа p и q. Затем вычисляются n = pq и phi(n) = (p-1)(q-1). Выбирается произвольное число e, взаимно простое с phi(n)+1, и вычисляется d, такое что ed ≡ 1 (mod φ(n)+1). Открытые ключи состоят из n и e, а секретные ключи - из n, d и phi(n).
  2. Шифрование: Данные разбиваются на блоки, каждый из которых имеет длину меньше n. Затем каждый блок данных представляется в виде числа в интервале от 0 до n-1. Для каждого блока данных выбирается случайное число l, такое что 1 ≤ l ≤ n-2. Затем выбирается функция хэширования, такая как SHA-256 или SHA-3, и вычисляется дайджест сообщения (hash) H.
  3. Создание расширенного сообщения: Расширенное сообщение представляет собой строку, состоящую из трех частей: сначала идет l нулевых битов, затем l битов из дайджеста сообщения, и наконец, l битов данных.
  4. Кодирование расширенного сообщения: Используется функция кодировщика, которая берет расширенное сообщение и преобразует его в строку символов, представляющих числа от 0 до n-1, используя таблицу символов.\
  5. Шифрование: Зашифрованное сообщение получается путем умножения кодированного расширенного сообщения на e по модулю n.
  6. Дешифрирование: Для дешифрирования используется секретный ключ, и зашифрованное сообщение умножается на d по модулю n. Полученное значение преобразуется обратно в строку, и удаляются лишние нулевые биты.

Таким образом, алгоритм RSA/OAEP обеспечивает улучшенную безопасность по сравнению с обычным RSA за счет использования оптимального асимметричного шифрования и кодирования расширенного сообщения.

Пример: Строка перед шифрованием - 0000000000000000
Зашифрованная строка - HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT

Список открытых ключей для шифрования номера бизнес-карты по алгоритму RSA/ECB/OAEPWithSHA-1AndMGF1Padding:

СтендСертификат RSA
Тестовый контур: https://efs-sbbol-ift-web.testsbi.sberbank.ru:9443Скачать
Пром контур: https://sbi.sberbank.ru:9443Скачать

Выбор способа перевода

В зависимости от типа перевода (перевод B2B или B2P) карта получателя может быть указана разными способами.

Переводы B2P

Переводы с бизнес-карт Сбера физическому лицу могут осуществляться с помощью:

  • Указания номера карты получателя (любая карта ПАО Сбербанк и других банков-эмитентов РФ). В этом случае в заявлении на перевод заполняется поле receiverCardNumber, а receiverPhoneNumber не заполняется;
  • Указания номера телефона получателя (карта ФЛ ПАО Сбербанк). В этом случае в заявлении на перевод должно заполняться поле receiverPhoneNumber (формат заполнения поля: 79000000000), а receiverCardNumber не заполняется.

Переводы B2B

В случае перевода с бизнес-карты Сбера юридическому лицу перевод осуществляется только с указанием номера карты получателя (любая карта ПАО Сбербанк и других банков-эмитентов РФ). В заявлении на перевод заполняется поле receiverCardNumber, а receiverPhoneNumber не заполняется.


Получение комиссии за перевод (/v1/business-cards/transfer/commission)

Alt text https://fintech.sberbank.ru:9443/fintech/api/v1/business-cards/transfer/commission

Метод /v1/business-cards/transfer/commission позволяет получать актуальный размер комиссии за перевод между бизнес-картами. Значение комиссии, которое возвращается в ответе на запрос, должно использоваться далее при формировании заявления на перевод между бизнес-картами.

Для получения размера комиссии за перевод отправить POST-запрос /v1/business-cards/transfer/commission с токеном доступа (access_token) пользователя в параметре Authorization заголовка и реквизитами перевода для расчета комиссии в теле запросе.

В параметре scope ссылки авторизации пользователя должен быть указан сервис BUSINESS_CARDS_TRANSFER для получения доступа к этому методу.


Для обращения к методу необходимо отправлять запрос на:

  • Тестовый контур https://iftfintech.testsbi.sberbank.ru:9443/fintech/api
  • Промышленный контур https://fintech.sberbank.ru:9443/fintech/api

Request

/v1/business-cards/transfer/commission
НаименованиеТипФорматRegexpОбязательностьОписание
HEADER
AuthorizationstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})-(1|2)$requiredAccess token пользователя, полученный через SSO.
BODY
BusinessCardCommissionRequest {
amountnumberfloat^[0-9]+(.[0-9]+)?$requiredСумма перевода в рублях,
receiverCardNumberstringbase64^[a-zA-Z0-9]+$optionalЗашифрованный номер карты получателя,
receiverPhoneNumberstringstring^7\d{10}$optionalНомер телефона получателя,
senderBusinessCardIdstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})$requiredID карты-отправителя.
senderBusinessCardId = BusinessCardId = corpCardId.
Идентификатор бизнес-карты вы получили на предыдущем шаге с помощью метода /v1/corporate-cards
}

Responses

200 (OK)
НаименованиеТипОбязательностьОписание
BusinessCardCommissionRequest {
amountnumberrequiredСумма перевода в рублях,
commissionnumberrequiredРазмер комиссии в рублях,
receiverCardNumberstringoptionalЗашифрованный номер карты получателя,
receiverPhoneNumberstringoptionalНомер телефона получателя,
senderBusinessCardIdstringrequiredID карты-отправителя
}
400 (Bad request)
CauseMessageDescription
DESERIALIZATION_FAULTНеверный формат запросаДанные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request метода. Скорректируйте заполнение атрибутов и повторите запрос.
VALIDATION_FAULTОшибка валидацииДанные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request метода, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос.
НаименованиеТипОбязательностьОписание
ResourceFault {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
checksArray[Check]optionalСписок проверок, приведших к ошибке,
fieldNamesArray[string]optionalНазвания полей с некорректным значением (только для VALIDATION_FAULT)
}
Check [
{
levelstringoptionalУровень результата = ['ERROR', 'WARNING'],
messagestringoptionalСообщение,
fieldsArray[string]optionalНазвания полей (при наличии связи с моделью)
}
]
401 (Unauthorized Error)
CauseMessageDescription
UNAUTHORIZEDaccessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-хУказан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
403 (Forbidden)
CauseMessageDescription
ACTION_ACCESS_EXCEPTIONОперация не может быть выполнена: доступ к ресурсу запрещенИспользуемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.
В строке аутентификации СберБизнес ID, в параметре scope, не указана операция BUSINESS_CARDS_TRANSFER. Необходимо добавить эту операцию в scope. Пользователю потребуется пройти аутентификацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
500 (Internal Server Error)
CauseMessageDescription
UNKNOWN_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
503 (Service Temporarily Unavailable)
CauseMessageDescription
UNAVAILABLE_RESOURCE_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}

Отправка заявления на перевод между бизнес-картами (/v1/business-cards/transfer)

Alt text https://fintech.sberbank.ru:9443/fintech/api/v1/business-cards/transfer

Метод /v1/business-cards/transfer позволяет создавать документ «Заявление на перевод между бизнес-картами». Документ можно создать без подписи в виде черновика либо сразу с подписью. Банк начинает обработку заявления при наличии подписи.

Для создания заявления за перевод отправить POST-запрос /v1/business-cards/transfer с токеном доступа (access_token) пользователя в параметре Authorization заголовка и реквизитами перевода в теле запросе.

В параметре scope ссылки авторизации пользователя должен быть указан сервис BUSINESS_CARDS_TRANSFER для получения доступа к этому методу.

Операции перевода по бизнес-карте может выполнять только собственник карты (cardholder). Для создания заявления на перевод по бизнес-карте потребуется:

  • Access_token пользователя-владельца бизнес-карты
  • Идентификатор бизнес-карты (businessCardId)
  • Реквизиты перевода
  • Данные ЭП пользователя-владельца бизнес-карты
  • Учетная запись СберБизнес пользователя-владельца бизнес-карты (чей access_token будем использовать в запросе) должна быть с типом «Единственная подпись» и ролью, которая позволяет работать с бизнес-картами

Для обращения к методу необходимо отправлять запрос на:

  • Тестовый контур https://iftfintech.testsbi.sberbank.ru:9443/fintech/api
  • Промышленный контур https://fintech.sberbank.ru:9443/fintech/api

Request

/v1/business-cards/transfer
НаименованиеТипФорматRegexpОбязательностьОписание
HEADER
AuthorizationstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})-(1|2)$requiredAccess token пользователя, полученный через SSO.
BODY
BusinessCardsTransfer {
amountnumberfloat^[0-9]+(.[0-9]+)?$requiredСумма перевода в рублях,
commissionnumberfloat^[0-9]+(.[0-9]+)?$requiredРазмер комиссии,
digestSignaturesArray[Signature]optionalЭлектронные подписи по дайджесту документа,
externalIdstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})$requiredВнешний идентификатор заявления на перевод,
purposestringstring^[a-zA-Z0-9]+$requiredНазначение перевода,
receiverCardNumberstringbase64^[a-zA-Z0-9]+$optionalЗашифрованный номер карты получателя,
receiverPhoneNumberstringstring^7\d{10}$optionalНомер телефона получателя,
senderBusinessCardIdstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})$requiredID карты-отправителя.
senderBusinessCardId = BusinessCardId = corpCardId.
Идентификатор бизнес-карты вы получили на предыдущем шаге с помощью метода /v1/corporate-cards
}
Signature [
{
base64Encodedstringbase64^[a-zA-Z0-9]+$optionalЗначение электронной подписи (ЭП), закодированное в Base64.
Можно передать одну или две ЭП вместе с реквизитами создаваемого документа - ссылка на ЭП.
Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу.
Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СберБизнес,
certificateUuidstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})$optionalУникальный идентификатор сертификата ключа проверки электронной подписи
}
]

digestSignatures

Передача электронной подписи

Передача электронной подписи (ЭП) осуществляется с использованием массива digestSignatures, где каждый элемент представляет собой подпись (Signature). Каждая подпись должна содержать следующие обязательные поля:

Наименование поляОписание поляПример
base64Encoded (string)Значение ЭП документаHlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==
certificateUuid (string)Идентификатор сертификата, использованного при создании ЭП (можно узнать, обратившись к ресурсу /v1/crypto или /v1/crypto/eio)22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6

В документе можно передать одну или две электронных подписи вместе с реквизитами создаваемого документа. Если подписи переданы через API, то они сохраняются вместе с документом, а сам документ продолжает свой жизненный цикл. Если подписи не были переданы, то документ сохраняется в начальном статусе и ожидает дальнейшей подписи в интерфейсе СберБизнес.

Документ может быть подписан следующими наборами подписей:

  • одна (единственная) подпись;
  • первая и вторая подписи.

При этом нельзя сочетать подпись, имеющую единственное полномочие, с подписью, имеющей первую или вторую подписи.

Порядок наложения подписи не имеет значения при наложении первой и второй подписей. Состав полей дайджеста не изменяется. Тип подписи указывается в настройках криптопрофиля при создании пользователя в СберБизнес.

Алгоритм сортировки

В дайджесте в соответствии с запросом должно быть указано либо поле receiverCardNumber, либо поле receiverPhoneNumber.

  1. Поля дайджеста должны быть отсортированы по алфавиту.
  2. Значения суммы платежа и комиссии должны задаваться с точностью 2-х знаков после запятой.
  3. Разделитель строк должен быть в формате unix (одиночный \n).
  4. Последняя строка дайджеста не должна содержать перевод строки.
  5. В назначении платежа допустимо использовать определенные символы, а перевод строк должен быть экранирован как \n.
Формат дайджеста
Наименование поляОписание поляПример
amountРазмер перевода25.00
commissionРазмер комиссии2.00
externalIdВнешний идентификатор документаf8ad3141-b7e8-4924-92de-3de4fd0a464e
purposeНазначение переводаИванов Иван Ильич, 1234 987654; ПСА №123 от 01.01.2020; лом стальной, 123 кг, 15000 руб./т.; без НДС
receiverCardNumberЗашифрованный номер карты получателяHlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep
receiverPhoneNumberНомер телефона получателя79880098877
senderBusinessCardIdID карты отправителя бизнес-карты31663ef5-7975-4016-b0f3-f1d70a4e9c22

Responses

201 (Created)
НаименованиеТипОбязательностьОписание
BusinessCardsTransfer {
amountnumberrequiredСумма перевода в рублях,
bankCommentstringrequiredБанковский комментарий к статусу документа,
bankStatusstringrequiredСтатус документа,
commissionnumberrequiredРазмер комиссии,
digestSignaturesArray[Signature]optionalЭлектронные подписи по дайджесту документа,
externalIdstringrequiredВнешний идентификатор заявления на перевод,
purposestringrequiredНазначение перевода,
receiverCardNumberstringoptionalЗашифрованный номер карты получателя,
receiverPhoneNumberstringoptionalНомер телефона получателя,
senderBusinessCardIdstringrequiredID карты-отправителя.
senderBusinessCardId = BusinessCardId = corpCardId.
Идентификатор бизнес-карты вы получили на предыдущем шаге с помощью метода /v1/corporate-cards
}
Signature [
{
base64EncodedstringoptionalЗначение электронной подписи (ЭП), закодированное в Base64.
Можно передать одну или две ЭП вместе с реквизитами создаваемого документа - ссылка на ЭП.
Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу.
Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СберБизнес,
certificateUuidstringoptionalУникальный идентификатор сертификата ключа проверки электронной подписи
}
]
202 (Accepted)
CauseMessageDescription
WORKFLOW_FAULTДокумент сохранен, но обработка ЭП или принятие документа завершились ошибкой. ЭП не может быть принятаНеизвестный идентификатор сертификата. Проверьте корректность отправленной ЭП в запросе.
Возможно, была отправлена ЭП с типом "Первая подпись" или "Вторая подпись". Для случаев, когда используется ЭП подписантов с типом "Первая подпись" или "Вторая подпись" для принятия документа в обработку требуется передать в запросе данные обеих подписей.
НаименованиеТипОбязательностьОписание
WorkflowFault {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
checksArray[Check]optionalСписок проверок, приведших к ошибке,
fieldNamesArray[string]optionalНазвания полей с некорректным значением (только для VALIDATION_FAULT)
}
Check [
{
levelstringoptionalУровень результата = ['ERROR', 'WARNING'],
messagestringoptionalСообщение,
fieldsArray[string]optionalНазвания полей (при наличии связи с моделью)
}
]
400 (Bad request)
CauseMessageDescription
DESERIALIZATION_FAULTНеверный формат запросаДанные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request метода. Скорректируйте заполнение атрибутов и повторите запрос.
VALIDATION_FAULTОшибка валидацииДанные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request метода, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос.
WORKFLOW_FAULTОшибка расчета комиссии, операция отклонена. Обратитесь к агрегаторуПроверка полученной комиссии от Платформы на минимально возможную не пройдена.
Операция отклонена. Обратитесь к агрегаторуРазмер выставленной суммы комиссии за перевод равен "0" или равен = меньше установленной суммы.
Карта списания неактивна
Перевод невозможен, данные держателя карты не совпадают с данными вашей учетной записиВ запросе используете access_token пользователя, который не является держателем бизнес-карты отправителя.
Не установлен лимит на транзакцию для перевода с карты на картуНеобходимо для карты списания установить лимит на операции перевода.
Сумма перевода превышает лимит на транзакцию для перевода с карты на картуНеобходимо для карты списания установить лимит на операции перевода в размере, превышающим сумму операции.
Некорректный номер карты зачисленияПеревод не может быть выполнен. Проверьте номер карты получателя
Для карты зачисления указан тот же счет, что и у карты списания
Недостаточно средств
Операция недоступна для выбранной карты
НаименованиеТипОбязательностьОписание
ResourceFault {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
checksArray[Check]optionalСписок проверок, приведших к ошибке,
fieldNamesArray[string]optionalНазвания полей с некорректным значением (только для VALIDATION_FAULT)
}
Check [
{
levelstringoptionalУровень результата = ['ERROR', 'WARNING'],
messagestringoptionalСообщение,
fieldsArray[string]optionalНазвания полей (при наличии связи с моделью)
}
]
401 (Unauthorized Error)
CauseMessageDescription
UNAUTHORIZEDaccessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-хУказан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
403 (Forbidden)
CauseMessageDescription
ACTION_ACCESS_EXCEPTIONОперация не может быть выполнена: доступ к ресурсу запрещенИспользуемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.
В строке аутентификации СберБизнес ID, в параметре scope, не указана операция BUSINESS_CARDS_TRANSFER. Необходимо добавить эту операцию в scope. Пользователю потребуется пройти аутентификацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
404 (Not found)
CauseMessageDescription
NOT_FOUNDДокумент с указанным ID не найден
CARD_ID_NOT_FOUNDБизнес-карта с указанным ID не найденаНевозможно найти бизнес-карту отправителя с указанным внешним идентификатором
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
500 (Internal Server Error)
CauseMessageDescription
UNKNOWN_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
503 (Service Temporarily Unavailable)
CauseMessageDescription
UNAVAILABLE_RESOURCE_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}

Получение статуса заявления на перевод (/v1/business-cards/transfer/{externalId}/state)

Alt text https://fintech.sberbank.ru:9443/fintech/api/v1/business-cards/transfer/{externalId}/state

Метод /v1/business-cards/transfer/{externalId}/state позволяет получить статус ранее отправленного заявления на перевод между бизнес-картами.

Для получения информации о статусе заявления на перевод по бизнес-карты необходимо отправить GET-запрос /v1/business-cards/transfer/{externalId}/state с токеном доступа (access_token) пользователя в параметре Authorization заголовка и идентификатор заявления (externalId) в path-параметре запроса.

В параметре scope ссылки авторизации пользователя должен быть указан сервис BUSINESS_CARDS_TRANSFER для получения доступа к этому методу.


Для обращения к методу необходимо отправлять запрос на:

  • Тестовый контур https://iftfintech.testsbi.sberbank.ru:9443/fintech/api
  • Промышленный контур https://fintech.sberbank.ru:9443/fintech/api

Request

/v1/business-cards/transfer/:externalId/state
НаименованиеТипФорматRegexpОбязательностьОписание
HEADER
AuthorizationstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})-(1|2)$requiredAccess token пользователя, полученный через SSO.
PATH PARAMETERS
externalIdstringUUID^([0-9A-Fa-f]{8})-([0-9A-Fa-f]{4})-([0-9A-Za-z]{4})-([0-9A-Fa-f]{12})$requiredИдентификатор заявления на перевод по бизнес-карте, который вы присвоили документу при его создании

Responses

200 (OK)
НаименованиеТипОбязательностьОписание
CorpCardIssueRequestState {
bankCommentstringoptionalБанковский комментарий к статусу документа,
bankStatusstringoptionalСтатус документа,
corpCardIdstringoptionalИдентификатор бизнес-карты
}
400 (Bad request)
CauseMessageDescription
DESERIALIZATION_FAULTНеверный формат запросаДанные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request метода. Скорректируйте заполнение атрибутов и повторите запрос.
VALIDATION_FAULTОшибка валидацииДанные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request метода, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос.
НаименованиеТипОбязательностьОписание
ResourceFault {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
checksArray[Check]optionalСписок проверок, приведших к ошибке,
fieldNamesArray[string]optionalНазвания полей с некорректным значением (только для VALIDATION_FAULT)
}
Check [
{
levelstringoptionalУровень результата = ['ERROR', 'WARNING'],
messagestringoptionalСообщение,
fieldsArray[string]optionalНазвания полей (при наличии связи с моделью)
}
]
401 (Unauthorized Error)
CauseMessageDescription
UNAUTHORIZEDaccessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-хУказан некорректный или просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
403 (Forbidden)
CauseMessageDescription
ACTION_ACCESS_EXCEPTIONОперация не может быть выполнена: доступ к ресурсу запрещенИспользуемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API.
В строке аутентификации СберБизнес ID, в параметре scope, не указана операция BUSINESS_CARDS_TRANSFER. Необходимо добавить эту операцию в scope. Пользователю потребуется пройти аутентификацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
404 (Not found)
CauseMessageDescription
NOT_FOUNDДокумент с указанным ID не найден
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
500 (Internal Server Error)
CauseMessageDescription
UNKNOWN_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}
503 (Service Temporarily Unavailable)
CauseMessageDescription
UNAVAILABLE_RESOURCE_EXCEPTIONВнутренняя ошибка сервераСделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка.
НаименованиеТипОбязательностьОписание
Notice {
causestringoptionalПричина или основание сообщения,
referenceIdstringoptionalУникальный идентификатор ошибки (UUID),
messagestringoptionalСообщение,
}

Статусы заявления на перевод

bankStatus (string)
СтатусНаименование статусаОписание
Промежуточный/Продолжать опрашивать
ACCEPTEDПринятЭлектронный документ принят на стороне Банка
ACCEPTED_BY_ABSПринят АБС или ПринятЭлектронный документ был принят к обработке в АБС Банка
CREATEDСозданДокумент записан в БД, проверки не выполнились
DELAYEDПриостановленОбработка электронного документа была приостановлена
DELIVEREDДоставленЗапрос доставлен в ДБО и взят в обработку
EXPORTEDВыгруженЭлектронный документ выгружен Банком в АБС
FRAUDALLOWОдобрен ФРОДПроверка во ФРОДЕ прошла успешно, переход на «Принят»
FRAUDREVIEWНа проверке у специалиста БанкаСо стороны ФРОД-анализа получен статус документа «На проверке у специалиста Банка»
FRAUDSENTОтправлен во ФРОДДокумент отправлен на проверку в АС Fraud-мониторинг
FRAUDSMSТребуется подтверждение sms-паролемСо стороны ФРОД-анализа получен статус документа «Требуется подтверждение sms-паролем»
PARTSIGNEDЧастично подписанЭД подписан частью подписей, входящих в предусмотренный для данного документа комплект подписей
PROCESSINGВ обработкеКлиент сформировал "Заявление об акцепте/частичном акцепте"
SIGNEDПодписанЭД подписан предусмотренным для него комплектом подписей
SUBMITTEDПредставленЭД принят ВК
Окончательный (Не успешный)/Прекратить опрос
FRAUDDENYОтвергнут ФРОДДокумент отказан на основе проверки в АС Fraud-мониторинг, переходим в «Отвергнут банком»
CHECKERROR_BANKОшибка контроля, БанкЭД сформирован, но при сохранении не прошел проверку корректности заполнения полей и сохранен с имеющимися в нем ошибками
INVALIDEDSЭП/АСП не верна
Подпись неверна
Проверка ЭП под ЭД на стороне Банка дала отрицательный результат
RECALLОтозванЭлектронный документ был отозван Клиентом по запросу
REFUSEDBYABSОтказан АБСЭлектронный документ не прошел проверки в АБС
REQUISITEERRORОшибка реквизитовВ ЭД указаны ошибочные реквизиты
REFUSED_BY_RZKОтказан контролирующей организациейЭлектронный документ не прошел проверки контролирующей организацией
Окончательный (Успешный)/Прекратить опрос
IMPLEMENTEDИсполненЭлектронный документ исполнен Банком
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.