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ênciaEventosPadrão
notify_academyResposta, aprovação e atualização de conteúdo.true
notify_meta_alertsQualidade, conta, número, nome e capacidade.true
notify_templatesPENDING, APPROVED, REJECTED, PAUSED, qualidade e categoria.true
notify_delivery_health131049, 131042 e demais alertas de entrega reportados pelo backend do partner.true
notify_billingFalha, recuperação, fatura paga e acesso financeiro.true
notify_billing_remindersAproximadamente 24h antes do trial, renovação ou retry de cobrança.true
notify_systemAvisos gerais HookCloud.true
popup_enabledExibe toast; não desativa o histórico no sino.true

Como a entrega funciona

  1. A origem muda.Triggers transformam Academy, Meta, template, entrega e billing em um formato único.
  2. Idempotência.Cada evento possui uma chave de deduplicação.
  3. Preferências por usuário.A lista filtra categorias desativadas sem alterar os outros membros.
  4. 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.

EventoQuandoDestino
billing.trial_ends_tomorrowTrial termina em ~24hAba Assinatura
billing.charge_tomorrowRenovação em ~24hAba Assinatura
billing.payment_retry_tomorrowSmart Retry em ~24hAba 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.

javascript
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();

Alertas Meta com explicação em português

Os alertas Meta recebem uma interpretação adicional no objeto explanation. O Portal, o Admin e o aplicativo usam o mesmo catálogo local para explicar o significado, o impacto e o próximo passo. A leitura dessa explicação não faz uma nova consulta à Meta.

O objeto aparece em search-meta-risk-alerts → items[], get-meta-risk-dashboard → latest_alerts.items[], no alert retornado por acknowledge-meta-risk-alert e resolve-meta-risk-alert, e nas notificações Meta de list-partner-notifications → items[]. As permissões de cada rota continuam sendo exigidas; a explicação não amplia o acesso a outros parceiros.

CampoUso recomendado
title e summaryTítulo e explicação do evento em linguagem clara.
impactO que o evento informa e os limites da interpretação. Um aviso de segurança não significa automaticamente falha de conexão.
recommended_actionOrientação para o usuário, incluindo ação condicional quando ele não reconhece uma alteração de segurança.
area e toneAssunto e tom visual: info, success, warning ou danger. São apresentação; não substituem o estado operacional nem alteram a severidade original.
technicalfield, event, category e code preservam a referência técnica da interpretação para suporte. Valores indisponíveis ficam nulos.
reference_urlReferência oficial ou documentação HookCloud apropriada, definida pelo catálogo. Renderize textos como texto, sem interpretar HTML recebido em um alerta.
interpretation_version e recognizedVersão da explicação e indicação de que o evento foi reconhecido. Com recognized=false, mostre a orientação neutra e o detalhe técnico; não invente uma causa.

É um acréscimo ao contrato: category, current_state, severity, status, datas e dados originais continuam disponíveis. Uma notificação de cobrança, comunidade ou autenticação não deve ser traduzida como alerta Meta apenas por mencionar uma conta da Meta.

Exemplo: redefinição do PIN

O exemplo genérico abaixo representa um evento da conta/WABA sem uma instância específica associada. PIN_RESET_SUCCESS informa conclusão de uma redefinição do PIN; o aviso orienta a reconhecer a ação e conferir a segurança. Ele não permite afirmar que o cartão está ausente, que o nome foi recusado ou que a conta foi banida.

json
{
  "category": "security_update",
  "current_state": "PIN_RESET_SUCCESS",
  "severity": "warning",
  "status": "open",
  "scope_type": "waba",
  "partner_instance_id": null,
  "metadata": {
    "field": null,
    "value": {
      "event": "PIN_RESET_SUCCESS"
    }
  },
  "explanation": {
    "title": "Redefinição do PIN concluída",
    "summary": "A Meta informou a conclusão de uma redefinição do PIN de segurança deste número.",
    "impact": "Este aviso não significa erro na conexão, falta de pagamento ou banimento. Ele não confirma se a verificação em duas etapas está ativa agora.",
    "recommended_action": "Se reconhece a ação, confira a configuração atual no WhatsApp Manager. Se não reconhece, revise os acessos com o administrador da empresa e procure o suporte. Nunca envie seu PIN ou senha pelo suporte.",
    "area": "security",
    "tone": "warning",
    "reference_url": "https://developers.facebook.com/documentation/business-messaging/whatsapp/webhooks/reference/security/",
    "interpretation_version": "2026-10-16.1",
    "technical": {
      "field": "security",
      "event": "PIN_RESET_SUCCESS",
      "category": "security_update",
      "code": null
    },
    "recognized": true
  }
}

A referência de segurança da Meta documenta a grafia PIN_REQUEST_SUCCESS para a conclusão das instruções por email de desativação da verificação em duas etapas. A variação observada PIN_RESET_SUCCESS recebe explicação conservadora: confira a configuração atual, sem afirmar que o segundo fator está ativo ou desativado neste momento.

Veja como separar alerta e saúde operacional. Para orientar o usuário final, compartilhe o guia de PIN e alertas na Central de Ajuda.

Referências oficiais: segurança e PIN · alertas da conta · restrições e vínculo.

Aviso de limite do nome e avisos de ligações

Ao receber hookcloud.instance.health_updated, leia a fotografia de connection_health completa. Um número pode estar inventory_state=active e ter messaging_capability.state=limited com reason=display_name_capacity_limit: a última consulta de saúde associou o limite à aprovação do nome. Isso não substitui o estado de aprovação do nome nem confirma que o WhatsApp Manager ainda mostre o mesmo diagnóstico. ready_to_operate=false preserva a ausência de confirmação de envio sem limitações; não significa, sozinho, bloqueio total.

O diagnóstico meta_display_name_capacity_limit pertence ao domínio messaging. Já meta_calling_not_configured, domínio calling, trata dos códigos SIP 138024 e 138025 quando identificados nesse contexto. Não gere um aviso de falha de mensagens só por existir uma pendência de configuração de ligações que seu sistema não utiliza.

Se o nome já consta como APPROVED e a capacidade ainda está limited, mostre ambos: nome aprovado e diagnóstico de capacidade aguardando atualização pela Meta. Não rebaixe a aprovação por causa do texto do limite, nem force envio available. A HookCloud não garante um prazo de propagação entre o WhatsApp Manager, os eventos e a API; compare a identidade e evidence.checked_at. A atualização visual do Portal consulta dados locais, não faz GET à Meta a cada atualização.

Um evento histórico e sua explicação não substituem a saúde atual. Mostre “Ativo — envio com limite” nesse caso e preserve outras restrições independentes. Veja os campos, condições e referências oficiais desse contrato.