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

Скачивание документов, изображений и видео

Все байты, прикреплённые к заявителю — лицевая и оборотная стороны ID, селфи, видео-проверка живости, PDF-документы компании — доступны через один эндпоинт «реестра» и один эндпоинт «байтов».

Эндпоинт Что возвращает
GET /v1/applicants/{externalUserId}/resources Список метаданных
GET /v1/applicants/{externalUserId}/resources/{resourceId} Сырые байты
GET /v1/applicants/{externalUserId}/uploads/history Перезаписанные загрузки (старые версии)

Сначала — список

curl -X GET 'https://api.compliance.example/v1/applicants/user-12345/resources' \
  -H 'X-Api-Key: pk_live_...' \
  -H 'X-Api-Secret: ...' \
  -H 'X-Environment: production'
{
  "items": [
    {
      "id": "0a1b2c3d4e5f6789abc...db.7fa3c91b88de",
      "enrollmentId": "0a1b2c3d-4e5f-...",
      "kind": "image",
      "slot": "document_front",
      "documentType": "passport",
      "side": "front",
      "mime": "image/jpeg",
      "addedAtUtc": "2026-06-07T10:15:11Z",
      "source": "docapture",
      "active": true
    },
    {
      "id": "0a1b2c3d4e5f6789abc...lv.f0aa1cbb31df",
      "enrollmentId": "0a1b2c3d-4e5f-...",
      "kind": "video",
      "slot": "liveness_video",
      "mime": "video/webm",
      "addedAtUtc": "2026-06-07T10:15:42Z",
      "source": "liveness",
      "active": true
    }
  ],
  "totalItems": 2
}

Дискриминатор kind

image (jpeg/png/heic/webp), pdf (документы компании), video (webm/mp4 для проверки живости). Подсказывает, какой Content-Type вернёт эндпоинт байтов, ещё до запроса.

slot

document_front · document_back · selfie · liveness_video · company_doc · additional.

Параметры фильтрации

  • ?enrollmentId={guid} — только из одной сессии
  • ?kind=image|video|pdf|all (по умолчанию all)
  • ?activeOnly=true|false (по умолчанию true)

Затем — байты

curl -X GET 'https://api.compliance.example/v1/applicants/user-12345/resources/0a1b2c3d4e5f6789abc...db.7fa3c91b88de' \
  -H 'X-Api-Key: pk_live_...' \
  -H 'X-Api-Secret: ...' \
  -H 'X-Environment: production' \
  -o doc-front.jpg

Заголовок Content-Type отражает реальный MIME ресурса — не предполагайте его по URL или слоту. Поддерживается HEAD для проверки размера/MIME без скачивания. Поддерживается Range для видео.

Формат resourceId

{enrollmentIdHex32}.{slotCode}.{hmac16} — непрозрачный. HMAC вычисляется сервером по приватному ключу и проверяется при каждом обращении, поэтому подделанный id возвращает 404. Кросс-продуктовые зонды тоже возвращают 404 (никаких утечек существования).

Перезаписанные загрузки

Когда заявитель повторно загружает в тот же слот (например, переснял неудачное селфи), старая версия остаётся в хранилище со статусом неактивной:

curl -X GET 'https://api.compliance.example/v1/applicants/user-12345/uploads/history' \
  -H 'X-Api-Key: pk_live_...' \
  -H 'X-Api-Secret: ...' \
  -H 'X-Environment: production'

В каждой записи есть resourceId, который можно передать в эндпоинт байтов — резолвер сопоставляет и активные, и исторические загрузки.