Callback

Колбэк предназначен для оповещения о переходе запроса идентификации в конечный статус. В API Reference callback описан вместе с PostMessage, потому что оба механизма помогают понять, что пользователь завершил сценарий сбора данных.

Настройка колбэка

Для работы с колбэком требуется совершить следующие подготовительные действия:

  1. Передать менеджеру МТС KYC IP-адрес и порт, на который будет совершаться колбэк
  2. Подготовить со своей стороны сервис, принимающий колбэк
  3. Убедиться, что endpoint доступен с сетевого контура МТС

Формат колбэка

Колбэк отправляется в формате JSON:

{
  "externalId": "string",
  "id": "string",
  "identificationStatus": "string"
}

Параметры колбэка

Атрибут Тип Описание Размер Обязательный
externalId string Идентификатор заявителя 0..255 Нет
id* string Идентификатор запроса 1..255 Да
identificationStatus* string Статус запроса 0..255 Да

Обработка колбэка

Рекомендации

  1. Проверяйте подпись колбэка (если используется)
  2. Обрабатывайте колбэк идемпотентно — один и тот же колбэк может прийти несколько раз
  3. Сохраняйте логи всех входящих колбэков для отладки

Если колбэк не пришёл

В случае, если колбэк не приходит длительное время (более 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 МТС)
  • Валидируйте данные колбэка перед обработкой
  • Храните логи колбэков для аудита