---
title: "Настройка агента для управляемого аккаунта"
description: "Создайте одноразовую ссылку и подключите CloudPrint Agent к нужному аккаунту клиента без входа в кабинет."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/docs/">Документация CloudPrint</a><span aria-hidden="true">/</span><span>Developer Platform</span></nav>

# Настройка агента для управляемого аккаунта

<p class="docs-lead">Agent Enrollment подключает один или несколько локальных CloudPrint Agents к нужному клиентскому аккаунту без регистрации и входа клиента в CloudPrint.</p>

## Безопасно повторяйте создание Enrollment

При создании аккаунта CloudPrint возвращает одноразовую ссылку `agent_onboarding_url`. Второй компьютер можно подключить через `POST /partner-api/v1/accounts/{relationshipId}/agent-enrollments` с обязательным `Idempotency-Key`. Точный повтор возвращает прежние Enrollment ID, срок действия и ссылку. До первого запроса сохраните ключ, `state`, имя, адрес возврата и необязательный `replaces_enrollment_id`; при повторе меняется только JWT-подтверждение приложения. Для замены известного неиспользованного Enrollment передайте `replaces_enrollment_id`.

## Отслеживайте конкретный Enrollment

Сохраните `agent_enrollment_id` из ответа и проверяйте `GET /partner-api/v1/accounts/{relationshipId}/agent-enrollments/{enrollmentId}`. Продолжайте опрос при статусе `pending`; когда он сменится на `claimed`, сохраните возвращённый `agent_id`. Остановитесь при `expired` или `revoked`. Ответы GET и списка не повторяют секретную ссылку подключения, поэтому до завершения процесса храните ответ на создание в защищённом месте. Проверка конкретного Enrollment также не позволит принять ранее подключённый агент за компьютер, использовавший новую ссылку.

## Получайте список и отзывайте Enrollment

`GET /partner-api/v1/accounts/{relationshipId}/agent-enrollments` возвращает записи со статусами `pending`, `claimed`, `expired` и `revoked` без секретных кодов. Отзовите неиспользованный код через `DELETE /partner-api/v1/accounts/{relationshipId}/agent-enrollments/{enrollmentId}`. Повторный отзыв безопасен.

## Получайте список и отзывайте агентов

Показывайте подключённые компьютеры с помощью `GET /partner-api/v1/accounts/{relationshipId}/agents`. Потерянный, сломанный или заменённый компьютер отзовите через `DELETE /partner-api/v1/accounts/{relationshipId}/agents/{agentId}`, после чего создайте Enrollment для нового компьютера. Принтеры отозванного агента перейдут в статус `offline`.

## Восстановите потерянный ответ

Повторите тот же запрос с новым одноразовым JWT-подтверждением и прежним `Idempotency-Key` для Enrollment. Пока хранится запись идемпотентности, CloudPrint вернёт исходную ссылку подключения. Другое тело или другой путь с тем же ключом вернёт `409 partner.idempotency.conflict`. Не создавайте новый ключ, если результат предыдущего запроса неизвестен.

## Откройте страницу подключения

По умолчанию открывайте полную ссылку `agent_onboarding_url`, включая фрагмент `#token`. Если `connect.cloudprint.me` недоступен из сети клиента, замените только имя хоста на `connect.cloudprint.by`, сохранив схему `https`, путь `/setup` и весь фрагмент `#token` без изменений. Например, `https://connect.cloudprint.me/setup#token=…` превращается в `https://connect.cloudprint.by/setup#token=…`. Это официальное зеркало страницы подключения, а не выбор региона хранения данных. Не подставляйте другие хосты, не разбирайте, не проксируйте и не записывайте ссылку в логи. Список установщиков доступен через `GET /agent-download-api/v1/releases`, а загрузка файла — через `GET /agent-download-api/v1/installers/{filename}`. После возврата проверьте `state`. `result=ready` подтверждает первый авторизованный `heartbeat` агента, но не наличие принтера. Обновите данные управляемого аккаунта, агентов и принтеров; включайте печать только при `status=active`, `online_agent_count > 0` и `online_printer_count > 0`.

## Собирайте данные для поддержки

Храните идентификатор клиента, `relationship_id`, `installation_id`, Enrollment ID, Agent ID, версию агента, время последнего подключения и связанные значения `X-Request-Id`. Эти данные помогут отличить проблему аккаунта от ошибки Enrollment, подключения агента, обнаружения принтера или Print API — без запроса секретных данных.

## Следующие шаги

<div class="docs-card-grid"><a class="docs-card" href="/docs/developer-platform/managed-accounts/"><strong>Управляемые аккаунты в CloudPrint Developer Platform</strong><span>Создавайте изолированные аккаунты CloudPrint для клиентов и управляйте ими из своего продукта.</span></a>
<a class="docs-card" href="/docs/developer-platform/managed-accounts/account-lifecycle/"><strong>Создание и управление аккаунтами клиентов</strong><span>Авторизуйте запросы Partner API, создавайте управляемые аккаунты, приостанавливайте, возобновляйте или закрывайте их.</span></a>
<a class="docs-card" href="/docs/api/agents-and-printers/"><strong>Подключение агента и выбор принтера</strong><span>Установите агент CloudPrint, получите локальные очереди печати и сохраните стабильный printer_id с учётом возможностей принтера.</span></a></div>

<nav class="docs-resource-links" aria-label="Следующие шаги"><a href="https://cloudprint.by/status/">Статус сервиса</a><a href="/docs/api/v1/explorer/">OpenAPI</a><a href="https://developer.cloudprint.me">Кабинет разработчика</a><a href="https://my.cloudprint.by">Открыть кабинет</a><a href="/docs/legal/privacy/">Политика конфиденциальности</a><a href="/docs/legal/terms/">Условия использования</a><a href="/docs/legal/data-processing/">DPA</a><a href="/docs/legal/service-level-agreement/">Соглашение об уровне сервиса</a></nav>