Push devices
Endpoints pra integrar com WppHub Monitor (app mobile Android). Registra device do operador, dispara push quando chip cai. Admin key.
Pra integradores (CRMs, atendimento) — esses endpoints sao internos do app mobile. Voce provavelmente nao precisa chamar diretamente. Documentado aqui pra completude.
POST /v1/push/devices
Registra (ou re-registra por token) um device.
POST /v1/push/devicesAuthorization: Bearer ADMIN_KEYContent-Type: application/json
{ "label": "Pixel 8 do Gustavo", "expo_push_token": "ExponentPushToken[xxx...]", "platform": "android", "notification_prefs": { "chip_logged_out": true, "chip_banned": true, "chip_disconnected": false, "chip_qr_loop": true, "chip_bad_session_streak": true, "chip_silent": true }}expo_push_token e gerado pelo app mobile via Notifications.getExpoPushTokenAsync(). Upsert por token — reinstall do app que gera token igual atualiza o registro existente.
201 Created retorna o device com ID ULID.
GET /v1/push/devices
Lista todos.
PATCH /v1/push/devices/:id
Atualiza apenas o label.
PATCH /v1/push/devices/:id/prefs
Atualiza preferencias (toggles por tipo de evento).
POST /v1/push/devices/:id/test
Dispara push de teste pro device.
{ "ok": true }DELETE /v1/push/devices/:id
Remove (para de receber push).
Tipos de notificacao
| Tipo | Default | Quando dispara |
|---|---|---|
chip_logged_out | ON | chip vira logged_out (terminal) |
chip_banned | ON | detector de ban marca chip como banned |
chip_disconnected | OFF (ruido) | qualquer close terminal nao-loggedOut |
chip_qr_loop | ON | chip em pairing >5min |
chip_bad_session_streak | ON | consecutiveBadSession==2 (preventivo) |
chip_silent | ON | chip connected sem atividade >2h |
Como o hub envia push
Hub usa Expo Push API (https://exp.host/--/api/v2/push/send). Free tier: 600 notif/sec sem token, ~1800 com EXPO_ACCESS_TOKEN. Pra operador unico, irrelevante.
Tokens invalidados (device desinstalou app, etc) sao limpos automaticamente apos resposta com errorCode=DeviceNotRegistered ou InvalidCredentials.