Покупка и жизненный цикл
Заказы и операции
| Идентификатор | Значение | Получение результата |
|---|---|---|
api_key_id | Интеграция и её баланс | GET /balance |
api_user_id | Строковый ID вашего клиента | Фильтры VPS, аренд и заказов |
order_id | Оплаченная покупка, продление или смена тарифа | GET /orders/{order_id} |
vm_id | VPS | GET /vms/{vm_id} |
rental_id | Аренда выделенного сервера | GET /dedicated/rentals/{rental_id} |
ip_id | Выделенный IP-адрес | GET /ips |
operation_id | Асинхронная команда VPS | GET /vms/{vm_id}/operations/{operation_id} |
Покупка списывает баланс интеграции при приёме заказа. Выделение ресурсов затем выполняется асинхронно. Расчёт цены не списывает баланс, не создаёт заказ и не резервирует ресурсы. HTTP 202 подтверждает приём запроса, а не его конечный результат.
| Статус заказа | Значение |
|---|---|
pending | Заказ сохранён, ожидает обработки |
processing | Обрабатывается |
completed | Оплаченное действие завершено; для покупки дедика — завершено резервирование |
failed | Действие не выполнено; проверьте ошибку и транзакции |
refunded | Сумма заказа возвращена на баланс интеграции |
review | Неопределённый или частичный результат, требующий выяснения |
При review или requires_review=true проверьте ресурс и обратитесь в поддержку перед новой платной или разрушительной командой. Ошибка либо неопределённый ответ не доказывают, что ресурс не был создан. Транзакции показывают реальные движения баланса; order_id может быть null при пополнении и других движениях без заказа.
После потери ответа используйте исходный Idempotency-Key и неизменные параметры. Проверяйте существующий заказ вместо новой покупки для восстановления результата. Вебхуки могут повторяться или не дойти, поэтому сохраняйте возможность запросить статус.
Цена и продление VPS
Цена зависит от локации, платформы, тарифа и доли CPU. Опубликованная месячная цена уже включает наценку интеграции. При покупке/продлении на несколько месяцев применяется текущая скидка за срок; итог получайте через расчёт, а не простым умножением месячной цены.
Сроки — календарные месяцы, а не блоки по 30 суток. Срок нового VPS рассчитывается при создании заказа. Продление увеличивает оплаченный срок либо отсчитывается от текущего времени, если оплата уже истекла. Продлить можно в период ожидания до начала удаления.
Смена тарифа не может уменьшать ресурсы CPU, RAM, диск и включённый трафик. Без cpu_percent сохраняется текущая доля. Доплата — разница цен за остаток оплаченных календарных периодов по текущим ценам тарифов с исходной скидкой каждого периода, включая продления вперёд. Срок оплаты сохраняется. Расчёт возвращает максимальную цену для подтверждения через expected_amount_usd и новую месячную цену.
Cloud-init
Создание VPS, расчёт цены и переустановка ОС принимают необязательный cloud_init: JSON-объект cloud-config, не строку YAML. Пропустите поле или передайте null для стандартной установки.
{
"cloud_init": {
"packages": ["curl"],
"runcmd": [["sh", "-c", "echo ready > /root/cloud-init-ready"]]
}
}
Лимит объекта — 65536 байт после серверной JSON-сериализации, при которой не-ASCII символы экранируются. Поля users, packages, runcmd и write_files при наличии должны быть массивами. Сеть, hostname и основной доступ задаёт платформа. При создании по-прежнему нужен ровно один из password или ssh_public_key. При повторе покупки или команды передавайте тот же объект cloud-init.
guest_initialization содержит результат установки в деталях VPS, заказе покупки, результате операции переустановки и соответствующих вебхуках:
| Статус | error_code | Значение |
|---|---|---|
succeeded | null | Cloud-init завершился; это не подтверждает работоспособность приложения |
failed | cloud_init_failed | Ошибка пользовательской настройки; работающий VPS сохранён |
unknown | guest_initialization_timeout | Инициализация не подтверждена за 15 минут; VPS с пользовательской настройкой сохранён, если его работа подтверждена |
Поле может быть null, если результата нет. В деталях VPS отображается результат последней установки. Заказ может быть completed, а операция переустановки — succeeded, при инициализации failed или unknown: проверяйте оба результата. Ошибка пользовательской настройки сама по себе не отменяет покупку и не возвращает оплату. Инфраструктурные ошибки по-прежнему означают ошибку создания.
Содержимое cloud-init и вывод выполнения не передаются в публичных параметрах заказа и партнёрских вебхуках.
Rescue
Включение Rescue: PUT /vms/{vm_id}/rescue, заголовок Idempotency-Key и JSON:
{
"api_key_id": 1,
"password": "Temporary-Rescue-2026!"
}
Временный пароль обязателен: 5–128 символов, без CR, LF и NUL. VPS должен быть оплачен и иметь не менее 2048 МиБ RAM. Rescue перезагружает VPS в среду восстановления, сохраняя диски и сеть. После успешной операции подключайтесь как root по SSH к IP VPS, порт 22, с переданным паролем. Правила firewall продолжают действовать.
Включение и выключение возвращают HTTP 202 с ID операции в data.id. Проверяйте статус операции. Успешный результат содержит vm_id, status и rescue; поле rescue также доступно в деталях VPS:
{
"active": true,
"access": "ssh",
"requires_review": false,
"operation_id": 501,
"operation_status": "succeeded"
}
active означает сохранённый контекст Rescue, а не гарантию текущей доступности SSH. access принимает ssh, console или null. Всё состояние может быть null, если оно не получено. При активном Rescue недоступны смена тарифа, переустановка ОС и сброс пароля основной ОС.
Выключение Rescue: DELETE /vms/{vm_id}/rescue?api_key_id=1 с отдельным Idempotency-Key; тело и пароль не нужны. Восстанавливается загрузка обычной ОС, оплаченный VPS запускается. При истёкшей оплате или приостановке VPS остаётся выключенным. Выход доступен и из состояния error, если контекст Rescue сохранён.
При ошибке проверяйте error_code и requires_review. rescue_not_ready означает, что готовность Rescue не подтверждена: проверьте VPS и выйдите из Rescue. При rescue_memory_required нужен тариф с достаточным объёмом RAM; при rescue_iso_missing или rescue_not_configured обратитесь в поддержку. Потерянный запрос повторяйте с исходным ключом и параметрами.
Трафик и IPv4
Дополнительный трафик VPS и отдельно оплачиваемые IPv4 имеют фиксированные цены без наценки интеграции и скидок за срок.
- Трафик: целое количество единиц по 1024⁴ байт, только для текущего периода трафика. Расчёт возвращает
expected_period_idиperiod_ends_at; передайте ID периода в покупку, чтобы отклонить устаревший расчёт. Остаток дополнительного трафика не переносится. - Покупка IPv4: один дополнительный адрес на VPS, оплаченный на 30 суток независимо от срока VPS. Не более 10 IPv4 на VPS, включая основной.
- Продление IPv4: 30 суток от более позднего из текущего времени и
paid_until, по текущей фиксированной цене. Доступно для оплачиваемых дополнительных или сохранённых IPv4; включённый основной IPv4 и IPv6 отдельно не продлеваются. - Сохранённые адреса:
GET /ips?api_key_id=1&attachment=unattached. Сохранение адреса продолжает его оплату даже без VPS.
Чтобы перенести дополнительный IPv4, снимите его с keep_ip=true, затем назначьте совместимому VPS того же клиента (api_user_id). Адрес должен оставаться оплаченным и свободным. Назначение не покупает адрес и не продлевает срок. Проверяйте guest_configuration_required и при необходимости меняйте сеть внутри гостевой ОС.
Снятие с keep_ip=false освобождает адрес. DELETE /ips/{ip_id} освобождает сохранённый IPv4 без привязки к VPS. Основной IPv4 нельзя снять с существующего VPS.
Аренда выделенного сервера
- Получите тарифы дедиков, доступность, варианты дисков и скидки за срок.
- Рассчитайте, затем купите аренду с
plan_id,os_id,disk_layout, ID клиента и паролем либо публичным SSH-ключом. Физический сервер выбирает платформа. - Сохраните
order_id, затемrental_id.order.completedподтверждает резерв, а не готовность. - Дождитесь
dedicated.issuedлибо статуса арендыactive. Получите адреса и доступы в деталях аренды. Срок аренды начинается с выдачи.
Статусы аренды: preparing → active → overdue → cleaning → completed. Отменённая до выдачи аренда может завершиться как cancelled. cleaning означает начавшуюся очистку/освобождение; не обещайте продление на этом этапе.
Дополнительные IPv4 из extra_ipv4_count оплачиваются в составе аренды по фиксированной цене. Для итоговой суммы используйте расчёт продления дедика. Отдельный процесс покупки и продления VPS-адресов через /ips не является оплатой адресов аренды дедика.
Если администратор отменил аренду до выдачи, исходная покупка возвращается один раз на баланс интеграции; приходят order.refunded и dedicated.released. Обычное окончание срока или освобождение уже выданной услуги не означает автоматический возврат.
Автопродление и окончание оплаты
auto_renew по умолчанию false. Настройку можно передать при покупке или изменить через PATCH для VPS, аренды либо отдельно оплачиваемого IPv4. Само изменение флага не списывает деньги. У каждой услуги своя настройка.
| Услуга | Срок продления | Цена |
|---|---|---|
| VPS | Как в последней оплаченной покупке/продлении | Текущая цена тарифа, наценка интеграции и текущая скидка за срок |
| Аренда дедика | Как в последней оплаченной покупке/продлении | Текущая цена аренды, наценка, скидка за срок и стоимость дополнительных IPv4 |
| Отдельный IPv4 | 30 суток | Текущая фиксированная цена IPv4 |
При включённом автопродлении Cloud API пытается продлить услугу с баланса интеграции по предупреждению за час до окончания оплаты. Если срок истёк, повторная попытка происходит по последнему предупреждению за час до удаления/освобождения. Недостаточный баланс не продлевает услугу. Пополнение баланса само по себе не запускает немедленную повторную попытку; при необходимости продлите вручную.
Неоплаченные VPS и платные IPv4 приостанавливаются; период ожидания — 24 часа. Без оплаты они удаляются/освобождаются. Аренда дедика переходит в overdue, а после ожидания — в очистку/освобождение. Обработка асинхронная: дедлайн не гарантирует завершение очистки ровно в эту секунду.
Предупреждения приходят партнёру через Вебхуки, включая vm.deleting_soon, ip.releasing_soon и dedicated.releasing_soon, даже при выключенном автопродлении или недостатке средств. Предупреждение не подтверждает успешное продление: проверяйте итоговый оплаченный срок.
Команды VPS и удаление
Команды возвращают операцию: queued → running → succeeded / failed. Проверяйте операцию и текущее состояние ресурса; HTTP 202 — только приём запроса. Штатные shutdown/reboot отличаются от принудительных stop/reset. Переустановка удаляет данные системного диска; wipe_extra_disks=true также разрешает удаление дополнительных дисков.
Для изменения firewall сначала прочитайте правила и revision. Передавайте ревизию с каждой командой, при конфликте перечитывайте настройки. Перестановка требует полного набора ID правил по одному разу. Системная блокировка SMTP остаётся под управлением платформы.
При удалении VPS обязательно передайте keep_ips:
true: сохранить IPv4, включая бывший основной, как отдельно оплачиваемые адреса. Проверьтеheld_ipsрезультата операции и список адресов для сроков и настроек оплаты.false: освободить адреса вместе с VPS.
Удаление, освобождение адреса и неиспользованный срок не создают пропорциональный возврат. Сохраните нужные данные до удаления или переустановки.