Callback
Колбэк предназначен для оповещения о переходе запроса идентификации в конечный статус. В API Reference callback описан вместе с PostMessage, потому что оба механизма помогают понять, что пользователь завершил сценарий сбора данных.
Настройка колбэка
Для работы с колбэком требуется совершить следующие подготовительные действия:
- Передать менеджеру МТС KYC IP-адрес и порт, на который будет совершаться колбэк
- Подготовить со своей стороны сервис, принимающий колбэк
- Убедиться, что endpoint доступен с сетевого контура МТС
Формат колбэка
Колбэк отправляется в формате JSON:
{
"externalId": "string",
"id": "string",
"identificationStatus": "string"
}
Параметры колбэка
| Атрибут | Тип | Описание | Размер | Обязательный |
|---|---|---|---|---|
| externalId | string | Идентификатор заявителя | 0..255 | Нет |
| id* | string | Идентификатор запроса | 1..255 | Да |
| identificationStatus* | string | Статус запроса | 0..255 | Да |
Обработка колбэка
Рекомендации
- Проверяйте подпись колбэка (если используется)
- Обрабатывайте колбэк идемпотентно — один и тот же колбэк может прийти несколько раз
- Сохраняйте логи всех входящих колбэков для отладки
Если колбэк не пришёл
В случае, если колбэк не приходит длительное время (более 400 минут):
- Заберите данные по идентификатору запроса методом Получить заявку:
GET /api/v2/applicants/{externalId}/identifications/{requestGuid} - Не дожидайтесь колбэка — он может не прийти в случае обрыва сетевой связности и прочих технических неполадок
Статусы в колбэке
Колбэк отправляется при переходе заявки в один из конечных статусов:
- identificationSucceeded — заявка прошла идентификацию
- identificationFailed — заявка не прошла идентификацию
- systemError — произошла системная ошибка
- identificationManuallyAccepted — заявка одобрена вручную
- identificationManuallyRejected — заявка отклонена вручную
Пример обработки колбэка
// Пример обработки колбэка на Node.js
app.post('/kyc-callback', (req, res) => {
const { externalId, id, identificationStatus } = req.body;
// Логируем получение колбэка
console.log('Received callback:', { externalId, id, identificationStatus });
// Проверяем статус
if (identificationStatus === 'identificationSucceeded') {
// Заявка успешно прошла идентификацию
// Получаем полные данные через API
fetchIdentificationData(externalId, id);
} else if (identificationStatus === 'identificationFailed') {
// Заявка не прошла идентификацию
handleFailedIdentification(externalId, id);
}
// Отвечаем 200 OK
res.status(200).send('OK');
});
Безопасность
- Используйте HTTPS для приёма колбэков
- Проверяйте IP-адреса отправителей (белый список IP МТС)
- Валидируйте данные колбэка перед обработкой
- Храните логи колбэков для аудита