Operação
Notificações do Partner Portal
O sino unificado reúne eventos da Academy, Meta, templates, saúde de entregas, cobrança e sistema. Cada membro escolhe o que deseja receber.
Categorias disponíveis
| Preferência | Eventos | Padrão |
|---|---|---|
notify_academy | Resposta, aprovação e atualização de conteúdo. | true |
notify_meta_alerts | Qualidade, conta, número, nome e capacidade. | true |
notify_templates | PENDING, APPROVED, REJECTED, PAUSED, qualidade e categoria. | true |
notify_delivery_health | 131049, 131042 e demais alertas de entrega reportados pelo backend do partner. | true |
notify_billing | Falha, recuperação, fatura paga e acesso financeiro. | true |
notify_billing_reminders | Aproximadamente 24h antes do trial, renovação ou retry de cobrança. | true |
notify_system | Avisos gerais HookCloud. | true |
popup_enabled | Exibe toast; não desativa o histórico no sino. | true |
Como a entrega funciona
- A origem muda.Triggers transformam Academy, Meta, template, entrega e billing em um formato único.
- Idempotência.Cada evento possui uma chave de deduplicação.
- Preferências por usuário.A lista filtra categorias desativadas sem alterar os outros membros.
- Leitura individual.Cada usuário tem seu próprio estado de lido/não lido.
Lembretes financeiros
O job interno que já processa a fila Stripe também gera lembretes idempotentes na janela de 23 a 25 horas antes do evento financeiro.
| Evento | Quando | Destino |
|---|---|---|
billing.trial_ends_tomorrow | Trial termina em ~24h | Aba Assinatura |
billing.charge_tomorrow | Renovação em ~24h | Aba Assinatura |
billing.payment_retry_tomorrow | Smart Retry em ~24h | Aba Assinatura |
Implementação no seu frontend
O Partner Portal já implementa polling, badge, popup, navegação e preferências. Em um frontend próprio, consulte periodicamente, marque a leitura e respeite o campo target_url.
const response = await fetch(
`${API_URL}?route=list-partner-notifications&limit=40`,
{ headers: { apikey: PUBLISHABLE_KEY, Authorization: `Bearer ${userJwt}` } }
);
const { items, unread, preferences } = await response.json();