O que são
Além dos eventos de template e do aviso de desconexão de canal, o webhook global do workspace pode receber dois grupos de eventos de conta:- Cobrança: pagamento recusado, pagamento recuperado, assinatura cancelada, instância suspensa e instância liberada por falta de pagamento.
- Restrição da conta na Meta (
ACCOUNT_RESTRICTION): a Meta restringiu a conta do WhatsApp Business (WABA), registrou uma violação ou agendou a desativação.
Como assinar
Inclua os eventos emevents ao criar ou atualizar o webhook global:
- Só no webhook global. O webhook de canal e o padrão de instância recusam esses eventos com
422. - Só no formato
DEFAULT. O webhook global já éDEFAULT. - Cada evento é independente. Assine só os que você usa, juntos ou não com os eventos de template e o
CHANNEL_DISCONNECTED. - No painel, assinar um evento de cobrança exige a permissão Ver a cobrança (Owner e Manager, veja Time e papéis).
- O
PATCHcomeventssubstitui a lista. Para continuar recebendo, mande de novo os eventos que já estavam assinados.
Eventos de cobrança
O que o seu servidor recebe
O corpo é o evento:instanceIdslista as instâncias cobertas pela fatura. Uma fatura pode cobrir mais de uma.invoiceRefidentifica a fatura e é o mesmo na falha e na recuperação. Com duas faturas falhando no mesmo workspace, é ele que diz qual foi paga.amounté texto decimal ("99.90") ecurrencyé o código ISO 4217 em maiúsculas. Na falha,amounté o valor em aberto; na recuperação, o valor pago. Quando a recuperação vem da mudança de status da assinatura, e não do pagamento de uma fatura,amountecurrencyvêmnull, einvoiceReftambém, se não houver fatura.attemptCounté o número da tentativa de cobrança, enextAttemptAté a próxima tentativa automática, ounullquando não há outra.
O corpo nunca traz dados do cartão, ids do provedor de pagamento, link da fatura, e-mail nem nome.
Restrição da conta na Meta (ACCOUNT_RESTRICTION)
Sai quando a Meta avisa uma destas situações na conta do WhatsApp Business (WABA) dos seus canais:
A restrição não desconecta o canal e não muda o estado dele no Omni Z-API. Quando a Meta desconecta a conta de fato, chega também o aviso de desconexão de canal, um por canal.
O que o seu servidor recebe
Os blocos
restriction_info, ban_info e violation_info são repassados como a Meta os envia, sem tradução. Os valores possíveis, como restriction_type e waba_ban_state, estão na documentação da Meta e podem mudar. O objeto event também pode trazer outros campos de roteamento, que não fazem parte do contrato: ignore os que não estão nesta tabela.Um aviso por workspace
- Uma conta, um aviso. A restrição é da conta, então o workspace recebe um aviso com a lista
instances, e não um aviso por canal. - Por número. Se a Meta cita números diferentes (por exemplo, restrições de chamada), sai um aviso por número, cada um com o seu
phone_numbere o seunotice_id. - Repetição. Um reenvio da Meta pode gerar um segundo aviso com o mesmo
notice_id. A mesma situação avisada de novo pela Meta em outro momento gera outronotice_id.
Ordem e repetição
A entrega é ao menos uma vez e a ordem de chegada não é garantida (veja Entrega e novas tentativas):- descarte repetições pelo
id(cobrança) ou pelonotice_id(restrição); - ordene pelo
occurredAt(cobrança) ou pelomoment(restrição), e não pela hora de chegada.