Fluxo básico para receber notificações via webhooks:
- Crie um serviço com um endpoint acessível dentro do seu sistema para receber as requisições de notificação dos eventos de recorrência.
- Registre seu endpoint na Malga criando um webhook para receber notificações dos eventos desejados.
- A Malga enviará uma requisição HTTP para seu endpoint com os dados do objeto alterado sempre que o determinado evento registrado no seu webhook acontecer.
Criação de um webhook
Realize a criação e gestão de webhooks usando o Serviço de Webhooks.Evento de notificação enviado
Quando um determinado evento ocorre no motor de recorrência, a Malga cria um objeto do tipoevent
que é enviado através de uma requisição HTTP para o seu endpoint cadastrado. O evento é imutável dentro da estrutura de notificações da Malga, isso significa que os dados do objeto que sofreu alteração são gravados junto com o evento, representando o estado do objeto imediatamente após o evento que o alterou.
Exemplo de requisição de notificação de evento de uma assinatura enviada pela Malga para seu endpoint:
Eventos suportados para notificação via webhooks
Evento | Descrição |
---|---|
subscription.created | Evento enviado quando uma nova assinatura é criada |
subscription.activated | Evento enviado quando uma assinatura tem seu primeiro pagamento aprovado |
subscription.updated | Evento enviado quando uma assinatura é atualizada (mudança de valor, produtos, etc.) |
subscription.paused | Evento enviado quando uma assinatura é pausada |
subscription.resumed | Evento enviado quando uma assinatura pausada é retomada |
subscription.unpaid | Evento enviado quando uma assinatura fica em situação de não paga |
subscription.expired | Evento enviado quando uma assinatura expira |
subscription.cycle_failed | Evento enviado quando um ciclo de pagamento falhar devido a inconsistencia de dados |
Exemplos de payloads
Estrutura padrão do payload
Todos os eventos de assinatura seguem a mesma estrutura base. A diferença está no campoevent
e nos dados específicos dentro de data
.
Evento subscription.activated
O eventosubscription.activated
inclui informações adicionais sobre o cycle que foi processado com sucesso:
Evento subscription.cycle_failed
Este evento é enviado quando o processamento de um novo ciclo de cobrança falha devido a alguma inconsistência nos dados da assinatura. Um exemplo comum é quando o merchant vinculado à assinatura foi desativado.Nesses casos,
nenhuma transação é criada.
Comportamento especial para startAt sendo hoje
Quando uma assinatura é criada comstartAt
definido como a data atual, o motor de recorrência processa o primeiro pagamento imediatamente.Nesse caso, voce deve receber webhooks na ordem abaixo:
Ordem de eventos quando startAt é hoje:
subscription.created
- Assinatura criadasubscription.activated
(se sucesso) ousubscription.cycle_failed
(caso haja alguma inconsistencia de dados na assinatura)subscription.unpaid
(se todas as tentativas de pagamento do ciclo falharem)
Webhooks de Cobrança
Quando o motor de recorrência cria cobranças automaticamente, você também receberá os webhooks de cobrança padrão da Malga. Nestes casos, osubscriptionId
estará presente no payload da cobrança para identificar a qual assinatura a cobrança pertence.