Web (iframe / WebSDK)

Интеграция модуля идентификации в веб-приложение может быть выполнена двумя способами:

Когда использовать

Используйте web-интеграцию, если пользователь проходит KYC-сценарий на сайте или в веб-приложении клиента. iframe подходит для быстрого встраивания готового модуля, WebSDK — когда нужно больше контроля над поведением и интеграцией с фронтендом.

  • iframe — встраивание модуля через iframe
  • WebSDK — интеграция через JavaScript SDK

iframe интеграция

Базовое использование

Модуль идентификации можно встроить в ваше веб-приложение через iframe:

<iframe 
  src="https://rim.idscan.mts.ru/l/{identificationUrl}" 
  width="100%" 
  height="600px"
  frameborder="0">
</iframe>

Где {identificationUrl} — URL, полученный при создании заявки через API.

PostMessage интерфейс

При использовании iframe, по завершению сценария сбора данных заявителя на фронте придет PostMessage:

{
  app: 'rim',
  method: 'flowFinished',
  context: 'biometrics'
}

Параметры PostMessage

Атрибут Описание
app Источник сообщения. Всегда принимает значение “rim”
method Результат работы iframe. На данном этапе принимает значение flowFinished, сообщающее о прохождении этапа сбора данных
context Подробности о результате работы. Может принимать одно из значений в зависимости от выбранного способа идентификации:
biometrics — получение данных через распознавание
mobileid — получение данных через Mobile ID
manual — ручной ввод данных

Пример обработки PostMessage

window.addEventListener('message', function(event) {
  // Проверяем источник сообщения
  if (event.origin !== 'https://rim.idscan.mts.ru') {
    return;
  }

  const { app, method, context } = event.data;

  if (app === 'rim' && method === 'flowFinished') {
    console.log('Идентификация завершена:', context);

    // Получаем результаты через API
    fetchIdentificationResults(identificationId);
  }
});

Подробнее см. API: Callback / PostMessage.

WebSDK интеграция

Подключение WebSDK

<script src="https://rim.idscan.mts.ru/sdk/web-sdk.js"></script>

Инициализация

const sdk = new MTSKYCWebSDK({
  identificationUrl: 'https://rim.idscan.mts.ru/l/{identificationUrl}',
  container: document.getElementById('kyc-container'),
  onSuccess: function(result) {
    console.log('Идентификация успешна:', result);
  },
  onError: function(error) {
    console.error('Ошибка идентификации:', error);
  }
});

// Запуск процесса идентификации
sdk.start();

Параметры конфигурации

При создании заявки через API можно настроить параметры для WebSDK:

  • linkLifetimeInMinutes — время жизни ссылки (1..195 минут, по умолчанию 195)
  • redirectUrl — URL для перенаправления после завершения идентификации
  • themeUI — тема оформления (light/dark)

Кастомизация

WebSDK поддерживает кастомизацию интерфейса через параметры конфигурации:

  • Визуальные параметры (цвета, шрифты, изображения)
  • Параметры логики приложения
  • Переводы текстов (i18n)

Подробнее см. раздел Кастомизация интерфейса.

Безопасность

  • Используйте HTTPS для всех запросов
  • Проверяйте origin в PostMessage событиях
  • Валидируйте данные, полученные от модуля
  • Не передавайте токены доступа на фронтенд

Пример полной интеграции

<!DOCTYPE html>
<html>
<head>
  <title>KYC Integration</title>
</head>
<body>
  <div id="kyc-container"></div>

  <script>
    // Получаем identificationUrl после создания заявки
    const identificationUrl = 'YOUR_IDENTIFICATION_URL';

    // Обработка PostMessage
    window.addEventListener('message', function(event) {
      if (event.origin !== 'https://rim.idscan.mts.ru') {
        return;
      }

      const { app, method, context } = event.data;

      if (app === 'rim' && method === 'flowFinished') {
        alert('Идентификация завершена: ' + context);
        // Получаем результаты через API
      }
    });

    // Создание iframe
    const iframe = document.createElement('iframe');
    iframe.src = `https://rim.idscan.mts.ru/l/${identificationUrl}`;
    iframe.width = '100%';
    iframe.height = '600px';
    iframe.frameBorder = '0';
    document.getElementById('kyc-container').appendChild(iframe);
  </script>
</body>
</html>