ym88659208ym87991671
Сервис передачи в банк документа для отправки по СПФС | Документация для разработчиков

Сервис передачи в банк документа для отправки по СПФС

Обновлено 20 декабря 2023

C помощью данного API Клиент может настроить в ERP передачу в Банк документа для последующей отправки по СПФС.

Описание бизнес-процесса:

  1. Клиент в своей ERP системе формирует конверт свободного формата (далее - SPFS_ENV) в соответствии со спецификацией канала.

  2. Клиент подписывает конверт SPFS_ENV открепленной УКЭП в формате CMS.

    2.1. для подписания рассчитывается хэш всех тегов конверта SPFS_ENV без пробелов между тегами и переносов строк, кроме DigitalSign. Подпись вкладывается в тег DigitalSign.

  3. ERP Клиента вызывает API для аутентификации и авторизации.

  4. Банк проводит аутентификацию и авторизацию. Генерирует access token.

  5. Банк возвращает access token Клиенту.

  6. ERP Клиента вызывает API для передачи SPFS_ENV.

  7. Банк проводит форматно-логические контроли.

  8. В случае успешной валидации сообщения и проверки access token Банк принимает запрос в обработку.

Проверки Центра обмена сообщениями СПФС Банка России, которые необходимо учесть при формировании сообщений для отправки по СПФС:

  1. Регламентные контроли каждого финансового сообщения SWIFT в составе конверта: структурный, логический, специальный структурный контроль сообщений формата SWIFT.

  2. В рамках структурного контроля для каждого сообщения формата SWIFT MT осуществляется контроль структуры блоков 1 (блок основного заголовка), 2 (блок заголовка приложения), 3 (блок заголовка пользователя) и 4 (текстовый блок) на соответствие требованиям стандарта SWIFT MT, в рамках которого проводится проверка синтаксиса, семантики (соотношения между полями) и использования кодовых слов. Другие блоки не проверяются на соответствие требованиям стандарта SWIFT MT.

  3. При передаче документа в формате SWIFT, если предполагается подписание документа электронной подписью, то Блоки 1 и 2 не подписывать, т.к. при передаче по СПФС (по аналогии со SWIFT) документ преобразуется из исходящего во входящий. Подписание всего сообщения приведет к неуспешной проверке электронной подписи получателем финансового сообщения.

  4. Не допускается шифрование и архивирование с использованием кодов доступа содержимого ProprietaryDocument сообщений SWIFT MT/FREEFORMAT. Такой документ будет отклонен СПФС.

Описание атрибутов запроса:

ПараметрыОписание
Authorization (header)Получение токена авторизации в методе Сервис получения токена авторизации
RqUID (header)Уникальный идентификатор сообщения, сгенерированный клиентом в формате [0-9A-Fa-f]{32}. Чтобы гарантировать уникальность, требуется использовать стандартные библиотеки и классы генерации UUID (https://ru.wikipedia.org/wiki/UUID),убрав из результата символ разделителя «-». Если заголовок отсутствует в запросе, идентификатор будет сгенерирован автоматически и передан клиенту в аналогичном заголовке ответа
text (body)Для передачи бизнес данных запроса предусмотрен формат JSON
DocumentFreeFormat{
description:конверт SPFS_ENV
Sender{
description:Отправитель сообщения
UIS*string
maxLength: 10
pattern: ^[0-9]{0,10}$
example: 4525171000
УИС отправителя
}
Receiver*{
description:Получатель сообщения
UIS*string
maxLength: 10
pattern: ^[0-9]{0,10}$
example: 4525225000
УИС получателя
}
DocFormat*{
description:Указывается формат документа
oneOf ->{
description:Заполняется при передаче финансового сообщения
SWIFT_MT{
description:Заполняется при передаче финансового сообщения
ReceiverSWIFT*string
maxLength: 11
pattern: ^[A-Z0-9]{0,11}$
example: SABRRUMMXXX
SWIFT BIC получателя
SWIFTType*string
pattern: ^[0-9A-Z]{5}$
example: MT103
Тип сообщения SWIFT
}
}{
description:Заполняется при передаче сообщения в формате ISO20022
ISO20022{
description:Заполняется при передаче сообщения в формате ISO20022
ISOType*string
maxLength: 15
pattern: ^[a-z]{4}(.)[0-9]{3}(.)[0-9]{3}(.)[0-9]{2}$
example: pain.001.001.09
тип ISO
}
}
FREE_FORMAT string
example: FREE_FORMAT
Заполняется при передачи сообщения в формате пользователя
Enum:
[ FREE_FORMAT ]
}
DocType*string
example: PAYMENT-ORDER
Указывается тип документа
Enum:
[ PAYMENT-ORDER, PAYROLL, CURRENCY-TRANSFER, FOREIGN-EXCHANGE, EXCHANGE-CONTROLS ]
ProprietaryDocument*string
pattern: ^[+\/=0-9a-zA-Z]{0,990000}$
example: ezE6RjAxVEVTVFJVTU1YWFhYMTAwMDAwMDE3N317MjpJNTE2U0FCUlJVTU1YWFhYTn17NDoNCjoyMDoxMjEwMjI4MjVPRloxNDIzDQo6MjM6MTIxMDIyODI1T0ZaMTQyDQotfQ==
Документ для отправки в кодировке base64
DigitalSign*string
pattern: ^[+\/=0-9a-zA-Z]{0,7000}$
example: MIIKwwYJKoZIhvcNAQcCoIIKtDCCCrACAQExDjAMBggqhQMHAQECAgUAMAsGCSqGS
}

Статусы http-запросов

Данные статусы распространяются на все типы запросов и свидетельствуют об успешности выполнения метода.

КодСтатусПричина возникновения
200OKOK
400Bad requestBad request
401UnauthorizedUnauthorized
403ForbiddenContact your client manager
405Method Not AllowedMethod Not Allowed
409ConflictRquid is duplicate
429Too Many RequestsToo Many Requests
500Internal Server ErrorInternal Server Error
503Service UnavailableTry again later
504Gateway TimeoutGateway Timeout

Описание примеров сообщений

Вызов сервиса передачи в банк документа для отправки по СПФС:

Тип запроса POST

    POST https://mc.api.sberbank.ru:443/prod/sberconnect/sbspfs/v1/spfs/init

Connection: keep-alive
Content-Type: application/json;charset=utf-8
RqUID: d5dd9b6932f1f3185bfa982d6f8b88bb
Authorization: Bearer 21de98b5-60ec-4d82-a0fd-149e79112fdb
Content-Length: 3417
Host: mc.api.sberbank.ru:443
User-Agent: Apache-HttpClient/4.5.10 (Java/1.8.0_321)


POST data:
{
"Receiver": {
"UIS": "4525225000"
},
"DocFormat": {
"SWIFT_MT": {
"ReceiverSWIFT": "SABRRUMMXXX",
"SWIFTType": "MT516"
}
},
"DocType": "PAYMENT-ORDER",
"ProprietaryDocument": "ezE6RjAxVEVTVFJVTU1YWFhYMTAwMDAwMDE3N317MjpJNTE2U0FCUlJVTU1YWFhYTn17NDoNCjoyMDoxMjEwMjI4MjVPRloxNDIzDQo6MjM6MTIxMDIyODI1T0ZaMTQyDQo6MzFQOjIyMDkyMA0KOjM1QjpJU0lOIFJVMDAwQTBKUzAwMA0KOjM1QTpCT04yNTI4MjEsDQo6MzFMOjIyMDkyMQ0KOjMxWDoyMjA5MjANCjozMDoyMjA5MjENCjozM1Q6UlVCMTAwLDk5MjUxNjQ4DQo6MzdKOjAsMDMNCjo3MjpTdGFuZGFyZCBDYXNoIGFuZCBTZWN1cml0aWVzDQpTU0kgYWNjb3JkaW5nIHRvIEdBIE4xMi8yMQ0KZGF0ZWQgMTYvMTIvMjAyMQ0KLX0=",
"DigitalSign": "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"
}

Ответ сервиса:

HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Thu, 13 Oct 2022 13:26:03 GMT
Content-Length: 0
Connection: keep-alive
X-Rate-Limit-Limit: 20
X-Rate-Limit-Remaining: 19
X-Rate-Limit-Reset: 1665667563159
Expires: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
RqUID: d5dd9b6932f1f3185bfa982d6f8b88bb
X-XSS-Protection: 1; mode=block
Pragma: no-cache
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Accept-Ranges: bytes
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.