Инициализация подписания (v2)
Запускает процесс электронного подписания одного или нескольких платежей: на стороне EDS-сервиса генерируется фактор подтверждения (например, отправка SMS-кода) и возвращается текущее состояние подписания по каждому документу.
| Endpoint | POST /domestic-payment/api/v2/signature/init |
| Content-Type | параметры передаются в query string, тело не передаётся |
| Авторизация | OAuth2 / JWT (Bearer token) |
| Response status | 200 OK |
Поток платежа v2
Шаг 2. После создания платежа. Далее: подписание и отправка в АБС.
Параметры запроса
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
paymentIds | List<Long> | Да | Список идентификаторов платежей для инициализации к подписанию. Передаётся как повторяющийся параметр (?paymentIds=1&paymentIds=2) либо через запятую (?paymentIds=1,2,3) |
Тело запроса отсутствует.
Ответ
| Поле | Тип | Описание |
|---|---|---|
signingInfoList[i].documentId | String | Идентификатор документа (платежа) |
signingInfoList[i].documentType | String | Тип документа |
signingInfoList[i].documentSignStatus | enum (DocumentSignStatus) | Статус инициализации/подписания документа |
signingInfoList[i].initializedAuthFactor | enum (AuthFactorType) | Инициализированный фактор аутентификации (SMS, подпись, биометрия и т.д.) |
signingInfoList[i].signatureRuleSchemaFactors | LinkedHashSet<AuthFactorType> | Набор факторов, требуемых правилом/схемой подписи для документа |
signingInfoList[i].requestId | String | Идентификатор запроса в EDS (для последующей операции sign) |
signingInfoList[i].phoneNumber | String | Маскированный номер телефона, на который отправлен SMS-код (если применимо) |
signingInfoList[i].errorMessage | String | Текст ошибки, если инициализация фактора не удалась |
signingInfoList[i].payload | String | Данные/полезная нагрузка документа |
signingInfoList[i].signLevelComplete | boolean | Признак того, что текущий уровень подписи завершён |
secondsLeft | long | Остаток времени (сек) на ввод фактора подтверждения. -1 — таймер неактуален (SMS не инициализировался) |
Пример запроса
Показать запрос
cURL
curl --location \
'https://api-test.business-t.berekebank.kz/domestic-payment/api/v2/signature/init?paymentIds=1001,1002' \
--header 'Authorization: Bearer <token>'
Пример ответа
Показать ответ
200 OK
{
"signingInfoList": [
{
"documentId": "1001",
"documentType": "PaymentOrder",
"documentSignStatus": "INITIALIZED",
"initializedAuthFactor": "SMS",
"signatureRuleSchemaFactors": ["SMS"],
"requestId": "a1b2c3d4-0000-1111-2222-333344445555",
"phoneNumber": "+7 7** *** ** 89",
"payload": "...",
"signLevelComplete": false
},
{
"documentId": "1002",
"documentType": "PaymentOrder",
"documentSignStatus": "VALIDATION_FAILED",
"initializedAuthFactor": "SMS",
"signatureRuleSchemaFactors": ["SMS"],
"errorMessage": "Не удалось отправить SMS",
"signLevelComplete": false
}
],
"secondsLeft": 120
}
Коды ошибок
| Код | Условие |
|---|---|
400 Bad Request | Невалидный запрос / нарушение констрейнтов |
401 Unauthorized | Отсутствует/невалиден JWT |
Справочники
DocumentSignStatus
| Значение | success | Описание |
|---|---|---|
INITIALIZED | true | Подписание/фактор успешно инициализированы (ожидается ввод кода) |
SIGNED | true | Документ подписан |
SIGNED_NEED_NEXT | true | Подписан текущим уровнем, требуется следующая подпись |
POSTPONED | true | Подписание отложено |
VALIDATION_FAILED | false | Не пройдена валидация (например, ошибка инициализации SMS) |
CURRENT_CUSTOMER_INVALID_CREDENTIALS | false | Неверные учётные данные текущего пользователя |
SIGN_EVENT_NOT_FOUND | false | Событие подписи не найдено |
MISMATCH_SIGN_LEVEL | false | Несоответствие уровня подписи |
CURRENT_CUSTOMER_LEVEL_ALREADY_SIGNED | false | Текущий уровень уже подписан данным пользователем |
AUTH_FACTOR_NOT_FOUND | false | Фактор аутентификации не найден |
RULE_ERROR | false | Ошибка правила подписи |
AuthFactorType
PASSWORD, SMS, SIGNATURE, GENERATOR, PHONE, BIOMETRY, MY_SIGN_PASSWORD, QR. Устаревшие (deprecated): MY_SIGN_SMS, MY_SIGN_OTP.