ym88659208ym87991671
Заявление о снятии с учета/переуступке контракта (кредитного договора) | Документация для разработчиков

Заявление о снятии с учета/переуступке контракта (кредитного договора)

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

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

  • Тестовый контур https://iftfintech.testsbi.sberbank.ru:9443

  • Промышленный контур https://fintech.sberbank.ru:9443

Ресурс /v1/contract-close-applications

Ресурс позволяет отправить в Банк Заявление о переуступке/снятии с учета контракта (кредитного договора).

Шаги

1. Получить AccessToken.

2. Сформировать ЭП.

3. Отправить запрос.

4. Получить статус.

5. Получить документ

Для создания запроса необходимо отправить POST-запрос (/v1/contract-close-applications), в котором передать авторизационный токен к данным собственной/дочерней организации (Access Token) и реквизиты запроса переуступки/снятия валютного контракта. Авторизационный токен передается в параметре Authorization заголовка запроса.

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис CONTRACT_CLOSE_APPLICATION.

Модель запроса и ответа

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token собственной/дочерней организации, полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1
Параметры тела запроса
ContractCloseApplication {
additionalInfo (string, optional)Дополнительная информация (комментарий) пользователя,
authPersonName (string)ФИО ответственного лица,
authPersonTelfax (string)Телефон ответственного лица,
bankComment (string, optional, read only)Банковский комментарий к статусу документа,
bankControlStatementType (string)Тип ВБК= [ON_CONTRACT, ON_CREDIT]
stringEnum:"ON_CONTRACT", "ON_CREDIT",
bankStatus (string, optional, read only)Статус документа,
bfAttachments (Array[BfAttachment], optional)Прикрепленные большие файлы,
closeReasonCode (string)Код основания для снятия контракта с учета,
contractBankNumber (string)Номер контракта (кредитного договора), установленный Банком (УНК),
contractDate (string, optional)Дата контракта (кредитного договора),
contractNumber (string, optional)Номер контракта (кредитного договора),
date (string)Дата составления документа,
digestSignatures (Array[Signature], optional)Электронные подписи по дайджесту документа,
externalId (string)Идентификатор документа в организации-партнере,
failReasons (Array[FailReason], optional, read only)Причины отказа в части данных контратка (кредитного договора),
number (string, optional)Номер документа,
otherBankInfo (string, optional)Наименование банка, в который переводится контракт,
reasonDocDate (string, optional)Дата документа, подтверждающего уступку,
reasonDocNumber (string, optional)Номер документа, подтверждающего уступку,
residentBuilding (string, optional)Корпус/строение организации-резидента,
residentCity (string, optional)Город организации-резидента,
residentDistrict (string, optional)Район организации-резидента,
residentFlat (string, optional)Номер офиса организации-резидента,
residentHouse (string, optional)Номер дома организации-резидента,
residentKpp (string, optional)КПП организации-резидента,
residentName (string, optional)Наименование организации-резидента,
residentOgrn (string, optional)ОГРН организации-резидента,
residentRegDate (string, optional)Дата внесения организации-резидента в государственный реестр,
residentSettlementName (string, optional)Населенный пункт организации-резидента,
residentState (string, optional)Субъект РФ организации-резидента,
residentStreet (string, optional)Улица организации-резидента,
residentTaxNumber (string, optional)ИНН организации-резидента
}BfAttachment {
fileId (string, optional)Уникальный идентификатор файла,
fileName (string, optional, read only)Имя файла
}Signature {
base64Encoded (string)Значение электронной подписи, закодированное в Base64,
certificateUuid (string)Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID)
}FailReason {
docField (string, optional)Поле документа,
reasonComment (string, optional)Правило заполнения/замечания,
reasonId (string, optional)Код причины отказа,
returnComment (string, optional)Комментарий
}

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

{
"authPersonName": "Иванов Иван Иванович",
"authPersonTelfax": "4955005550",
"bankControlStatementType": "ON_CONTRACT",
"closeReasonCode": "6.1.3",
"contractBankNumber": "21080003/1481/1948/3/1",
"date": "2022-01-15",
"bfAttachments": [
{
"fileId": "f6735a79-3c8d-4f57-b5bf-cc8a21024ff9"
}
],
"reasonDocDate": "2018-12-31",
"reasonDocNumber": "1",
"residentBuilding": "1",
"residentCity": "Воронеж",
"residentDistrict": "Воронежский",
"residentFlat": "1",
"residentHouse": "2",
"residentKpp": "222201001",
"residentName": "Общество с ограниченной ответственностью \"Клиент\"",
"residentOgrn": "380123456789012",
"residentRegDate": "2018-12-31",
"residentSettlementName": "Воронеж",
"residentState": "Воронежская область",
"residentStreet": "Воронежская",
"residentTaxNumber": "7707083893",
"digestSignatures": [
{
"base64Encoded": "HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid": "88da0266-be94-4bd0-ab74-a35948a3d6b6"
}
],
"externalId": "1dd4ae43-fde7-4388-beb3-da3156be0ce7"
}

Для получения значения параметра contractBankNumber необходимо выполнить запрос актуальной ВБК из Банка, используя ресурс /v1/bank-control-statements/reg-curr-contracts/{externalId}

Значения closeReasonCode

ЗначениеОписание
6.1.1Перевод из банка УК контракта (кредитного договора) на обслуживание в другой уполномоченный банк (включая перевод из одного филиала в другой филиал банка УК, из головного офиса банка УК в филиал банка УК, из филиала банка УК в головной офис банка УК), а также при закрытии резидентом всех расчетных счетов в банке УК.
6.1.2Исполнение сторонами всех обязательств по контракту (кредитному договору), включая исполнение обязательств третьим лицом.
6.1.3Уступка резидентом требования по контракту (кредитному договору) другому лицу - резиденту либо перевод долга резидентом по контракту (кредитному договору) на другое лицо - резидента.
6.1.4Уступка резидентом требования по контракту (кредитному договору) нерезиденту либо перевод долга резидентом по контракту (кредитному договору) на нерезидента.
6.1.5Исполнение (прекращение) обязательств по контракту (кредитному договору) по иным, не указанным в подпункте 6.1.2 пункта 6.1 Инструкции № 181-И, основаниям, предусмотренным законодательством Российской Федерации.
6.1.6Прекращение оснований, требующих в соответствии с Инструкцией № 181-И постановки на учет контракта (кредитного договора), в том числе вследствие внесения соответствующих изменений и (или) дополнений в контракт (кредитный договор), а также в случае если контракт (кредитный договор) был ошибочно принят на учет при отсутствии в контракте (кредитном договоре) оснований, требующих его принятия на учет.

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

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

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

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

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

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

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

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

Теги дайджеста должны быть отсортированы по алфавиту. В таблице bfAttachments UUID-ы сортируются по возрастанию.
В дайджесте не указываются значения number и блок linkedDocs.

Формат дайджеста

Наименование поляОписание поляПример
additionalInfoДополнительная информация (комментарий) пользователяДоп. инфо
authPersonNameФИО ответственного лицаИванов Иван Иванович
authPersonTelfaxТелефон ответственного лица4955005550
bankControlStatementTypeТип ВБКON_CONTRACT
ON_CONTRACT - контракт
ON_CREDIT - кредитный договор
reasonDocDateДата документа, подтверждающего услугу2018-12-31
reasonDocNumberНомер документа, подтверждающего услугу1
dateДата документа2022-01-15
externalIdИдентификатор документа в организации-партнере1dd4ae43-fde7-4388-beb3-da3156be0ce7
closeReasonCodeПричина снятия с учета (в блоке только одна из причин (reason6XX) может принимать значение true)6.1.3
contractBankNumberНомер контракта (кредитного договора), установленный Банком (УНК)21080003/1481/1948/3/1
residentNameНаименование организации-резидента"Общество с ограниченной ответственностью "Клиент"
residentKppКПП организации-резидента222201001
residentOgrnОГРН организации-резидента380123456789012
residentRegDateДата внесения в государственный реестр2018-12-31
residentTaxNumberИНН организации-резидента7707083893
residentHouseКорпус/строение2
residentCityГород организации-резидентаВоронеж
residentDistrictРайон организации-резидентаВоронежский
residentFlatНомер офиса организации-резидента1
residentBuildingКорпус/строение организации-резидента1
residentSettlementNameНаселенный пунктВоронеж
residentStateСубъект РФВоронежская область
residentStreetУлицаВоронежская
Table=BfAttachmentsЗначение указывается при наличии UUID-ов больших файлов
fileIdUUID больших файлов1dd4ae43-fde7-4388-beb3-da3156be0ce7
#Разделитель значений UUID-ов больших файлов

Пример дайджеста

additionalInfo=Дополнительная информация
authPersonName=Иванов Иван Иванович
authPersonTelfax=4955005550
bankControlStatementType=ON_CONTRACT
closeReasonCode=6.1.3
contractBankNumber=21080003/1481/1948/3/1
date=2022-01-15
externalId=1dd4ae43-fde7-4388-beb3-da3156be0ce7
reasonDocDate=2018-12-31
reasonDocNumber=1
residentBuilding=1
residentCity=Воронеж
residentDistrict=Воронежский
residentFlat=1
residentHouse=2
residentKpp=222201001
residentName=Общество с ограниченной ответственностью "Клиент"
residentOgrn=380123456789012
residentRegDate=2018-12-31
residentSettlementName=Воронеж
residentState=Воронежская область
residentStreet=Воронежская
residentTaxNumber=7707083893
TABLES
Table=BfAttachments
fileId=1dd4ae43-fde7-4388-beb3-da3156be0ce7
#

Ресурс /v1/contract-close-applications/{externalId}/state

Ресурс позволяет получить статус ранее отправленного заявления.

Шаги

1. Получить AccessToken.

2. Отправить запрос

Для получения статуса необходимо отправить GET-запрос (/v1/contract-close-applications/{externalId}/state), в котором передать авторизационный токен к данным собственной/дочерней организации (Access Token) и идентификатор документа (externalId). Авторизационный токен передается в параметре Authorization заголовка запроса.

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис CONTRACT_CLOSE_APPLICATION.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token, полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1
Параметры запроса
externalId (String)Идентификатор документа, присвоенный пользователем

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

curl -X GET --header 'Accept: /' --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'http://iftfintech.testsbi.sberbank.ru:9443/fintech/api/v1/contract-close-applications/
ffffffff-fffa-458e-ad92-fff9497303ba/state'

Модель ответа

НаименованиеОписание
DocState
bankComment (string, optional, read only)Банковский комментарий к статусу документа,
bankStatus (string, optional)Статус документа,
channelInfo (string, optional, read only)Комментарий, специфичный для документа, полученного по данному каналу,

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

{
"bankStatus":"CHECKERROR",
"bankComment":"Загрузите документы, подтверждающие выбранное основание\n",
"channelInfo":null
}

Возможные статусы

Код состояние документаНаименование статусаНазначение
Промежуточные статусы/Продолжать опрашивать
ACCEPTEDПринятЭлектронный документ принят на стороне Банка
ACCEPTED_BY_ABSПринят АБСЭлектронный документ был принят к обработке в АБС Банка
CREATEDСозданДокумент записан в БД, проверки не выполнялись
DELIVEREDДоставленЗапрос доставлен в ДБО и взят в обработку
EXPORTEDВыгруженДокумент выгружен в АБС для дальнейшей обработки
TRIED_BY_CFEПроверяется ВКЭлектронный документ на проверке Валютного контроля
Окончательные статусы/Прекратить опрос
INVALIDEDSЭП/АСП не вернаПроверки документа привели к неуспешному результату
CHECKERRORОшибка контроля
REQUISITEERRORОшибка реквизитовЛогические проверки документа привели к неуспешному результату
REFUSEDBYABSОтказан АБСЗапрос доставлен в ДБО и не прошел проверку
REFUSED_BY_CFEОтказан ВКЭлектронный документ был отклонен Валютным контролем
Окончательные(Успешные) статусы/Прекратить опрос
ACCEPTED_BY_CFEПринят ВКЭлектронный документ был принят Валютным контролем

Ресурс /v1/contract-close-applications/{externalId}

Ресурс позволяет получить атрибуты ранее отправленного заявления.

Шаги

1. Получить AccessToken.

2. Отправить запрос.

Для получения документа необходимо отправить GET-запрос (/v1/contract-close-applications/{externalId}), в котором необходимо передать авторизационный токен к данным собственной/дочерней организации (Access Token) и внешний идентификатор поручения. Авторизационный токен передается в параметре Authorization заголовка запроса.

Чтобы получить доступ к ресурсу, необходимо передать в scope сервис CONTRACT_CLOSE_APPLICATION.

Модель запроса

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token, полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1
Параметры запроса
externalId (String)Идентификатор документа, присвоенный сервисом

Пример:

curl -X GET --header "Accept: /" --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://iftfintech.testsbi.sberbank.ru:9443/fintech/api/v1/
contract-close-applications/ffffffff-fffa-458e-ad92-fff9497303ba/state'

Модель ответа

Соответствует модели запроса и ответа /v1/contract-close-applications.

Дополнительная информация

Подписание запроса транспортной подписью

Content-Type может содержать одно из двух значений:

  • application/json – запрос без подписи
  • application/jose – запрос, подписанный транспортной подписью

Если Content-Type имеет значение application/jose, то запрос должен содержать данные в виде компактной сериализации RFC 7515: JSON Web Signature (JWS).

JWS состоит из трёх частей:

  1. Заголовок (Header) - определяет алгоритм подписи и тип токена
  2. Полезная нагрузка (Payload) - содержит данные, которые необходимо защитить
  3. Электронная подпись (Signature) - вычисляется с использованием приватного ключа клиента
Base64Url(Header) || ’.’ ||  Base64Url(Payload) || ’.’ || Base64Url(Signature)

Каждая часть ответа, разделенная точкой, должна декодироваться отдельно. Для декодирования следует воспользоваться алгоритмом Base64URL Encoding.

Signature - это подпись данных приватной частью ключевой пары клиента (используется приватный ключ парный сертификату клиента). Подпись вычисляется по алгоритму указанному в Заголовке (Header) в параметре alg (в нашем случае gost34.10-2012) и вычисляется от исходных данных:

Base64Url(Header) || ‘.’ || Base64Url(Payload).

Формирование исходных данных для вычисления подписи описано в спецификации RFC 7515: JSON Web Signature (JWS).

При кодировании JWS используется преобразование Base64Url. Преобразование можно представить следующим образом:

Base64Url(x) := Base64(x).Split(‘=’)[0].Replace(‘+’, ’-’).Replace(‘/’, ’_’)
  • функция Split(x), разбивает строку на части ([i] означает взятие i–ой части), используя символ разделитель x,
  • функция Replace(x,y) заменяет все вхождения символа x на символ y.

Преобразование Base64Url, отличается от Base64 преобразования:

BASE64URLBASE64
- (minus)+
_ (underline)/

Коды возврата

Код возвратаОписание кода возвратаПричина возникновения
200 (GET-запрос)ОК
201 (POST-запрос)CREATED
Создан
400DESERIALIZATION_FAULT
Неверный формат запросаНеверный формат запроса
WORKFLOW_FAULT
Для внешнего сервиса недоступны операции по счету: 40702810ХХХХХХХХХХХХДля внешнего сервиса недоступны операции по счету:

счет не добавлен в список разрешенных в оферте;
внешний сервис заблокирован в СББОЛ;
счет указан неверно.

Отсутствует доступный открытый рублевый расчетный счет у организации плательщика
Документ с такими реквизитами уже существуетДокумент с такими реквизитами уже существует. Проверка по номер документа в течении года.
Не указан идентификатор сертификата подписиНе указан идентификатор сертификата подписи(параметр kid заголовка JWS)
Некорректный формат параметра kid заголовка JWSНекорректный формат параметра kid заголовка JWS(ожидается UUID)
VALIDATION_FAULT
Ошибка валидацииОшибка валидации данных запроса с указанием некорректных значений. Значения полей модели или параметров запроса не соответствуют допустимым и определенным в модели.
SIGN_CHECK_EXCEPTION
Подлинность подписи не установлена/Сертификат не обнаружен или не является активнымОшибка возникает, если не удалось установить подлинность подписи
401UNAUTHORIZED
accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-хУказан некорректный или просроченный access_token.
403ACTION_ACCESS_EXCEPTION
Операция не может быть выполнена: доступ к ресурсу запрещенУ пользователя нет прав на использование соответствующего сервиса Sber API, доступ к которому не предусмотрен настройками scope; У пользователя отсутствует оферта с внешним сервисом.
415JWS_EXCEPTED
В соответствии с текущими настройками сервиса с clientId=%s необходимо использовать запрос в формате JWS Compact SerializationОшибка возникает, если в настройках внешних сервисов выставлен флаг "Требуется подпись для внешнего сервиса"
500UNKNOWN_EXCEPTION
Внутренняя ошибка сервера
503UNAVAILABLE_RESOURCE_EXCEPTION
Сервис временно недоступенПроводятся технические работы
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.