T2Mark Docs
Painel
Docs / API Reference / POST /api/unregister

POST /api/unregister

POST /api/unregister

Remove o registro da máquina e revoga a ApiKey. Chamado automaticamente durante desinstalação. Requer autenticação via X-API-Key.

Quando é Chamado

Desinstalação do agente:

1. Usuário executa: Core.exe -uninstall
2. Agente faz: POST /api/unregister
3. Envia: X-API-Key header
4. Servidor revoga ApiKey
5. Máquina desaparece do painel
6. Agente é removido

Requisição

curl -X POST https://t2mark.setor9.net/api/unregister \
  -H "X-API-Key: ak_5f1b3c8e9d2a4b6c7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "user_uninstall",
    "timestamp": "2026-05-05T14:30:00Z"
  }'

Parâmetros (Opcionais)

Campo Tipo Descrição
reason string "user_uninstall", "reinstall", etc
timestamp string Data/hora da desinstalação

Resposta — 200 OK

{
  "status": "unregistered",
  "message": "Machine successfully unregistered",
  "apiKeyRevoked": true
}

Campos

Campo Tipo Significado
status string "unregistered" = removido
apiKeyRevoked boolean ApiKey foi revogada
message string Mensagem descritiva

O Que o Servidor Faz

POST /api/unregister recebido:
  1. Valida ApiKey
  2. Marca ApiKey: "revoked = true"
  3. Marca máquina: "status = inactive"
  4. Registra timestamp de revogação
  5. No painel, máquina desaparece ou mostra "Inativa"
  6. Futuras requisições com esta ApiKey → 401 Unauthorized

Comportamento Após Unregister

ApiKey Revogada

Qualquer requisição subsequente com essa ApiKey retorna erro:

curl -X GET https://t2mark.setor9.net/api/policy \
  -H "X-API-Key: ak_revogada_5f1b3c8e..."

Resposta:
{
  "error": "Unauthorized",
  "message": "API key has been revoked"
}

Máquina No Painel

Antes (Ativa):

Máquina: PC-VENDAS-001
Status: 🟢 Online
Última sincronização: Agora
Política: Restrito v2

Depois (Desinstalada):

Máquina: PC-VENDAS-001
Status: 🔴 Inativo (revogado)
Última sincronização: Há 2 horas
Açao: [Reativar] [Deletar histórico]

Re-registro (Mesma Máquina)

Se você reinstala o agente na mesma máquina:

1. POST /api/register (com TenantKey)
2. HWID já existe
3. Servidor gera NOVA ApiKey
4. REVOGA ApiKey antiga (já estava revogada anyway)
5. Máquina volta como "Online"
6. Histórico é preservado

Casos de Uso

Caso 1: Usuário Desinstala

Usuário faz: Painel de Controle → Desinstalar
    ↓
Agente executa: Core.exe -uninstall
    ↓
POST /api/unregister é enviado
    ↓
Máquina desaparece do painel

Caso 2: Admin Remove Máquina do Painel

Também pode ser feito pelo servidor:

Admin clica: [Deletar] na máquina
    ↓
Servidor revoga ApiKey imediatamente
    ↓
Agente tenta polling → 401 Unauthorized
    ↓
Agente percebe que foi revogado
    ↓
Agente para ou tenta re-registro

Caso 3: Máquina Comprada Usada (Mesmo HWID)

Máquina A (antiga): Desinstala agente
    ↓ POST /api/unregister
    ↓ ApiKey revogada

Máquina A (agora com outro dono): Instala agente novo
    ↓ POST /api/register
    ↓ HWID já existe, mas ApiKey antiga revogada
    ↓ Servidor gera NOVO ApiKey
    ↓ Novo dono consegue usar

Timings

Operação Tempo
POST /api/unregister → Resposta 100-500 ms
ApiKey revogada Imediato
Máquina desaparece do painel 5-10 segundos
Próxima requisição com ApiKey revogada 401 Unauthorized

Irreversibilidade

⚠️ Após unregister:

Para recuperar a máquina:

  1. Reinstale o agente
  2. Faça novo register
  3. Máquina volta como ativa

Resumo Rápido

QUANDO CHAMADO:
  Durante desinstalação (Core.exe -uninstall)
  Ou quando admin remove máquina no painel

ENVIA:
  POST /api/unregister
  Header: X-API-Key: ak_...
  
  Body (opcionais):
  {
    "reason": "user_uninstall",
    "timestamp": "2026-05-05..."
  }

RECEBE:
  200 OK
  {
    "status": "unregistered",
    "apiKeyRevoked": true
  }

EFEITO:
  ✓ ApiKey revogada (não funciona mais)
  ✓ Máquina marcada como inativa
  ✓ No painel: Status = 🔴 Inativo
  ✓ Pode re-registrar depois

RE-REGISTRO:
  POST /api/register (novo)
  Receberá novo ApiKey
  Histórico preservado