Заявление о внесении изменений

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

Ресурс /v1/bank-control-statements/change-curr-contracts

Ресурс позволяет создать заявление о внесении изменений в I раздел ВБК (валютный контракт с нерезидентом) в Банке через SberBusinessAPI (Fintech API) по собственной/дочерней организации.

Шаги:

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

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

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

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

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

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

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

Наименование Описание
Параметры заголовка
Authorization String
Access token собственной/дочерней организации, полученный через SSO.
Пример: Bearer 8190f687-c916-453b-9d68-0ce22f4f3f9d-1
Параметры запроса
CurrContractChangeApplication {
amount (number, optional) Сумма контракта ,
bankComment (string, optional, read only) Банковский комментарий к статусу документа ,
bankControlStatementChangeApplicationInfo (BankControlStatementChangeApplicationInfo) Информация о заявлении о внесении изменений в I раздел ВБК ,
bankStatus (string, optional, read only) Статус документа ,
contractDate (string) Дата контракта ,
contractEndDate (string, optional) Дата окончания обязательств по контракту ,
contractNumber (string, optional) Номер контракта ,
currencyCode (string, optional) Цифровой код валюты контракта ,
date (string) Дата составления документа ,
digestSignatures (Array[Signature], optional) Электронные подписи по дайджесту документа ,
nonResidents (Array[BankControlStatementNonResident], optional) Информация о нерезидентах ,
number (string, optional) Номер документа
}BankControlStatementChangeApplicationInfo {
authPersonName (string) ФИО ответственного лица ,
authPersonTelfax (string) Телефон ответственного лица ,
basisDocs (Array[BankControlStatementChangeBasisDoc], optional) Документы-основания для внесения изменений ,
bfAttachments (Array[BfAttachment], optional) Прикрепленные большие файлы,
contentInfo (string, optional) Информация об изменениях ,
contractExternalId (string) Идентификатор изменяемого контракта в организации-партнере ,
externalId (string) Идентификатор документа в организации-партнере ,
inUSRLE (boolean) Изменения в ЕГРЮЛ/ЕГРИП ,
prolongation (boolean) Пролонгация
}Signature {
base64Encoded (string) Значение электронной подписи, закодированное в Base64 ,
certificateUuid (string) Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID)
}BankControlStatementNonResident {
countryCode (string) Цифровой код страны ,
countryName (string) Наименование страны ,
name (string) Наименование иностранного контрагента
}BankControlStatementChangeBasisDoc {
date (string) Дата документа-основания ,
number (string, optional) Номер документа-основания
}BfAttachment {
fileId (string, optional) Уникальный идентификатор файла ,
fileName (string, optional, read only) Имя файла
}

Пример:

{
   "amount":1.01,
   "bankComment":"string",
   "bankControlStatementChangeApplicationInfo":{
      "authPersonName":"Иванов Иван Иванович",
      "authPersonTelfax":"4955005550",
      "basisDocs":[
         {
            "date":"2018-12-31",
            "number":"2222222222"
         }
      ],
      "bfAttachments":[
         {
            "fileId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
            "fileName":"SB_7718830000_40702810038290010000_T18.txt"
         }
      ],
      "contentInfo":"Требуются изменения в связи с пролонгацией по условиям договора",
      "contractExternalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
      "externalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
      "inUSRLE":false,
      "prolongation":false
   },
   "bankStatus":"string",
   "contractDate":"2018-12-31",
   "contractEndDate":"2018-12-31",
   "contractNumber":"123АБВ",
   "currencyCode":"840",
   "date":"2018-12-31",
   "digestSignatures":[
      {
         "base64Encoded":"HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
         "certificateUuid":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
      }
   ],
   "nonResidents":[
      {
         "countryCode":"643",
         "countryName":"РОССИЯ",
         "name":"Kazan"
      }
   ],
   "number":"1"
}

В случае, если необходимо:

  • Удалить бизнес-данные - отправляется параметр со значением null "a": null
  • Удалить json объект:

    • отправляется json объект в виде "creditAttractions": [{"a": 1}, null, {"b": 1}]
    • сортировка объектов в массиве должна соответствовать сортировке в контракте, которую требуется изменить
    • новый объект в массив добавляется последним.
  • Изменить бизнес-данные - отправляется параметр/объект с измененными значениями
  • Добавить бизнес-данные - добавить параметр со значением НЕ null

Заявление о внесении изменений, в котором абсолютно все бизнес-данные соответствуют валютному контракту, обработано не будет, т.е. документ должен содержать дельту.

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

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

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

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

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

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

При этом подписант, обладающий полномочием единственной подписи, не может «сочетаться» с подписантом, владеющим первой или второй подписью.

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

Формирование электронной подписи (ГОСТ 2012)

Алгоритм сортировки дайджеста

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

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

Наименование поля Описание поля Пример
amount Сумма контракта 1.00
bankControlStatementChangeApplicationInfo.authPersonName ФИО ответственного лица Шагов Вадим Юрьевич
bankControlStatementChangeApplicationInfo.authPersonTelfax Телефон ответственного лица 79161965789
bankControlStatementChangeApplicationInfo.contentInfo Информация об изменениях Требуются изменения в связи с пролонгацией по условиям договора
bankControlStatementChangeApplicationInfo.contractExternalId Идентификатор документа, по которому отправляется ЗОВИ 11a6dd81-103a-4r3a-8e9b-0ba4b527f5f6
bankControlStatementChangeApplicationInfo.externalId Идентификатор документа в организации-партнере 22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6
bankControlStatementChangeApplicationInfo.inUSRLE Изменения в ЕГРЮЛ/ЕГРИП true
bankControlStatementChangeApplicationInfo.prolongation Пролонгация true
contractDate Дата кредитного договора 29.11.2018
contractEndDate Дата окончания обязательств по кредитному договору 29.11.2022
contractNumber Номер контракта 123АБВ
currencyCode Цифровой код валюты контракта 840
date Дата создания документа по местному времени в формате YYYY-MM-DD 29.03.2019
Table=BasisDocs Значения указываются при наличии даты документы и номера документа или только даты
date Дата документа-основания 12.03.2019
number Номер документа-основания 2222222222
# Разделитель значений UUID-ов больших файлов
Table=BfAttachments Значение указывается при наличии UUID-ов больших файлов
fileId UUID больших файлов 31663ef5-7975-4016-b0f3-f1d70a4e9c22
# Разделитель значений UUID-ов больших файлов
Table=NonResidents Таблица с нерезидентами
countryCode Цифровой код страны нерезидента
countryName Наименование страны
name Наименование нерезидента
#

Пример:

amount=1.00
bankControlStatementChangeApplicationInfo.authPersonName=Иванов Иван Иванович
bankControlStatementChangeApplicationInfo.authPersonTelfax=4955005550
bankControlStatementChangeApplicationInfo.contentInfo=Требуются изменения в связи с пролонгацией по условиям договора
bankControlStatementChangeApplicationInfo.contractExternalId=1e86c524-4c7b-4bbb-9af5-eb86d22760bd
bankControlStatementChangeApplicationInfo.externalId=d48d95e9-ae3e-491e-a9b3-53d6d5bc683b
bankControlStatementChangeApplicationInfo.inUSRLE=false
bankControlStatementChangeApplicationInfo.prolongation=false
collateralAmount=1.01
contractDate=2020-06-08
contractEndDate=2019-12-31
contractNumber=123АБВ
creditPayPeriodCode=1
currencyCode=840
currencyEarningsAmount=1.01
date=2020-06-08
hasDirectInvesting=false
increaseRate=1.0100
liborRate=Л06
otherPayments=АБВ123
transferAmount=1.01
TABLES
Table=BasisDocs
date=2020-06-08
number=2222222222
#
Table=CredRepayPayments
condition=АБВ123
currencyCode=840
interestAmount=1.01
interestDate=2020-06-08
#
Table=CreditAttractions
amount=1.01
nonResidentCountryCode=643
nonResidentName=Kazan
#
Table=NonResidents
countryCode=398
countryName=КАЗАХСТАН
name=KAZAH
#
countryCode=036
countryName=АВСТРАЛИЯ
name=COMPANY3
#
Table=Tranches
amount=1.01
currencyCode=840
entryDate=2020-06-08
periodCode=1
#

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

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

Ресурс /v1/bank-control-statements/change-curr-cred-contracts

Ресурс позволяет создать заявление о внесении изменений в раздел I ВБК (кредитный договор с нерезидентом) в Банке через SberBusinessAPI (Fintech API) по собственной/дочерней организации.

Шаги:

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

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

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

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

Для создания запроса на регистрацию документа «Заявление о внесении изменений в раздел I ВБК (кредитный договор с нерезидентом)» необходимо отправить POST-запрос (/v1/bank-control-statements/change-curr-cred-contracts), в котором передать авторизационный токен к данным собственной/дочерней организации (Access Token) и реквизиты документа. Авторизационный токен передается в параметре Authorization заголовка запроса.

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

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

Наименование Описание
Параметры заголовка
Authorization String
Access token собственной/дочерней организации, полученный через SSO.
Пример: Bearer daf9a14c-821d-4bde-9c10-0e56e63d54a0-1
Параметры запроса
CurrCredContractChangeApplication {
actualDebtAmount (number, optional) Сумма фактической задолженности по основному долгу,
amount (number, optional) Сумма контракта ,
bankComment (string, optional, read only) Банковский комментарий к статусу документа ,
bankControlStatementChangeApplicationInfo (BankControlStatementChangeApplicationInfo) Информация о заявлении о внесении изменений в I раздел ВБК ,
bankStatus (string, optional, read only) Статус документа ,
collateralAmount (number, optional) Сумма залогового или другого обеспечения ,
contractDate (string) Дата контракта ,
contractEndDate (string, optional) Дата окончания обязательств по контракту ,
contractNumber (string, optional) Номер контракта ,
credRepayPayments (Array[CredRepayPaymentChangeable], optional) График платежей по кредитному договору ,
creditAttractions (Array[CreditAttractionChangeable], optional) Привлечение кредита на синдицированной (консорциональной) основе ,
creditPayPeriodCode (string, optional) Код срока привлечения (предоставления) ,
currFixInterestRate (number, optional) Фиксированный размер процентной ставки ,
currencyCode (string, optional) Цифровой код валюты контракта ,
currencyEarningsAmount (number, optional) Сумма, подлежащая погашению за счет валютной выручки ,
date (string) Дата составления документа ,
digestSignatures (Array[Signature], optional) Электронные подписи по дайджесту документа ,
hasDirectInvesting (boolean, optional) Признак наличия отношений прямого инвестирования ,
increaseRate (number, optional) Размер процентной надбавки ,
liborRate (string, optional) Код ставки Libor ,
nonResidents (Array[BankControlStatementNonResident], optional) Информация о нерезидентах ,
number (string, optional) Номер документа ,
otherPayments (string, optional) Иные платежи, предусмотренные кредитным договором ,
otherRateMethod (string, optional) Описание метода определения ставки ,
tranches (Array[CurrCredTrancheChangeable], optional) Информация о траншах по кредиту ,
transferAmount (number, optional) Сумма, подлежащая зачислению на счета за рубежом
}BankControlStatementChangeApplicationInfo {
authPersonName (string) ФИО ответственного лица ,
authPersonTelfax (string) Телефон ответственного лица ,
basisDocs (Array[BankControlStatementChangeBasisDoc], optional) Документы-основания для внесения изменений ,
bfAttachments (Array[BfAttachment], optional) Прикрепленные большие файлы ,
contentInfo (string, optional) Информация об изменениях ,
contractExternalId (string) Идентификатор изменяемого контракта в организации-партнере ,
externalId (string) Идентификатор документа в организации-партнере ,
inUSRLE (boolean) Изменения в ЕГРЮЛ/ЕГРИП ,
prolongation (boolean) Пролонгация
}CredRepayPaymentChangeable {
condition (string, optional) Особые условия ,
currencyCode (string) Цифровой код валюты платежа ,
interestAmount (number, optional) Сумма платежа по процентам ,
interestDate (string, optional) Дата платежа (процентный) ,
principalAmount (number, optional) Сумма платежа по основному долгу ,
principalDate (string, optional) Дата платежа (основной долг)
}CreditAttractionChangeable {
amount (number, optional) Сумма привлечения резидентом кредита, предоставленного нерезидентами ,
interestCredit (number, optional) Доля в общей сумме кредита, % ,
nonResidentCountryCode (string, optional) Цифровой код страны нерезидента ,
nonResidentName (string, optional) Наименование нерезидента
}Signature {
base64Encoded (string) Значение электронной подписи, закодированное в Base64 ,
certificateUuid (string) Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID)
}BankControlStatementNonResident {
countryCode (string) Цифровой код страны ,
countryName (string) Наименование страны ,
name (string) Наименование иностранного контрагента
}CurrCredTrancheChangeable {
amount (number, optional) Сумма ,
currencyCode (string, optional) Цифровой код валюты ,
entryDate (string, optional) Ожидаемая дата поступления ,
periodCode (string, optional) Код срока привлечения
}BankControlStatementChangeBasisDoc {
date (string) Дата документа-основания ,
number (string, optional) Номер документа-основания
}BfAttachment {
fileId (string, optional) Уникальный идентификатор файла ,
fileName (string, optional, read only) Имя файла
}

Пример:

{
   "actualDebtAmount":1.01,
   "amount":1.01,
   "bankComment":"string",
   "bankControlStatementChangeApplicationInfo":{
      "authPersonName":"Иванов Иван Иванович",
      "authPersonTelfax":"4955005550",
      "basisDocs":[
         {
            "date":"2018-12-31",
            "number":"2222222222"
         }
      ],
      "bfAttachments":[
         {
            "fileId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
            "fileName":"SB_7718830000_40702810038290010000_T18.txt"
         }
      ],
      "contentInfo":"Изменение траншей и процентных платежей по кредитному договору",
      "contractExternalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
      "externalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
      "inUSRLE":false,
      "prolongation":false
   },
   "bankStatus":"string",
   "collateralAmount":1.01,
   "contractDate":"2018-12-31",
   "contractEndDate":"2018-12-31",
   "contractNumber":"123АБВ",
   "credRepayPayments":[
      {
         "condition":"АБВ123",
         "currencyCode":"840",
         "interestAmount":1.01,
         "interestDate":"2018-12-31",
         "principalAmount":1.01,
         "principalDate":"2018-12-31"
      }
   ],
   "creditAttractions":[
      {
         "amount":1.01,
         "interestCredit":1.01,
         "nonResidentCountryCode":"643",
         "nonResidentName":"Kazan"
      }
   ],
   "creditPayPeriodCode":"1",
   "currFixInterestRate":1.01,
   "currencyCode":"840",
   "currencyEarningsAmount":1.01,
   "date":"2018-12-31",
   "digestSignatures":[
      {
         "base64Encoded":"HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
         "certificateUuid":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
      }
   ],
   "hasDirectInvesting":false,
   "increaseRate":1.01,
   "liborRate":"Л06",
   "nonResidents":[
      {
         "countryCode":"643",
         "countryName":"РОССИЯ",
         "name":"Kazan"
      }
   ],
   "number":"1",
   "otherPayments":"АБВ123",
   "otherRateMethod":"АБВ123",
   "tranches":[
      {
         "amount":1.01,
         "currencyCode":"840",
         "entryDate":"2018-12-31",
         "periodCode":"1"
      }
   ],
   "transferAmount":1.01
}

В случае, если необходимо:

  • Удалить бизнес-данные - отправляется параметр со значением null "a": null
  • Удалить json объект:

    • отправляется json объект в виде "creditAttractions": [{"a": 1}, null, {"b": 1}]
    • сортировка объектов в массиве должна соответствовать сортировке в контракте, которую требуется изменить
    • новый объект в массив добавляется последним.
  • Изменить бизнес-данные - отправляется параметр/объект с измененными значениями
  • Добавить бизнес-данные - добавить параметр со значением НЕ null

Заявление о внесении изменений, в котором абсолютно все бизнес-данные соответствуют валютному контракту, обработано не будет, т.е. документ должен содержать дельту.

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

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

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

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

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

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

При этом подписант, обладающий полномочием единственной подписи, не может «сочетаться» с подписантом, владеющим первой или второй подписью.

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

Формирование электронной подписи (ГОСТ 2012)

Алгоритм сортировки дайджеста

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

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

Наименование поля Описание поля Пример
actualDebtAmount Сумма фактической задолженности по основному долгу 1.00
amount Сумма кредитного договора 1.00
bankControlStatementChangeApplicationInfo.authPersonName ФИО ответственного лица Иванов Иван Иванович
bankControlStatementChangeApplicationInfo.authPersonTelfax Телефон ответственного лица 4955005550
bankControlStatementChangeApplicationInfo.contentInfo Информация об изменениях Изменение траншей и процентных платежей по кредитному договору
bankControlStatementChangeApplicationInfo.contractExternalId Идентификатор документа, по которому отправляется ЗОВИ
bankControlStatementChangeApplicationInfo.externalId Идентификатор документа в организации-партнере c18835bc-c43e-425c-80ba-354d62094e93
bankControlStatementChangeApplicationInfo.inUSRLE Наименование организации клиента ООО "ТЕСТ"
bankControlStatementChangeApplicationInfo.prolongation ИНН организации клиента 7707083893
collateralAmount Сумма залогового или другого обеспечения 1.00
contractDate Дата кредитного договора 26.09.2019
contractEndDate Дата окончания обязательств по договору 26.09.2019
contractNumber Номер кредитного договора 123АБВ
creditPayPeriodCode Код срока привлечения (предоставления) 1
currFixInterestRate Фиксированный размер процентной ставки 1.0000
currencyCode Цифровой код валюты кредитного договора 840
currencyEarningsAmount Сумма, подлежащая погашению за счет валютной выручки 1.00
date Дата создания документа по местному времени в формате YYYY-MM-DD 26.09.2019
hasDirectInvesting Признак наличия отношений прямого инвестирования true
hasSchedulePaymentsInCredit Основания для заполнения графика платежей (п. 8.2 181-И) true
increaseRate Размер процентной надбавки 1.0000
liborRate Код ставки Libor Л06
Заполняется, если interestRateMethod=1
otherPayments Иные платежи, предусмотренные кредитным договором АБВ123
otherRateMethod Описание метода определения ставки АБВ123
transferAmount Сумма, подлежащая зачислению на счета за рубежом 1.00
TABLES Значение указывается при наличии UUID-ов больших файлов или данных по платежам/траншам/нерезидентам
Table=BasicDocs Документы-основания для внесения изменений в ВБК
date Дата документа-основания 26.09.2019
number Номер документа-основания 12
Table=BfAttachments Значение указывается при наличии UUID-ов больших файлов
fileId UUID БФ 853b4bf6-2c6e-4020-a18f-289df39f78b8
# Разделитель
Table=CredRepayPayments График платежей по кредитному договору
condition Особые условия АБВ123
currencyCode Цифровой код валюты USD
interestAmount Сумма платежа по процентам 1.00
interestDate Дата платежа (процентный) 26.09.2019
principalAmount Сумма платежа по основному долгу 1.00
principalDate Дата платежа (основной долг) 26.09.2019
#
Table=CreditAttractions Привлечение кредита на синдицированной (консорциональной) основе
amount Сумма 1.00
currencyCode Цифровой код валюты 840
interestCredit Доля в общей сумме кредита, % 1.00
nonResidentCountryCode Цифровой код страны нерезидента 38
nonResidentName Наименование нерезидента Kazan
# Разделитель
Table=NonResidents
countryCode Цифровой код страны 38
countryName Наименование страны Казахстан
name Наименование нерезидента Kazan
# Разделитель
Table=Tranches Информация о траншах по кредиту
amount Сумма транша 1.00
currencyCode Цифровой код валюты транша 840
entryDate Ожидаемая дата поступления 26.09.2019
periodCode Код срока привлечения 1
# Разделитель

Пример:

actualDebtAmount=1.00
amount=1.00
bankControlStatementChangeApplicationInfo.authPersonName=Иванов Иван Иванович
bankControlStatementChangeApplicationInfo.authPersonTelfax=4955005550
bankControlStatementChangeApplicationInfo.contentInfo=Изменение траншей и процентных платежей по кредитному договору
bankControlStatementChangeApplicationInfo.contractExternalId=1e86c524-4c7b-4bbb-9af5-eb86d22760bd
bankControlStatementChangeApplicationInfo.externalId=d48d95e9-ae3e-491e-a9b3-53d6d5bc683b
bankControlStatementChangeApplicationInfo.inUSRLE=false
bankControlStatementChangeApplicationInfo.prolongation=false
collateralAmount=1.00
contractDate=2019-09-26
contractEndDate=2019-09-26
contractNumber=123АБВ
creditPayPeriodCode=1
currFixInterestRate=1.0000
currencyCode=840
currencyEarningsAmount=1.00
date=2019-09-26
hasDirectInvesting=true
hasSchedulePaymentsInCredit=true
increaseRate=1.0000
liborRate=Л06
otherPayments=АБВ123
otherRateMethod=АБВ123
transferAmount=1.00
TABLES
Table=BasicDocs
date=2019-09-26
number=123АБВ
#
Table=BfAttachments
fileId=853b4bf6-2c6e-4020-a18f-289df39f78b8
#
Table=CredRepayPayments
condition=АБВ123
currencyCode=840
interestAmount=1.00
interestDate=2019-09-26
principalAmount=1.00
principalDate=2019-09-26
#
Table=CreditAttractions
amount=1.00
currencyCode=840
interestCredit=1.00
nonResidentCountryCode=038
nonResidentName=Kazan
#
Table=NonResidents
countryCode=038
countryName=Казахстан
name=Kazan
#
Table=Tranches
amount=1.00
currencyCode=840
entryDate=2019-09-26
periodCode=1
#

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

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

Ресурс /v1/bank-control-statements/change-applications/{externalId}/state

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

Шаги:

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

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

Для создания запроса на получения статуса документа «Заявление о внесении изменений в раздел I ВБК» необходимо отправить GET-запрос (/v1/bank-control-statements/change-applications/{externalId}/state), в котором передать авторизационный токен к данным собственной/дочерней организации (Access Token) и идентификатор документа (externalId). Авторизационный токен передается в параметре Authorization заголовка запроса.

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

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

Наименование Описание
Параметры заголовка
Authorization String
Access token, полученный через SSO.
Пример: Bearer daf9a14c-821d-4bde-9c10-0e56e63d54a0-1
Параметры запроса
externalId String Идентификатор документа, присвоенный клиентом

Пример:

curl -X GET --header 'Accept: application/json' --header
'Authorization: Bearer daf9a14c-821d-4bde-9c10-0e56e63d54a0-1'
'https://edupirfintech.sberbank.ru:9443/fintech/api/v1/bank-control-statements/change
applications/22a6dd81-103a-4d3a-8e9b-0ba4b527f010/state'

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

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

Пример:

{
    "bankStatus": "DELIVERED",
    "bankComment": null,
    "channelInfo": null,
}

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

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

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

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

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

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

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

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

JWS состоит из:

1. Заголовка (Header)
2. JSON-документа с реквизитным составом платежного поручения (Payload)
3. Подписи запроса (Signature)

Формирование компактной сериализации JWS

JWS формируется из трех составляющих:

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

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

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

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

Следует отметить, что при кодировании JWS используется преобразование Base64Url, отличающееся от Base64 преобразования.
Условно это преобразование можно представить следующим образом:

Base64Url(x) := Base64(x).Split(‘=’)[0].Replace(‘+’, ’-’).Replace(‘/’, ’_’)

здесь функция Split(x), разбивает строку на части ([i] означает взятие i–ой части), используя символ разделитель x, функция Replace(x,y) заменяет все вхождения символа x на символ y.

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

BASE64URL BASE64
- (minus) +
_ (underline) /
  • В BASE64URL не используется (опускается) padding, т.е. не добавляются знаки ‘=’ на конце закодированного содержимого Padding of Encoded Data.

В ответе на запрос сервер возвращает JSON-документ, который содержит реквизитный состав подготовленного черновика рублевого платежного поручения в статусе Создан.

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

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

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

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

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней