# Покупка и активация Cloud Phone на месяц

Покупает и активирует от 1 до 10 месячных Cloud Phone на 30 дней.
- **Предупреждение**: **операция реально списывает средства с баланса команды.**
- **Разрешение**: требуется право **Управление расходами/платежами**, иначе возвращается `99012`.
- **Сначала создайте**: используйте [`/api/cloudphone/create`](./local-api.yaml#operation/createUsingPOST); создание даёт неактивные записи и не списывает средства.
- **Выбор**: ID должны быть уникальными, принадлежать команде и использовать активные 30-дневные продукты. Разные месячные SKU можно смешивать. Несовместимые состояния оплаты или заказы, ожидающие клиентские заказы и параллельные покупки отклоняют весь запрос.
- **Списание и восстановление**: проверка и списание выполняются целиком. Для одного оплаченного заказа право восстанавливается без повторного списания. Local API, Open API и клиент используют общее состояние заказа.
- **Завершение**: подтверждает 30 дней для всех устройств; не включает их и не включает автопродление.
- **Неподтверждённая активация**: при `33422` `data.results` остаётся полным и упорядоченным. Проверьте `status`, `expireTime`, `errorCode`.
- **Повтор**: после таймаута запросите [`/api/cloudphone/info`](./local-api.yaml#operation/infoUsingPOST) или [`/api/cloudphone/page`](./local-api.yaml#operation/pageUsingPOST).

Ошибки: `20002`, `20003`, `20004`, `20008`, `20041`, `20055`, `20068`, `20070`, `20071`, `33420`, `33421`, `33422`, `99001`, `99002`, `99012`. См. [Error Codes](../Getting%20Started/error-codes.md).
- **Версия клиента**: требуется MoreLogin Desktop v2.65.0 или новее; старые версии не предоставляют этот маршрут Local API.

Endpoint: POST /api/cloudphone/monthly/activate
Version: 2026-09-05

## Request fields (application/json):

  - `ids` (array, required)
    One to ten distinct positive Cloud Phone IDs, encoded as strings to preserve 64-bit precision

## Response 200:

  - `200` (unknown)
    Request processed; inspect `code`, and inspect `data.results` when returned

## Response 200 fields (application/json):

  - `code` (integer, required)
    Business result code; `0` indicates success
    Example: 0

  - `msg` (string | null, required)
    Error message; null when successful
    Example: null

  - `requestId` (string, required)
    Request ID for troubleshooting
    Example: 1d4f3ea968664593860b94b35d4ebf5e

  - `data` (object)

  - `data.orderId` (string, required)
    Paid balance-order ID

  - `data.orderStatus` (integer, required)
    Order status; 1 means completed
    Enum: "1"

  - `data.results` (array, required)
    One result per requested ID, in request order

  - `data.results.id` (string, required)
    Cloud Phone ID

  - `data.results.status` (string, required)
    Activation result
    Enum: "ACTIVATED", "FAILED", "UNKNOWN"

  - `data.results.expireTime` (string | null)
    Unix time in milliseconds; present for a successful activation

  - `data.results.errorCode` (integer | null)
    Business error code for a failed item

