ym88659208ym87991671
Валютный кредитный договор | Документация для разработчиков

Валютный кредитный договор

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

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

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

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

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

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

Шаги

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

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

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

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

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

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

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

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

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token собственной/дочерней организации, полученный через SSO
Пример: Bearer 8190f687-c916-453b-9d68-0ce22f4f3f9d-1
Параметры тела запроса
CurrCredContract {
actualDebtAmount (number, optional)Сумма фактической задолженности по основному долгу ,
actualDebtCurrencyCode (string, optional)Цифровой код валюты фактической задолженности по основному долгу ,
actualDebtCurrencyName (string, optional)Буквенный ISO-код валюты фактической задолженности по основному долгу ,
amount (number, optional)Сумма контракта ,
bankComment (string, optional, read only)Банковский комментарий к статусу документа ,
bankControlStatementInfo (BankControlStatementInfo)Информация о ведомости банковского контроля ,
bankStatus (string, optional, read only)Статус документа ,
calcDate (string, optional, read only)Дата расчета ,
collateralAmount (number, optional)Сумма залогового или другого обеспечения ,
contractDate (string)Дата контракта ,
contractEndDate (string, optional)Дата окончания обязательств по контракту ,
contractNumber (string, optional)Номер контракта ,
credRepayPayments (Array[CredRepayPayment], optional)График платежей по кредитному договору ,
creditAttractions (Array[CreditAttraction], optional)Привлечение кредита на синдицированной (консорциональной) основе ,
creditPayPeriodCode (string, optional)Код срока привлечения (предоставления) ,
0 - до 30 дней
1 - от 31 до 90 дней
2 - от 91 до 180 дней
3 - от 181 дня до 1 года
4 - от 1 года до 3 лет
6 - до востребования
7 - от 3 лет до 5 лет
8 - от 5 лет до 10 лет
9 - Свыше 10 лет
currFixInterestRate (number, optional)Фиксированный размер процентной ставки ,
currencyCode (string, optional)Цифровой код валюты контракта ,
currencyEarningsAmount (number, optional)Сумма, подлежащая погашению за счет валютной выручки ,
date (string)Дата составления документа ,
decAmount (number, optional, read only)Сумма уменьшения задолженности по основному долгу по иным основаниям ,
digestSignatures (Array[Signature], optional)Электронные подписи по дайджесту документа ,
enrollAmount (number, optional, read only)Сумма денежных средств, переведенных (зачисленных) в счет погашения основного долга ,
finalDebtAmount (number, optional, read only)Задолженность по основному долгу на дату расчета (на дату снятия с учета кредитного договора) ,
finalDebtСurrencyCode (string, optional, read only)Цифровой код страны ,
finalDebtСurrencyName (string, optional, read only)Буквенный ISO-код валюты ,
hasDirectInvesting (boolean, optional)Признак наличия отношений прямого инвестирования ,
hasSchedulePaymentsInCredit (boolean, optional)Основания для заполнения графика платежей (п. 8.2 181-И) ,
incAmount (number, optional, read only)Сумма увеличения задолженности по основному долгу по иным основаниям ,
increaseRate (number, optional)Размер процентной надбавки ,
interestRateMethod (string, optional)Метод определения процентной ставки:
0 - Фиксированный размер процентной ставки
1 - Ставка ЛИБОР
2 - Другой метод определения ставки
liborRate (string, optional)Код ставки ЛИБОР ,
loanAmount (number, optional, read only)Сумма денежных средств, полученных (предоставленных) по кредиту (займу) ,
nonResidents (Array[BankControlStatementNonResident], optional)Информация о нерезидентах ,
number (string, optional)Номер документа ,
otherPayments (string, optional)Иные платежи, предусмотренные кредитным договором ,
otherRateMethod (string, optional)Описание метода определения ставки ,
tranches (Array[CurrCredTranche], optional)Информация о траншах по кредиту ,
transferAmount (number, optional)Сумма, подлежащая зачислению на счета за рубежом
}BankControlStatementInfo {
authPersonName (string, optional)ФИО ответственного лица ,
authPersonTelfax (string, optional)Телефон ответственного лица ,
bankCommentAuthor (string, optional, read only)Автор комментария ,
bankDate (string, optional, read only)Дата постановки контракта/договора на учет , ,
bfAttachments (Array[BfAttachment], optional)Прикрепленные большие файлы ,
chainId (string, optional, read only)Id цепочки ,
creationMode (string)Режим создания ВБК = ICS_CREDIT_REGISTRATION
stringEnum: "ICS_CREDIT_REGISTRATION",
currencyName (string, optional)Буквенный ISO-код валюты контракта ,
externalId (string)Идентификатор документа в организации-партнере ,
failReasons (Array[FailReason], optional, read only)Причины отказа ,
isActual (boolean, optional, read only)Признак актуальности ВБК ,
unk (string, optional)
}CredRepayPayment {
condition (string, optional)Особые условия ,
currencyCode (string)Цифровой код валюты платежа ,
currencyName (string, optional)Буквенный ISO-код валюты платежа ,
interestAmount (number, optional)Сумма платежа по процентам ,
interestDate (string, optional)Дата платежа (процентный) ,
principalAmount (number, optional)Сумма платежа по основному долгу ,
principalDate (string, optional)Дата платежа (основной долг)
}CreditAttraction {
amount (number, optional)Сумма привлечения резидентом кредита, предоставленного нерезидентами ,
currencyCode (string, optional)Цифровой код валюты привлечения резидентом кредита, предоставленного нерезидентами ,
currencyName (string, optional)Буквенный ISO-код валюты привлечения резидентом кредита, предоставленного нерезидентами ,
hasPercentType (boolean)Доля или сумма (false - сумма, true - доля) ,
interestCredit (number, optional)Доля в общей сумме кредита, % ,
nonResidentCountryCode (string, optional)Цифровой код страны нерезидента ,
nonResidentCountryName (string, optional)Наименование страны нерезидента ,
nonResidentName (string, optional)Наименование нерезидента
}Signature {
base64Encoded (string)Значение электронной подписи, закодированное в Base64 ,
certificateUuid (string)Уникальный идентификатор сертификата ключа проверки электронной подписи (UUID)
}BankControlStatementNonResident {
countryCode (string)Цифровой код страны ,
countryName (string)Наименование страны ,
name (string)Наименование иностранного контрагента
}CurrCredTranche {
amount (number, optional)Сумма ,
currencyCode (string, optional)Цифровой код валюты ,
currencyName (string, optional)Буквенный ISO-код валюты ,
entryDate (string, optional)Ожидаемая дата поступления ,
periodCode (string, optional)Код срока привлечения (предоставления) ,
0 - до 30 дней
1 - от 31 до 90 дней
2 - от 91 до 180 дней
3 - от 181 дня до 1 года
4 - от 1 года до 3 лет
6 - до востребования
7 - от 3 лет до 5 лет
8 - от 5 лет до 10 лет
9 - Свыше 10 лет
}BfAttachment {
fileId (string, optional)Уникальный идентификатор файла ,
fileName (string, optional, read only)Имя файла
}FailReason {
docField (string, optional)Поле документа ,
reasonComment (string, optional)Правило заполнения/замечания ,
reasonId (string, optional)Код причины отказа ,
returnComment (string, optional)Комментарий
}

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

{
"actualDebtAmount":1.01,
"actualDebtCurrencyCode":"840",
"actualDebtCurrencyName":"USD",
"amount":1.01,
"bankComment":"string",
"bankControlStatementInfo":{
"authPersonName":"Иванов Иван Иванович",
"authPersonTelfax":"4955005550",
"bankCommentAuthor":"Иванов Иван Иванович",
"bankDate": "string",
"bfAttachments":[
{
"fileId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"fileName":"SB_7718830000_40702810038290010000_T18.txt"
}
],
"chainId":"1234567890123",
"creationMode":"ICS_CREDIT_REGISTRATION",
"currencyName":"USD",
"externalId":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"failReasons":[
{
"docField":"Номер контракта",
"reasonComment":"Указан неверно",
"reasonId":"PS_REST_REJ_PART_2-9",
"returnComment":"Отказ проверки"
}
],
"isActual":false,
"unk":"string"
},
"bankStatus":"string",
"calcDate":"2018-12-31",
"collateralAmount":1.01,
"contractDate":"2018-12-31",
"contractEndDate":"2018-12-31",
"contractNumber":"123АБВ",
"credRepayPayments":[
{
"condition":"АБВ123",
"currencyCode":"840",
"currencyName":"USD",
"interestAmount":1.01,
"interestDate":"2018-12-31",
"principalAmount":1.01,
"principalDate":"2018-12-31"
}
],
"creditAttractions":[
{
"amount":1.01,
"currencyCode":"840",
"currencyName":"USD",
"hasPercentType":false,
"interestCredit":1.01,
"nonResidentCountryCode":"643",
"nonResidentCountryName":"РОССИЯ",
"nonResidentName":"Kazan"
}
],
"creditPayPeriodCode":"1",
"currFixInterestRate":1.01,
"currencyCode":"840",
"currencyEarningsAmount":1.01,
"date":"2018-12-31",
"decAmount":1.01,
"digestSignatures":[
{
"base64Encoded":"HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid":"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"enrollAmount":1.01,
"finalDebtAmount":1.01,
"finalDebtСurrencyCode":"643",
"finalDebtСurrencyName":"USD",
"hasDirectInvesting":false,
"hasSchedulePaymentsInCredit":false,
"incAmount":1.01,
"increaseRate":1.01,
"interestRateMethod":"1",
"liborRate":"Л06",
"loanAmount":1.01,
"nonResidents":[
{
"countryCode":"643",
"countryName":"РОССИЯ",
"name":"Kazan"
}
],
"number":"1",
"otherPayments":"АБВ123",
"otherRateMethod":"АБВ123",
"tranches":[
{
"amount":1.01,
"currencyCode":"840",
"currencyName":"USD",
"entryDate":"2018-12-31",
"periodCode":"1"
}
],
"transferAmount":1.01
}

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

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

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

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

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

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

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

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

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

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

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

Наименование поляОписание поляПример
actualDebtAmountСумма фактической задолженности по основному долгу1.00
actualDebtCurrencyCodeЦифровой код валюты840
actualDebtCurrencyNameБуквенный ISO-код валютыUSD
amountСумма кредитного договора1.00
bankControlStatementInfo.authPersonNameФИО ответственного лицаИванов Иван Иванович
bankControlStatementInfo.authPersonTelfaxТелефон ответственного лица4955005550
bankControlStatementInfo.creationModeРежим создания ВБКICS_CREDIT_REGISTRATION
bankControlStatementInfo.currencyNameБуквенный ISO-код валюты кредитного договораUSD
bankControlStatementInfo.externalIdИдентификатор документа в организации-партнереc18835bc-c43e-425c-80ba-354d62094e93
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-DD26.09.2019
hasDirectInvestingПризнак наличия отношений прямого инвестированияtrue
hasSchedulePaymentsInCreditОснования для заполнения графика платежей (п. 8.2 181-И)true
increaseRateРазмер процентной надбавки1.0000
interestRateMethodМетод определения процентной ставки1
liborRateКод ставки LiborЛ06
otherPaymentsИные платежи, предусмотренные кредитным договоромАБВ123
otherRateMethodОписание метода определения ставкиАБВ123
transferAmountСумма, подлежащая зачислению на счета за рубежом1.00
TABLESЗначение указывается при наличии UUID-ов больших файлов или данных по платежам/траншам/нерезидентам
Table=BfAttachmentsЗначение указывается при наличии UUID-ов больших файлов
fileIdUUID БФ853b4bf6-2c6e-4020-a18f-289df39f78b8
#Разделитель
Table=CredRepayPaymentsГрафик платежей по кредитному договору
conditionОсобые условияАБВ123
currencyCodeЦифровой код валютыUSD
currencyNameБуквенный ISO-код валютыUSD
interestAmountСумма платежа по процентам1.00
interestDateДата платежа (процентный)26.09.2019
principalAmountСумма платежа по основному долгу1.00
principalDateДата платежа (основной долг)26.09.2019
#
Table=CreditAttractionsПривлечение кредита на синдицированной (консорциональной) основе
amountСумма1.00
currencyCodeЦифровой код валюты840
currencyNameБуквенный ISO-код валютыUSD
hasPercentTypeДоля или суммаtrue
interestCreditДоля в общей сумме кредита, %1.00
nonResidentCountryCodeЦифровой код страны нерезидента38
nonResidentCountryNameНаименование страны нерезидентаКазахстан
nonResidentNameНаименование нерезидентаKazan
#Разделитель
Table=NonResidents
countryCodeЦифровой код страны38
countryNameНаименование страныКазахстан
nameНаименование нерезидентаKazan
#Разделитель
Table=TranchesИнформация о траншах по кредиту
amountСумма транша1.00
currencyCodeЦифровой код валюты транша840
currencyNameБуквенный код валютыUSD
entryDateОжидаемая дата поступления26.09.2019
periodCodeКод срока привлечения1
#Разделитель

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

actualDebtAmount=1.00
actualDebtCurrencyCode=840
actualDebtCurrencyName=USD
amount=1.00
bankControlStatementInfo.authPersonName=Иванов Иван Иванович
bankControlStatementInfo.authPersonTelfax=4955005550
bankControlStatementInfo.creationMode=ICS_CREDIT_REGISTRATION
bankControlStatementInfo.currencyName=USD
bankControlStatementInfo.externalId=c18835bc-c43e-425c-80ba-354d62094e93
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
interestRateMethod=1
liborRate=Л06
otherPayments=АБВ123
otherRateMethod=АБВ123
transferAmount=1.00
TABLES
Table=BfAttachments
fileId=853b4bf6-2c6e-4020-a18f-289df39f78b8
#
Table=CredRepayPayments
condition=АБВ123
currencyCode=USD
currencyName=USD
interestAmount=1.00
interestDate=2019-09-26
principalAmount=1.00
principalDate=2019-09-26
#
Table=CreditAttractions
amount=1.00
currencyCode=840
currencyName=USD
hasPercentType=true
interestCredit=1.00
nonResidentCountryCode=038
nonResidentCountryName=Казахстан
nonResidentName=Kazan
#
Table=NonResidents
countryCode=038
countryName=Казахстан
name=Kazan
#
Table=Tranches
amount=1.00
currencyCode=840
currencyName=USD
entryDate=2019-09-26
periodCode=1
#

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

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

Шаги

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

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

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

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

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

НаименованиеОписание
Параметры заголовка
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://iftfintech.testsbi.sberbank.ru:9443/fintech/api/v1/
bank-control-statements/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Выгружен
TRIED_BY_CFEПроверяется ВК
WAITSENDDOCUMENTОжидает досыла документа
Окончательные статусы/Прекратить опрос
CHECKERRORОшибка контроля
INVALIDEDSЭП/АСП не верна
REQUISITEERRORОшибка реквизитов
REFUSEDBYABSОтказан АБС
REFUSED_BY_CFEОтказан ВК
Окончательные(Успешные) статусы/Прекратить опрос
ACCEPTED_BY_CFEПринят ВК

Ресурс /v1/bank-control-statements/reg-curr-cred-contracts/{externalId}

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

Шаги

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

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

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

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

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

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

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

curl -X GET --header 'Accept: application/json' --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://iftfintech.testsbi.sberbank.ru:9443/fintech/api/v1/bank-control-statements/
reg-curr-cred-contracts/22a6dd81-103a-4d3a-8e9b0ba4b527f5f6'

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

Соответствует модели запроса и ответа /v1/bank-control-statements/reg-curr-cred-contract

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

Ресурс позволяет получить UUID Валютных кредитных контрактов, зарегистрированных в Банке. Пользовательская версия документа, который клиент подписал и отправил в банк (форма постановки на учет контракта или кредитного договора) является первой версией в рамках документа Ведомость банковского контроля. До обработки такой ВБК банком - эта версия является актуальной. После обработки новая версия документа получит признак актуальности, при этом начальная пользовательская версия станет неактуальной. Также, если сам Пользователь захочет внести изменение в ВБК, оформляя заявку (ЗоВИ), также создается новая версия ВБК с признаком актуальности, у предыдущей версии этот признак снимается. Каждое изменение должно быть создано к последней актуальной версии ВБК, поэтому важно знать externalId актуальной версии ВБК.

Шаги

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

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

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

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

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

НаименованиеОписание
Параметры заголовка
Authorization (String)Access token, полученный через SSO
Пример: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1
Параметры запроса
date (Date)Дата создания документа по местному времени (yyyy-MM-dd)
isActual (String)Признак актуальности ВБК
false - возвращаются актуальные и архивные идентификаторы ВБК
true - возвращаются актуальные идентификаторы ВБК
page (Number)Номер страницы

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

curl -X GET --header 'Accept: /' --header
'Authorization: Bearer f8ad3141-b7e8-4924-92de-3de4fd0a464e-1'
'https://iftfintech.testsbi.sberbank.ru:9443/fintech/api/v1/bank-control-statements/
reg-curr-cred-contracts/list?date=2019-11 -25&isActual=false&page=1'

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

НаименованиеОписание
FintechCurrContractsUUID
_links (Array[Link], optional)Ссылки на связанные ресурсы,
externalId (Array[string], optional)ВБК
}Link {
href (string)Абсолютный или относительный адрес,
rel (string)Отношение ссылки к текущей сущности (next, prev)

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

{
"_links":[
{
"href":"? date=2018-03-15&isActual=false&page=3",
"rel":"next"
}
],
"externalId":[
"22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"26a6dd81-103a-4d3a-8e9b-0ba4b527f5f8",
"12a6dd31-103a-4d3a-8e9b-0ba4b527f5f4"
]
}

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

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

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; У пользователя отсутствует оферта с внешним сервисом.
404NOT_FOUND
Документ с указанным ID не найденНевозможно найти документ с указанным внешним идентификатором.
415JWS_EXCEPTED
В соответствии с текущими настройками сервиса с clientId=%s необходимо использовать запрос в формате JWS Compact SerializationОшибка возникает, если в настройках внешних сервисов выставлен флаг "Требуется подпись для внешнего сервиса"
500UNKNOWN_EXCEPTION
Внутренняя ошибка сервера
503UNAVAILABLE_RESOURCE_EXCEPTION
Сервис временно недоступенПроводятся технические работы
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.