> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vmarea.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Faturamento e ciclo de vida

> Como funcionam cobranças, backups, snapshots, pagamentos em atraso, exclusão e restauração.

## Cobranças

A VMArea é pré-paga. As cobranças saem da sua carteira.

* **Criar** cobra na hora o primeiro período, mais os adicionais. Se o saldo não cobrir, a API retorna `402`.
* **Renovação** é cobrada na data de vencimento. Pagar com atraso não muda a data do próximo vencimento.
* **Upgrade** (`POST /vms/{id}/upgrade`) cobra na hora a diferença proporcional ao restante do período. Downgrades são rejeitados.
* **Os preços ficam travados** na compra. Uma mudança posterior no catálogo não altera um servidor ou adicional existente.

O tempo não usado não é reembolsado quando você exclui um servidor, cancela ou deixa vencer. Para deixar de pagar, cancele ao fim do período. O servidor funciona até lá. Veja a [Política de Reembolso](https://vmarea.com/legal/refund) para as exceções limitadas.

Leia saldo e histórico com `GET /wallet` e `GET /wallet/transactions`, e as faturas com `GET /invoices`. Recargas são feitas no painel.

## Backups diários

Os backups diários são um adicional, cobrado por servidor.

* Um backup roda toda noite.
* Mantemos 7 pontos de restauração diários e 4 semanais.
* Com o adicional ativo, você também pode fazer até 5 backups manuais por servidor com `POST /vms/{vmId}/backups`.
* `POST /vms/{vmId}/backups/enable` ativa o adicional. Uma nova ativação cobra o restante proporcional do período atual.
* `POST /vms/{vmId}/backups/disable` cancela na renovação. Os backups continuam ativos até lá.
* `POST /vms/{vmId}/backups/{id}/restore` sobrescreve os discos do servidor com aquele backup.

Um servidor sem o adicional não tem backups, e nada pode ser restaurado após uma exclusão.

## Snapshots

Um snapshot é uma cópia de um instante, guardada junto ao servidor. Não é um backup. Você pode manter até 5 por servidor.

Snapshots são cobrados pelo espaço que ocupam. Cada snapshot acumula o próprio custo ao preço por GB travado na criação. Os valores acumulados são somados e cobrados em uma única linha na próxima renovação do servidor. Não há cobranças diárias separadas na carteira.

Reverta um servidor com `POST /vms/{vmId}/snapshots/{id}/rollback`.

## Pagamento em atraso

Se a carteira não cobrir uma renovação, os dias contam a partir do vencimento.

| Dia | Servidor em nuvem |
| - | - |
| 3 | Desligado. O disco e o endereço IP são mantidos. Pagar o religa. |
| 7 | E-mail de aviso final. |
| 10 | Excluído e o endereço IP liberado. |
| 24 | Removido de vez, se estava em Excluídos recentemente. |

Servidores com proteção contra exclusão são desligados, mas não excluídos automaticamente. Esses prazos podem mudar, e o objeto `lifecycle` em `GET /services` sempre mostra as datas que valem para o serviço.

## Excluir e restaurar

`DELETE /vms/{id}` remove um servidor.

* **Com o adicional de backup diário**, o servidor vai para Excluídos recentemente por 14 dias. O backup noturno mais recente é mantido. Alterações feitas depois desse backup são perdidas.
* **Sem o adicional**, a exclusão é definitiva.
* Passe `permanent=true` para excluir sem restauração em qualquer caso.
* Um servidor protegido retorna `409`. Remova a proteção antes com `PATCH /vms/{id}`.

Para restaurar:

1. `GET /vms/recently-deleted` lista os servidores que ainda podem ser restaurados, com `restorableUntil` e `restorePrice`.
2. `GET /vms/{id}/restore-quote` detalha o preço: um período de cobrança ao preço travado, o adicional e as faturas em aberto do servidor antigo.
3. `POST /vms/{id}/restore` cria um servidor substituto a partir do backup final e debita a carteira. Passe `expectedTotal` da cotação. Se o preço mudou, você recebe `409` com `QUOTE_CHANGED`. Saldo insuficiente retorna `402` com o valor que falta.

O substituto tem novo id e novo endereço IP. Mantém o nome e o hostname. O preço da restauração é uma nova cobrança, não a reversão da anterior.

## Serviços

`GET /services` e `GET /services/{id}` retornam todos os serviços da conta com `status`, `billing` e um objeto `lifecycle`. `lifecycle.state` é `ACTIVE`, `ENDING`, `SUSPENDED`, `RECENTLY_DELETED` ou `GONE`. `nextStep` e `nextStepAt` indicam o que acontece em seguida e quando.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.