Перейти к содержанию

Отслеживание статуса верификации

Три эндпоинта, одна модель: запрашиваете один и тот же id заявителя, получаете разный уровень детализации.

Эндпоинт Когда нужен
GET /v1/applicants/{externalUserId}/status Нужен итоговый вердикт
GET /v1/applicants/{externalUserId}/steps Нужна разбивка по шагам («какой шаг упал?»)
GET /v1/applicants/{externalUserId}/review-history Нужна хронология решений и переходов

/steps — разбивка по шагам

Возвращает по одной записи на каждый шаг, требуемый уровнем заявителя. Словарь полностью совпадает с payload вебхука applicantReviewed — слой перевода не нужен.

curl -X GET 'https://api.compliance.example/v1/applicants/user-12345/steps' \
  -H 'X-Api-Key: pk_live_...' \
  -H 'X-Api-Secret: ...' \
  -H 'X-Environment: production'
{
  "externalUserId": "user-12345",
  "levelId": "a1b2c3d4-...",
  "levelName": "KYC_01",
  "steps": [
    {
      "kind": "identity_doc",
      "optional": false,
      "reviewAnswer": "GREEN",
      "reviewStatus": "completed",
      "reviewRejectType": null,
      "lastUpdatedAtUtc": "2026-06-07T10:31:22Z"
    },
    {
      "kind": "questionnaire",
      "optional": false,
      "reviewAnswer": null,
      "reviewStatus": "in_review",
      "reviewRejectType": null,
      "lastUpdatedAtUtc": "2026-06-07T10:30:15Z"
    }
  ]
}

kind шага

identity_doc · selfie · liveness · poa · questionnaire · company_docs · aml · adverse_media.

Словарь

  • reviewAnswerGREEN (одобрено) · RED (отклонено) · null (вердикта пока нет)
  • reviewStatuspending · submitted · in_review · completed · awaitingOperatorReview · expired
  • reviewRejectTypeFINAL · RETRY · EXPIRED (выставляется при reviewAnswer=RED)
  • rejectLabels — метки с причинами отказа (см. Вебхуки)

Это идентично тому, что присылает вебхук applicantReviewed — обработчик может использовать тот же enum.

/review-history — хронологический аудит

Возвращает до 200 событий по заявителю. События внутренней администрации (логин админа, ротация ключа, правки уровней) отфильтрованы — поверхность безопасна для партнёра.

curl -X GET 'https://api.compliance.example/v1/applicants/user-12345/review-history?limit=10' \
  -H 'X-Api-Key: pk_live_...' \
  -H 'X-Api-Secret: ...' \
  -H 'X-Environment: production'
{
  "items": [
    { "atUtc": "2026-06-07T10:31:22Z", "eventType": "applicant.verified", "actorType": "system" },
    { "atUtc": "2026-06-07T10:30:00Z", "eventType": "enrollment.completed", "actorType": "sdk" },
    { "atUtc": "2026-06-07T10:15:11Z", "eventType": "enrollment.created", "actorType": "partner" }
  ],
  "totalItems": 3
}

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

Параметр Эффект
since ISO 8601 — только события начиная с этого момента
limit 1..200 (по умолчанию 50)
eventType Фильтр по имени события (400, если вне партнёрского списка)

Список событий, видимых партнёру

applicant.{created,updated,reset,blocklisted,blocklist_removed,sent_to_review,email_status_sent,monitoring_enabled,monitoring_disabled,verified,approved,rejected,deactivated,activated}, enrollment.{created,submitted,completed,expired}, aml.run, adverse_media.run, managed_compliance.decided. Всё остальное молча выпадает из ответа.