Подпись и подтверждение документа по бизнес-картам
Запрос позволяет подписывать документы по бизнес-картам. Поддерживаются следующие типы документов:
Заявление на перевод с бизнес-карты
Для подписания необходимо отправить POST-запрос /fintech/api/v2/corporate-cards/sign-and-approve с токеном доступа (access_token) пользователя в параметре Authorization заголовка и уникальным идентификатором заявки (externalId) на перевод, который был сгенерирован Клиентом на предыдущем шаге для запроса /fintech/api/v2/сorporate-cards/transfer/commission, и данными ЭП отправителя перевода (digestSignatures) в теле запроса.
Укажите в параметре docType тип перевода: TRANSFER для обычного перевода или SBP_TRANSFER для СБП перевода. Для подписи необходимо сформировать файл с дайджестом. Дайджест для подписания необходимо формировать строго в соответствии с примером. В параметре scope ссылки авторизации пользователя должен быть указан сервис BUSINESS_CARDS_TRANSFER для получения доступа к этому запросу.
Заявка на установку общих лимитов по бизнес-карте
Для подписания заявки на установку общих лимитов используется тот же эндпоинт. Необходимо отправить POST-запрос с токеном доступа (access_token) пользователя в параметре Authorization заголовка и уникальным идентификатором заявки (externalId) на лимиты, который был получен при создании черновика через запрос /fintech/api/v2/corporate-cards/limits/create-or-update, и данными ЭП отправителя (digestSignatures) в теле запроса.
Укажите в параметре docType значение LIMITS. Для подписи необходимо сформировать файл с дайджестом в соответствии с полями заявки на лимиты. В параметре scope ссылки авторизации пользователя должен быть указан сервис CORPORATE_CARDS для получения доступа к этому запросу.
В ответе вы можете получить следующие статусы заявки:
IN_PROGRESSЗаявка на подтверждении или отправлена на исполнение. Проверьте статус перевода позднееPROCESSINGЗаявка в неопределенном статусе. Проверьте статус перевода позднееENDПеревод выполнен успешно. Перевод исполнен, дополнительных действий не требуетсяERROR_EXECUTIONОшибка на этапе исполнения заявки. Сформируйте новую заявку на перевод.
В песочнице при подписании документов проверяется, что base64Encoded совпадает с хешем от известного дайджеста.
Как сформировать правильную подпись:
Чтобы подписать документ, нужно:
- Передать документ на рассмотрение через
/v2/corporate-cards/transfer/commission - Когда вернется ответ с
receiverInfo, собрать из него строку дайджеста:- Каждое поле записывается как
имя_поля=значение - Поля разделяются переносом строки
\n - Последний перенос строки удаляется
- Каждое поле записывается как
- Вычислить SHA-256 хеш от этой строки
- Перевести хеш в формат Base64
- Указать полученное значение в поле
base64Encoded
Что можно подать на подпись:
docType=TRANSFER— заявление на переводdocType=SBP_TRANSFER— СБП переводdocType=LIMITS— заявка на лимиты
Какие сертификаты можно использовать:
bb014b5d-8159-40be-97c1-eafeed4a8c3d— сертификат ЕИОd5d4f811-f4d4-4205-a70f-58f772eeab72— первая подпись4f29c8ef-b55d-43c7-a321-f2b1303a29cd— вторая подпись
Что будет, если передать неправильные данные:
| Ошибка | Что случилось | HTTP | Код ошибки |
|---|---|---|---|
Некорректный externalId | Передан не UUID | 400 | 428-001 |
Неверный docType | Указан не TRANSFER, SBP_TRANSFER или LIMITS | 400 | 428-001 |
| Пустая подпись | digestSignatures не содержит ни одного элемента | 400 | 428-001 |
| Много подписей | В массиве больше одного элемента | 400 | 428-001 |
| Неверный сертификат | certificateUuid не совпадает с допустимым | 400 | 428-095 |
| Неверный дайджест | base64Encoded не совпадает с ожидаемым значением | 400 | 428-117 |