RealIQДанные · Риски · Решения
← API RealIQ

POST /api/v1/checks

Проверка продавца, объекта или продавец + объект

Основной метод запускает проверку продавца, объекта или комплексную проверку сделки. Проверка выполняется асинхронно: API сразу возвращает check_id, а результат забирается опросом статуса или событием интеграции.

Кратко для ИИ

Основной метод запускает проверку продавца, объекта или комплексную проверку сделки. Проверка выполняется асинхронно: API сразу возвращает check_id, а результат забирается опросом статуса или событием интеграции.

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

CRM создаёт проверку из карточки клиента, объекта или сделки и показывает пользователю статус до готовности отчёта.

Карта методов

Связанные методы

Эта страница описывает группу связанных методов. Для точной схемы параметров используйте Swagger, для продуктовой логики — блоки ниже.

POST/api/v1/checks

Создать проверку продавца, объекта или комплексную проверку.

GET/api/v1/checks/{check_id}

Забрать статус, результат, PDF и доказательный блок конкретной проверки.

GET/api/v1/checks

Получить список проверок с фильтрами status/type/limit/offset.

POST/api/v1/checks/quote

Предварительно рассчитать стоимость.

POST/api/v1/checks/bulk

Создать пакет независимых проверок одним запросом.

Сценарий

Как проходит сценарий

Шаг 1

Предрасчёт

Опционально проверьте цену и balance_sufficient.

Шаг 2

Создание

Создайте проверку через POST /checks и сохраните check_id.

Шаг 3

Ожидание

Используйте GET /checks/{check_id} или событие check.completed.

Шаг 4

Результат

При report_ready/partial заберите result, pdf_url, report_url и доказательный блок.

Шаг 5

Проверка следа

Для цифрового следа используйте verify_url или GET /verify/{sha256}.

Обязательные поля

ПолеОбяз.Описание
typeДаТип проверки: продавец, объект или комплексная проверка.
input_data.sellerНетФИО, дата рождения, регион, паспорт/ИНН/СНИЛС при наличии.
input_data.objectНетКадастровый номер, адрес, тип объекта и региональные признаки.
sandbox_statusНетТолько для тестового режима: processing, report_ready, partial или failed.

Пример curl

curl -X POST https://api.realiq.ru/api/v1/checks \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: riq_live_xxx" \
  -H "Idempotency-Key: crm-check-1001" \
  -d '{"type":"full","input_data":{"seller":{"last_name":"Иванов","first_name":"Иван"},"object":{"cadastral_number":"78:40:0008480:3996"}}}'

JSON-запрос

Пример JSON-запроса

Для GET-методов показано JSON-представление URL, query-параметров и заголовков. Для загрузки файла показана структура form-data.

{
  "type": "full",
  "input_data": {
    "seller": {
      "last_name": "Иванов",
      "first_name": "Иван",
      "middle_name": "Иванович",
      "birth_date": "1980-01-01",
      "region": "Москва"
    },
    "object": {
      "cadastral_number": "78:40:0008480:3996",
      "object_type": "apartment"
    }
  },
  "legal_opinion_enabled": true
}

JSON-ответ

Пример успешного JSON-ответа

Пример отражает структуру реального ответа API. Значения ID, SHA и ссылок сокращены или заменены демонстрационными.

{
  "check_id": "b9f6f2f0-b8c1-4f1c-bb8f-3cf3a9dc3b5a",
  "status": "processing",
  "type": "full",
  "mode": "live",
  "cost": 650,
  "price_amount": 650,
  "balance_remaining": 12410,
  "request_id": "req_1780000000_abcd"
}

Полный JSON-ответ

Полный пример ответа

Развёрнутый пример показывает, какие блоки обычно получает интегратор. Значения ID, SHA, ссылок и персональных данных демонстрационные.

{
  "check_id": "b9f6f2f0-b8c1-4f1c-bb8f-3cf3a9dc3b5a",
  "status": "report_ready",
  "type": "full",
  "created_at": "2026-06-28T12:00:00Z",
  "completed_at": "2026-06-28T12:01:18Z",
  "result": {
    "risk_scoring": {
      "score": 18,
      "level": "low",
      "label": "Низкий риск",
      "conclusion": "Критичных факторов по подключённым источникам не выявлено. Перед сделкой проверьте актуальную выписку ЕГРН и документы-основания.",
      "factors": [
        {
          "code": "fssp_clear",
          "title": "ФССП",
          "status": "ok",
          "impact": 0
        },
        {
          "code": "kad_cases_found",
          "title": "КАД Арбитр",
          "status": "attention",
          "impact": 6
        }
      ]
    },
    "seller": {
      "full_name": "Иванов Иван Иванович",
      "birth_date": "1980-01-01",
      "inn": "770000000000",
      "snils": "123-456-789 00"
    },
    "object": {
      "cadastral_number": "78:40:0008480:3996",
      "object_type": "apartment",
      "address": "Санкт-Петербург, примерный адрес"
    },
    "checklist": [
      {
        "source_code": "fssp",
        "source_name": "ФССП",
        "status": "ok",
        "summary": "Исполнительные производства не найдены.",
        "records_count": 0,
        "datestamp": "2026-06-28",
        "normalized_result_sha256": "0f4c2b...9a21"
      },
      {
        "source_code": "kad_arbitr",
        "source_name": "КАД Арбитр",
        "status": "found",
        "summary": "Найдены арбитражные дела, требуется оценка роли участника.",
        "records_count": 2,
        "datestamp": "2026-06-28",
        "normalized_result_sha256": "8c13a9...77df"
      }
    ],
    "source_coverage": {
      "answered": 24,
      "source_unavailable": 0,
      "manual_review_required": 0
    }
  },
  "risk_score": 18,
  "pdf_url": "https://realiq.ru/reports/b9f6f2f0.pdf",
  "report_url": "https://realiq.ru/check-status/b9f6f2f0-b8c1-4f1c-bb8f-3cf3a9dc3b5a",
  "evidence": {
    "check_evidence_root_hash": "9f4a6c...0d71",
    "pdf_sha256": "ab12c4...9f00",
    "data_snapshot_sha256": "73ce44...aa91",
    "evidence_manifest_sha256": "64de10...81ac",
    "evidence_storage_status": "stored",
    "tsa": {
      "status": "not_configured",
      "provider": null,
      "token_sha256": null,
      "completed_at": null
    },
    "datestamp": {
      "value": "2026-06-28T12:01:18Z",
      "provider": "RealIQ",
      "created_at": "2026-06-28T12:01:18Z"
    },
    "verify_url": "https://realiq.ru/verify",
    "sources": [
      {
        "source_code": "fssp",
        "source_name": "ФССП",
        "status": "ok",
        "records_count": 0,
        "datestamp": "2026-06-28",
        "normalized_result_sha256": "0f4c2b...9a21"
      },
      {
        "source_code": "kad_arbitr",
        "source_name": "КАД Арбитр",
        "status": "found",
        "records_count": 2,
        "datestamp": "2026-06-28",
        "normalized_result_sha256": "8c13a9...77df"
      }
    ]
  },
  "request_id": "req_1780000000_abcd"
}

Поля ответа

Как читать поля ответа

ПолеЧто означает
check_idID проверки. По нему делается опрос статуса GET /api/v1/checks/{check_id}.
statusprocessing, report_ready, partial или failed. Готовый отчёт отдаётся при report_ready/partial.
result.risk_scoringИтоговый риск-индекс, уровень, краткий вывод и факторы.
result.checklist[]Нормализованные выводы по источникам для интерфейса партнёра.
pdf_url/report_urlPDF-отчёт и веб-страница результата.
evidenceЦифровой след проверки: корневой хеш, SHA PDF, метка времени и хеши источников.

Ошибки

Типовые ошибки метода

HTTP 400invalid_check_input

Недостаточно данных для выбранного типа проверки.

Что делать: Передайте seller/object в input_data.

{
  "error_code": "invalid_check_input",
  "message": "Недостаточно данных для выбранного типа проверки.",
  "request_id": "req_1780000000_abcd"
}
HTTP 402insufficient_funds

Недостаточно баланса для боевого запуска.

Что делать: Пополните баланс или используйте тестовый ключ.

{
  "error_code": "insufficient_funds",
  "message": "Недостаточно баланса для запуска в боевом режиме.",
  "request_id": "req_1780000000_abcd"
}
HTTP 409idempotency_conflict

Idempotency-Key повторён с другим телом запроса.

Что делать: Создайте новый Idempotency-Key.

{
  "error_code": "idempotency_conflict",
  "message": "Idempotency-Key повторён с другим телом запроса.",
  "request_id": "req_1780000000_abcd"
}
HTTP 429rate_limit_exceeded

Превышен лимит запросов.

Что делать: Повторите позже с учётом Retry-After.

{
  "error_code": "rate_limit_exceeded",
  "message": "Превышен лимит запросов.",
  "request_id": "req_1780000000_abcd"
}

Ответ processing

{
  "check_id": "b9f6f2f0-b8c1-4f1c-bb8f-3cf3a9dc3b5a",
  "status": "processing",
  "type": "full",
  "mode": "live",
  "cost": 650,
  "balance_remaining": 12410,
  "request_id": "req_..."
}

Ответ report_ready

{
  "check_id": "b9f6f2f0-b8c1-4f1c-bb8f-3cf3a9dc3b5a",
  "status": "report_ready",
  "type": "full",
  "result": { "risk_scoring": { "score": 18, "label": "Низкий риск" } },
  "pdf_url": "https://realiq.ru/reports/...",
  "evidence": {
    "check_evidence_root_hash": "9f...",
    "pdf_sha256": "ab...",
    "sources": [{ "source_code": "fssp", "datestamp": "2026-06-28", "normalized_result_sha256": "..." }]
  }
}

Пример ошибки

{
  "error_code": "insufficient_funds",
  "message": "На балансе недостаточно средств для запуска проверки.",
  "request_id": "req_..."
}

Что списывается с баланса

В боевом режиме списывается стоимость проверки по активному тарифу. В тестовом режиме баланс не списывается и реальные источники не вызываются.

Какие поля доказательного блока вернутся

  • check_evidence_root_hash
  • pdf_sha256
  • data_snapshot_sha256
  • sources[].normalized_result_sha256
  • sources[].datestamp