Перейти к основному содержимому
Версия: 2026.06.1

Подписание и отправка в АБС (v2)

Завершающий шаг электронного подписания: проверка переданного фактора подтверждения (SMS-код / ЭЦП / др.) в EDS-сервисе, простановка подписи на платежах, перевод их по статусной модели и — при необходимости — отправка в АБС.

EndpointPOST /domestic-payment/api/v2/signature/sign
Content-Typeapplication/json
АвторизацияOAuth2 / JWT (Bearer token)
Response status200 OK
Поток платежа v2

Шаг 3 (финальный). После инициализации подписания. Проверить результат — получение платежа.

Параметры запроса

ПараметрТипОбяз.Описание
needToSendToAbsbooleanНет (default true)Если true — полностью подписанные платежи асинхронно отправляются в АБС (при наличии прав accessService.canSendToAbs()). Если false — платёж подписывается, но в АБС не отправляется

Тело запроса

ПолеТипОбяз.Описание
authFactorTypeenum (AuthFactorType)ДаТип фактора аутентификации, которым выполняется подпись
codeStringУсловноКод подтверждения (SMS-код / OTP). Сохраняется в state-machine как SIGN_VALUE_CODE
details[i].documentIdLongДаИдентификатор платежа, который подписывается
details[i].requestIdStringУсловноИдентификатор запроса в EDS, полученный на шаге init
details[i].certificateSNStringУсловноСерийный номер сертификата ЭЦП (для подписи сертификатом). Сохраняется как CERTIFICATE_CN
details[i].signatureStringУсловноЗначение подписи (подписанные данные) — для подписи через ЭЦП

Ответ

ПолеТипОписание
signingInfoList[i].documentIdStringИдентификатор документа (платежа)
signingInfoList[i].documentTypeStringТип документа
signingInfoList[i].documentSignStatusenum (DocumentSignStatus)Статус подписания документа
signingInfoList[i].initializedAuthFactorenum (AuthFactorType)Использованный фактор аутентификации
signingInfoList[i].signatureRuleSchemaFactorsLinkedHashSet<AuthFactorType>Набор факторов, требуемых правилом/схемой подписи
signingInfoList[i].requestIdStringИдентификатор запроса в EDS
signingInfoList[i].phoneNumberStringМаскированный номер телефона (если применимо)
signingInfoList[i].errorMessageStringТекст ошибки, если подписание не удалось
signingInfoList[i].payloadStringДанные/полезная нагрузка документа
signingInfoList[i].signLevelCompletebooleanПризнак завершения текущего уровня подписи

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

Показать запрос (SMS)
cURL
curl --location \
'https://api-test.business-t.berekebank.kz/domestic-payment/api/v2/signature/sign?needToSendToAbs=true' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"authFactorType": "SMS",
"code": "123456",
"details": [
{ "documentId": 1001, "requestId": "a1b2c3d4-0000-1111-2222-333344445555" },
{ "documentId": 1002, "requestId": "b2c3d4e5-1111-2222-3333-444455556666" }
]
}'
Показать запрос (подпись сертификатом ЭЦП)
{
"authFactorType": "Signature",
"details": [
{
"documentId": 2001,
"requestId": "c3d4e5f6-2222-3333-4444-555566667777",
"certificateSN": "00112233445566778899AABBCCDDEEFF00112233",
"signature": "<base64_signature>"
}
]
}

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

Показать ответ
200 OK
{
"signingInfoList": [
{
"documentId": "1001",
"documentType": "PaymentOrder",
"documentSignStatus": "SIGNED",
"initializedAuthFactor": "SMS",
"signLevelComplete": true
},
{
"documentId": "1002",
"documentType": "PaymentOrder",
"documentSignStatus": "SIGNED_NEED_NEXT",
"initializedAuthFactor": "SMS",
"signLevelComplete": false
}
]
}

Коды ошибок

КодУсловие
401 UnauthorizedОтсутствует/невалиден JWT
403 ForbiddenНет доступа (нет привилегии)
409 ConflictНет привилегии или прав подписи: payments cannot be signed, check if you have sufficient access rights

Логика статусной модели

СтатусКатегорияДействие
SIGNEDfullySignedIdsПодпись завершена → событие SIGN (IS_SIGN_COMPLETED=true), опц. отправка в АБС
SIGNED_NEED_NEXTpartiallySignedIdsПодписан текущий уровень, нужен следующий → событие SIGN (IS_SIGN_COMPLETED=false)
прочиеНе переводятся; результат отражается в ответе
КейсПоведение
Нет прав хотя бы на один платёжSignatureValidationException
Не найдено ни одного валидного платежаsigningInfoList = []
Исключение при обращении к EDSsigningInfoList = []; статусы платежей не меняются
Многоуровневая подписьПри SIGNED_NEED_NEXT платёж ждёт следующего уровня, в АБС не отправляется
needToSendToAbs=falseПолностью подписанный платёж не отправляется в АБС
Нет прав canSendToAbs()Даже при needToSendToAbs=true отправка в АБС не выполняется

Справочники

DocumentSignStatus

ЗначениеsuccessОписание
SIGNEDtrueДокумент полностью подписан
SIGNED_NEED_NEXTtrueПодписан текущим уровнем, требуется следующая подпись
INITIALIZEDtrueПодписание инициализировано
POSTPONEDtrueПодписание отложено
VALIDATION_FAILEDfalseНе пройдена валидация (например, неверный код)
CURRENT_CUSTOMER_INVALID_CREDENTIALSfalseНеверные учётные данные пользователя
SIGN_EVENT_NOT_FOUNDfalseСобытие подписи не найдено
MISMATCH_SIGN_LEVELfalseНесоответствие уровня подписи
CURRENT_CUSTOMER_LEVEL_ALREADY_SIGNEDfalseТекущий уровень уже подписан данным пользователем
AUTH_FACTOR_NOT_FOUNDfalseФактор аутентификации не найден
RULE_ERRORfalseОшибка правила подписи

AuthFactorType

Password, SMS, Signature, Generator, Phone, MySignSMS, MySignOTP, MySignPassword, Device, Biometry, QR.