/fintech/api/v1/bank-control-statements/reg-curr-contracts
Запрос позволяет создать заявление на регистрацию валютного контракта (ВК).
Для создания заявления на регистрацию ВК необходимо отправить POST-запрос /fintech/api/v1/bank-control-statements/reg-curr-contracts
с токеном доступа (access_token) пользователя в параметре Authorization заголовка и реквизитами на регистрацию контракта.
В параметре scope ссылки авторизации пользователя должен быть указан сервис BANK_CONTROL_STATEMENT
для получения доступа к этому запросу.
- Если в запросе на создание заявления передать ЭП к документу (объект digestSignatures), то Банк сразу начнет обработку документа.
- Если в запросе не передавать ЭП к документу, то заявление будет создано в статусе черновик. Для начала обработки документа Банком потребуется зайти в интерфейс СберБизнес и подписать его.
Для обращения к ресурсу необходимо отправлять запрос на:
- Тестовый контур
https://iftfintech.testsbi.sberbank.ru:9443
- Промышленный контур
https://fintech.sberbank.ru:9443
Request
/fintech/api/v1/bank-control-statements/reg-curr-contracts
- Модель
- Пример
Наименование | Тип | Формат | Regexp | Обязательность | Описание |
---|---|---|---|---|---|
HEADER | |||||
Authorization | string | string | ^[a-zA-Z0-9]{38}$ | required | Access token пользователя, полученный через SSO. |
BODY | |||||
CurrContract { | |||||
amount | number | float | ^[0-9]{1,16}\.[0-9]{2}$ | optional | Сумма платежа, |
bankControlStatementInfo | BankControlStatementInfo | object | required | Информация о ведомости банковского контроля, | |
contractDate | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | required | Дата контракта |
contractEndDate | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | optional | Дата окончания обязательств по контракту, |
contractNumber | string | string | ^.{1,100}$ | optional | Номер контракта, |
contractType | string | string | ^(PRODUCT_EXPORT|SERVICE_EXPORT|MULTI_CONTRACT)$ | optional | Код вида контракта, заполняемый для экспортных контрактов при представлении сведений по контракту без контракта. Заполнять обязательно, если creationMode=ICS_CONTRACT_INFORMATION , |
currencyCode | string | Цифровой ISO-код валюты | ^[0-9]{3}$ Актуальный список значений можно получить с помощью справочника CurDict | optional | Код валюты контракта. Заполнять обязательно, если creationMode=ICS_CONTRACT_INFORMATION, |
date | string | ISO 8601 YYYY-MM-DD | ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ | required | Дата составления документа, |
digestSignatures | array[Signature] | array | optional | Электронные подписи по дайджесту документа. - Если ЭП передана/ы в API, то они сохраняются вместе с документом, а сам документ продвигается дальше по своему жизненному циклу. - Если ЭП не была/и передана/ы, то документ сохраняется в своем начальном статусе и ожидает дальнейшего подписания в интерфейсе СберБизнес. О подписании дайджеста документа подробно рассказали в соответствующем разделе документации. | |
nonResidents | array[BankControlStatementNonResident] | array | optional | Информация о нерезидентах, | |
number | string | string | ^[a-zA-Z0-9. \ _ -]{1,7}$ | optional | Номер документа, |
} | |||||
BankControlStatementInfo { | |||||
authPersonName | string | string | ^.{1,60}$ | optional | ФИО ответственного лица, |
authPersonTelfax | string | string | ^.{1,40}$ | optional | Телефон ответственного лица, |
bfAttachments | array[BfAttachment] | array | optional | Прикрепленные большие файлы, | |
creationMode | string | string | ^(ICS_CONTRACT_INFORMATION|ICS_CONTRACT_REGISTRATION)$ | required | Режим создания ВБК,ICS_CONTRACT_REGISTRATION - указывается при регистрации контракта, когда необходимо отправить сам контракт во вложении, чтобы поставить его на учет.ICS_CONTRACT_INFORMATION - заполняется в случае, если необходимо предоставить только информацию о контракте, для отправки СВО, к примеру (см. 181-И). |
currencyName | string | Буквенный ISO-код валюты | ^[a-zA-Z0-9. \ _ -]{3}$ Актуальный список значений можно получить с помощью справочника CurDict | optional | Код валюты контракта, |
externalId | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Идентификатор документа, который вы присваиваете самостоятельно |
} | |||||
Signature { | |||||
base64Encoded | string | base64 | ^[a-zA-Z0-9]+$ | required | Значение электронной подписи (ЭП), закодированное в Base64, |
certificateuuid | string | UUID | ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ | required | Уникальный идентификатор сертификата ключа проверки электронной подписи |
} | |||||
BankControlStatementNonResident { | |||||
countryCode | string | ОКСМ | ^[0-9]{3}$ Актуальный список значений можно получить с помощью справочника Country | required | Цифровой код страны, |
countryName | string | string | ^.{1,255}$ Актуальный список значений можно получить с помощью справочника Country | required | Наименование страны, |
isAffiliatedPerson | boolean | boolean | ^(true|false)$ | optional | Признак аффилированного лица, |
name | string | string | ^.{1,400}$ | required | Наименование иностранного контрагента |
} | |||||
BfAttachment { | |||||
fileId | string | string | ^[a-zA-Z0-9. \ _ -]+$ | optional | Уникальный идентификатор файла |
} |
POST /fintech/api/v1/bank-control-statements/reg-curr-contracts HTTP/1.1
Content-Type: application/json
Authorization: Bearer xbgDF3brf456ghi789jkl012mNKFtEpqr678
{
"amount": 1.01,
"balance": 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_CONTRACT_INFORMATION",
"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",
"contractDate": "2018-12-31",
"contractEndDate": "2018-12-31",
"contractNumber": "123АБВ",
"contractType": "MULTI_CONTRACT",
"currencyCode": "840",
"date": "2018-12-31",
"decNonresToResidentLiabSum": 1.01,
"decResidentToNonresLiabSum": 1.01,
"digestSignatures": [
{
"base64Encoded": "HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"finalTransCurrencyCode": "643",
"finalTransCurrencyName": "USD",
"incNonresidLiabilitySum": 1.01,
"incResidentLiabilitySum": 1.01,
"nonResidents": [
{
"countryCode": "643",
"countryName": "РОССИЯ",
"isAffiliatedPerson": false,
"name": "Kazan"
}
],
"number": "1",
"totalCredit": 1.01,
"totalDebit": 1.01,
"transDate": "2018-12-31",
"xmlBodies": [
"string"
]
}
digestSignatures
Формат дайджеста
- Формат
- Пример
Наименование поля | Описание поля | Пример |
---|---|---|
amount | Сумма контракта | 1.01 |
bankControlStatementInfo.authPersonName | ФИО ответственного лица | Петров Петр Иванович |
bankControlStatementInfo.authPersonTelfax | Телефон ответственного лица | 79263689379 |
bankControlStatementInfo.creationMode | Режим создания ВБК | ICS_CONTRACT_REGISTRATION |
bankControlStatementInfo.currencyName | Буквенный ISO-код валюты договора | USD |
bankControlStatementInfo.externalId | Идентификатор документа в организации-партнере | 550e8400-e29b-41d4-a716-446655440000 |
contractDate | Дата договора | 2019-05-16 |
contractEndDate | Дата договора | 2019-05-16 |
contractNumber | Номер контракта | 2442 |
contractType | Код вида контракта, заполняемый для экспортных контрактов при представлении сведений по контракту без контракта (Режим создания ВБК) | MULTI_CONTRACT |
currencyCode | Цифровой код валюты договора | 840 |
date | Дата создания документа по местному времени | 2019-05-16 |
TABLES | Значение указывается при наличии UUID-ов больших файлов или данных о нерезидентах | |
Table=BfAttachments | Значение указывается при наличии UUID-ов больших файлов | |
fileId | UUID больших файлов | 31663ef5-7975-4016-b0f3-f1d70a4e9c22 |
# | Разделитель значений UUID-ов больших файлов | |
fileId | UUID больших файлов | 51663ef5-7975-4016-b0f3-f1d70a4e9c22 |
# | Разделитель значений UUID-ов больших файлов | |
Table=NonResidents | ||
countryCode | Цифровой код страны иностранного контрагента | 38 |
countryName | Наименование страны иностранного контрагента | Казахстан |
name | Наименование иностранного контрагента | Kazan |
# | Разделитель нерезидентов |
amount=1.01
bankControlStatementInfo.authPersonName=Иванов Иван Иванович
bankControlStatementInfo.authPersonTelfax=4955005550
bankControlStatementInfo.creationMode=ICS_CONTRACT_REGISTRATION
bankControlStatementInfo.currencyName=USD
bankControlStatementInfo.externalId=16d6a46e-e05f-48eb-ac69-a44980ae64cf
contractDate=2019-09-26
contractEndDate=2019-09-26
contractNumber=123АБВ
contractType=MULTI_CONTRACT
currencyCode=840
date=2019-09-26
TABLES
Table=NonResidents
countryCode=038
countryName=Казахстан
name=Kazan
#
Responses
201 (Created)
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
CurrContract { | |||
amount | number | optional | Сумма платежа, |
balance | number | optional | Сальдо расчетов, |
bankComment | string | optional | Банковский комментарий к статусу документа, |
bankControlStatementInfo | BankControlStatementInfo | required | Информация о ведомости банковского контроля, |
bankStatus | string | optional | Статус документа, |
contractDate | string | required | Дата контракта |
contractEndDate | string | optional | Дата окончания обязательств по контракту, |
contractNumber | string | optional | Номер контракта, |
contractType | string | optional | Код вида контракта, заполняемый для экспортных контрактов при представлении сведений по контракту без контракта, |
currencyCode | string | optional | Код валюты контракта, |
date | string | required | Дата составления документа, |
decNonresToResidentLiabSum | number | optional | Сумма по подтверждающим документам, уменьшающим обязательства нерезидента перед резидентом, |
decResidentToNonresLiabSum | number | optional | Сумма по подтверждающим документам, уменьшающим обязательства резидента перед нерезидентом, |
digestSignatures | array[Signature] | optional | Электронные подписи по дайджесту документа, |
finalTransCurrencyCode | string | optional | Цифровой код страны, |
finalTransCurrencyName | string | optional | Буквенный ISO-код валюты, |
incNonresidLiabilitySum | number | optional | Сумма по подтверждающим документам, увеличивающим обязательства нерезидента, |
incResidentLiabilitySum | number | optional | Сумма по подтверждающим документам, увеличивающим обязательства резидента, |
nonResidents | array[BankControlStatementNonResident] | optional | Информация о нерезидентах, |
number | string | optional | Номер документа, |
totalCredit | number | optional | Сумма денежных средств, поступивших по контракту в пользу резидента (всего зачислено), |
totalDebit | number | optional | Сумма денежных средств, переведенных по контракту в пользу нерезидента (всего списано), |
transDate | string | optional | Дата расчета, |
xmlBodies | array[string] | optional | Список кодированных xml-файлов ВБК |
} | |||
BankControlStatementInfo { | |||
authPersonName | string | optional | ФИО ответственного лица, |
authPersonTelfax | string | optional | Телефон ответственного лица, |
bankCommentAuthor | string | optional | Автор комментария, |
bankDate | string | optional | Дата постановки контракта/договора на учет, |
bfAttachments | array[BfAttachment] | optional | Прикрепленные большие файлы, |
chainId | string | optional | Id цепочки, |
creationMode | string | required | Режим создания ВБК, |
currencyName | string | optional | Код валюты контракта, |
externalId | string | required | Идентификатор документа, который вы присваиваете самостоятельно |
failReasons | array[FailReason] | optional | Причины отказа, |
isActual | boolean | optional | Признак актуальности ВБК |
} | |||
Signature { | |||
base64Encoded | string | required | Значение электронной подписи (ЭП), закодированное в Base64, |
certificateuuid | string | required | Уникальный идентификатор сертификата ключа проверки электронной подписи |
} | |||
BankControlStatementNonResident { | |||
countryCode | string | required | Цифровой код страны, |
countryName | string | required | Наименование страны, |
isAffiliatedPerson | boolean | optional | Признак аффилированного лица, |
name | string | required | Наименование иностранного контрагента |
} | |||
BfAttachment { | |||
fileId | string | optional | Уникальный идентификатор файла, |
fileName | string | optional | Имя файла |
} | |||
FailReason { | |||
docField | string | optional | Поле документа, |
reasonComment | string | optional | Правило заполнения/замечания, |
reasonId | string | optional | Код причины отказа, |
returnComment | string | optional | Комментарий |
} |
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
{
"amount": 1.01,
"balance": 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_CONTRACT_INFORMATION",
"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",
"contractDate": "2018-12-31",
"contractEndDate": "2018-12-31",
"contractNumber": "123АБВ",
"contractType": "MULTI_CONTRACT",
"currencyCode": "840",
"date": "2018-12-31",
"decNonresToResidentLiabSum": 1.01,
"decResidentToNonresLiabSum": 1.01,
"digestSignatures": [
{
"base64Encoded": "HlaeIHXXEcGT1bFxo1NlpAzpr+kJ2IQrcxVdvDTep6xjsmD1FDb+6NIyLT+/T24S0mPfVCU75sieOMt71TBS7w==",
"certificateUuid": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
],
"finalTransCurrencyCode": "643",
"finalTransCurrencyName": "USD",
"incNonresidLiabilitySum": 1.01,
"incResidentLiabilitySum": 1.01,
"nonResidents": [
{
"countryCode": "643",
"countryName": "РОССИЯ",
"isAffiliatedPerson": false,
"name": "Kazan"
}
],
"number": "1",
"totalCredit": 1.01,
"totalDebit": 1.01,
"transDate": "2018-12-31",
"xmlBodies": [
"string"
]
}
400 (Bad request)
Cause | Message | Description |
---|---|---|
DESERIALIZATION_FAULT | Неверный формат запроса | Данные в request указаны в неправильном формате. Атрибуты request, в которых найдены ошибки, указаны в responce в массиве fields с описанием проблемы. Описание типа, формата и regexp атрибутов находится в request ресурса. Скорректируйте заполнение атрибутов и повторите запрос. |
WORKFLOW_FAULT | Документ с такими реквизитами уже существует | В АС Банка также присутствует проверка на дублирование документов по полям. Если поля совпадают с уже существующим в банке документом, то такой документ получает статус "bankStatus": "CHECKERROR", а комментарий "bankComment": "Документ с такими реквизитами уже существует." |
VALIDATION_FAULT | Ошибка валидации | Данные не соответствуют требованиям валидации. Сведения о некорректных атрибутах request содержатся в массивах fieldNames и checks. Подробные требования к атрибутам описаны в request ресурса, включая типы, форматы и регулярные выражения. Необходимо скорректировать заполнение атрибутов и повторить запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
ResourceFault { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
checks | array[Check] | optional | Список проверок, приведших к ошибке, |
fieldNames | array[string] | optional | Названия полей с некорректным значением (только для VALIDATION_FAULT) |
} | |||
Check { | |||
level | string | optional | Уровень результата = ['ERROR', 'WARNING'], |
message | string | optional | Сообщение, |
fields | array[string] | optional | Названия полей (при наличии связи с моделью) |
} |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
{
"cause": "DESERIALIZATION_FAULT",
"referenceId": "4a0e6754-ad22-4d7d-ac82-810afd08b5b2",
"message": "Неверный формат запроса",
"checks": [
{
"level": "ERROR",
"message": "Cannot deserialize instance of `java.util.ArrayList<Signature>` out of START_OBJECT token",
"fields": [
"digestSignatures"
]
}
],
"fieldNames": [
"digestSignatures"
]
}
401 (Unauthorized Error)
Cause | Message | Description |
---|---|---|
UNAUTHORIZED | accessToken not found by value =хххххххх-хххх-хххх-хххх-хххххххххххх-х | Указан просроченный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
Некорректное значение Access Token | Указан некорректный access_token. Используйте refresh_token для обновления access_token и повторите запрос. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAUTHORIZED",
"referenceId": "014ec3a1-3e41-4805-9e22-d07947b012af",
"message": "accessToken not found by value = 3513f959-bbd5-490a-9f9f-67fb7380fae5-2"
}
403 (Forbidden)
Cause | Message | Description |
---|---|---|
ACTION_ACCESS_EXCEPTION | Операция не может быть выполнена: доступ к ресурсу запрещен | Используемый в запросе access_token не имеет разрешения на доступ к нужному сервису Sber API. В ссылке авторизации СберБизнес ID, в параметре scope, не указана операция BANK_CONTROL_STATEMENT . Пользователю потребуется пройти авторизацию заново. Вы получите новые токены access_token и refresh_token. Сделайте повторный запрос с новым access_token. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 403 Forbidden
Content-Type: application/json;charset=UTF-8
{
"cause": "ACTION_ACCESS_EXCEPTION",
"referenceId": "7535c2bb-7706-4b16-9882-d68aedbf2fef",
"message": "Операция не может быть выполнена: доступ к ресурсу запрещен"
}
429 (Too Many Requests)
Cause | Message | Description |
---|---|---|
TOO_MANY_REQUESTS | Превышен лимит запросов. Повторите операцию позже. | Количество запросов к данному методу за ограниченное время превысило допустимое значение. Пользователю необходимо повторить запрос позднее |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice{ | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
json HTTP/1.1 429 Too Many Requests Content-Type: application/json;charset=UTF-8
{ "cause": " TOO_MANY_REQUESTS ", "referenceId": "5650c1e4-5039-4038-8cad-afab64003f61", "message": " Превышен лимит запросов. Повторите операцию позже" }
500 (Internal Server Error)
Cause | Message | Description |
---|---|---|
UNKNOWN_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json;charset=UTF-8
{
"cause": "UNKNOWN_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a65d",
"message": "Внутренняя ошибка сервера"
}
503 (Service Temporarily Unavailable)
Cause | Message | Description |
---|---|---|
UNAVAILABLE_RESOURCE_EXCEPTION | Внутренняя ошибка сервера | Сделайте повторный запрос. Если ошибка повторится, подготовьте логи запроса и направьте в службу Технической поддержки Банка. |
- Модель
- Пример
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
Notice { | |||
cause | string | optional | Причина или основание сообщения, |
referenceId | string | optional | Уникальный идентификатор ошибки (UUID), |
message | string | optional | Сообщение, |
} |
HTTP/1.1 503 Service Temporarily Unavailable
Content-Type: application/json;charset=UTF-8
{
"cause": "UNAVAILABLE_RESOURCE_EXCEPTION",
"referenceId": "9e209109-4b0d-408c-a2fd-e1983c20a67d",
"message": "Внутренняя ошибка сервера"
}