Notificações internas quando faturas são pagas na plataforma Vindi

Olá, tudo bem?

Hoje iremos ver como realizar notificações internas quando uma fatura é paga na plataforma Vindi.
Iremos coletar os dados do pagamento, extrair informações e gerar uma mensagem de notificação via e-mail e Discord. Outras formas de notificações podem serem facilmente adicionadas como Telegram e Whatsapp.

Tópicos

  • Conectando com a plataforma Vindi
  • Notificação de Fatura Paga
  • Extraindo informações do pagamento
  • Montando a mensagem desejada
  • Enviando a mensagem via e-mail
  • Enviando a mensagem via Discord
  • Fluxo para Download

Conectando com a plataforma Vindi

No post anterior explicamos o que é a plataforma Vindi e como integrá-la com o N8N.
Configuramos o recebimento de notificação quando uma fatura é paga pelo cliente.
Se você não conferiu, acesse já:
https://alemdoscript.com.br/automacoes/ferramenta-n8n/2025/identificando-novos-assinantes-em-sua-plataforma-com-a-ferramenta-vindi-e-o-n8n/


Notificação de Fatura Paga

Iremos focar no evento de Fatura Paga, em seu ambiente Vindi vá em:

  • Configurações \ Webhooks \ Novo webhook
    Adicione o endereço do N8N que foi gerado no post anterior e selecione em eventos a opção de ‘Fatura Paga’.
    Essa configuração ira permitir que a cada fatura que foi paga no sistema Vindi, uma notificação seja enviada para o N8N contendo as informações referentes ao evento.

Extraindo informações do pagamento

No fluxo disponibilizado há um “nó” responsável por extrair informações relevantes do evento de Fatura Paga recebido pela plataforma Vindi.
Nele as seguintes informações foram extraídas:

  • acao: Este campo indica o tipo de evento que ocorreu. No contexto de uma fatura paga, o tipo de evento geralmente seria algo como “fatura paga” ou “pagamento confirmado”.
    • Campo: {{ $json.body.event.type }}
  • status: Refere-se ao status atual da fatura. Para uma fatura paga, o status seria “pago” ou algo similar, indicando que o pagamento foi processado com sucesso.
    • Campo: {{ $json.body.event.data.bill.status }}
  • customer_email: Este é o e-mail do cliente associado à fatura. É usado para identificar ou contatar o cliente em relação ao pagamento.
    • Campo: {{ $json.body.event.data.bill.customer.email }}
  • customer_name: O nome do cliente que realizou a compra ou está associado à fatura. Ajuda a identificar o cliente de forma mais pessoal.
    • Campo: {{ $json.body.event.data.bill.customer.name }}
  • product_id: O identificador único do produto que foi adquirido. Isso é útil para rastrear o produto específico dentro do sistema.
    • Campo: {{ $json.body.event.data.bill.bill_items[0].product.id }}
  • product_name: O nome do produto que foi comprado. Fornece uma descrição clara do que o cliente adquiriu.
    • Campo: {{ $json.body.event.data.bill.bill_items[0].product.name }}
  • price: O valor cobrado pelo produto ou serviço. Este é o montante que foi pago pelo cliente.
    • Campo: {{ $json.body.event.data.bill.bill_items[0].amount }}
  • payment_method: O método de pagamento utilizado pelo cliente, como cartão de crédito, boleto bancário, etc. Isso ajuda a entender como o pagamento foi realizado.
    • Campo: {{ $json.body.event.data.bill.charges[0].payment_method.name }}

Caso deseje outra informação, segue um exemplo completo de payload recebido pela plataforma:

{

"event": {

"type": "bill_paid",

"created_at": "2025-02-28T10:30:56.083-03:00",

"data": {

"bill": {

"id": 15627744,

"code": null,

"amount": "149.9",

"installments": 1,

"status": "paid",

"seen_at": null,

"billing_at": null,

"due_at": "2025-03-03T23:59:59.000-03:00",

"url": "https://sandbox-app.vindi.com.br/customer/bills/1?token=1",

"created_at": "2025-02-28T10:30:41.000-03:00",

"updated_at": "2025-02-28T10:30:55.000-03:00",

"bill_items": [

{

"id": 24949199,

"amount": "59.9",

"quantity": null,

"pricing_range_id": null,

"description": "",

"pricing_schema": null,

"product": {

"id": 1,

"name": "Produto de Teste",

"code": "78900000001"

},

"product_item": null,

"discount": null

}

],

"charges": [

{

"id": 15027244,

"amount": "59.9",

"status": "paid",

"due_at": "2025-03-03T23:59:59.000-03:00",

"paid_at": "2025-02-28T00:00:00.000-03:00",

"installments": 1,

"attempt_count": 0,

"next_attempt": null,

"print_url": null,

"created_at": "2025-02-28T10:30:41.000-03:00",

"updated_at": "2025-02-28T10:30:55.000-03:00",

"last_transaction": {

"id": 18219130,

"transaction_type": "charge",

"status": "success",

"amount": "59.9",

"installments": null,

"gateway_message": null,

"gateway_response_code": null,

"gateway_authorization": "",

"gateway_transaction_id": null,

"gateway_response_fields": null,

"fraud_detector_score": null,

"fraud_detector_status": null,

"fraud_detector_id": null,

"created_at": "2025-02-28T10:30:55.000-03:00",

"gateway": null,

"payment_profile": null

},

"payment_method": {

"id": 11518,

"public_name": "Dinheiro",

"name": "Dinheiro",

"code": "cash",

"type": "PaymentMethod::Cash"

}

}

],

"bill_affiliates": [],

"customer": {

"id": 2171363,

"name": "Teste Marcelo",

"email": "marcelo@alemdoscript.com.br",

"code": null

},

"period": null,

"subscription": null,

"metadata": {},

"payment_profile": null,

"payment_condition": null

}

}

}

}

Montando a mensagem desejada

No “nó” disponibilizado “formatacao” está montando uma mensagem utilizando os campos extraídos na etapa anterior.

Notificação de novo pagamento na plataforma

Usuário: {{ $json.customer_name }} - {{ $json.customer_email }}
Produto: {{ $json.product_id }} - {{ $json.product_name }}
Valor:   {{ $json.price }}

Fique a vontade para realizar alterações nessa mensagem.

Enviando a mensagem via e-mail

Para realizar o envio de e-mail para o cliente, utilizamos o componente Brevo. Inserimos as credenciais do Brevo adicionando a API_KEY nas credenciais do componente.

Para enviarmos a mensagem precisaremos informar:

  • Subject: É o título que queremos que seja exibido no e-mail
  • Text Content: É o conteúdo da mensagem a ser enviada. Caso queria enviar algo customizado em formato HTML, escolha a opção “Send HTML”, já para envio de textos simples mantenha essa opção desabilitada.
  • Sender: Quem enviará o e-mail, tem que ser um e-mail cadastrado na plataforma Brevo.
  • Receipients: Quem receberá o e-mail, adicione aqui a quem você deseja enviar o e-mail.

Enviando a mensagem via Discord

Em nosso fluxo, na caixinha “Discord” é possível enviar mensagens para um canal específico no Discord usando um webhook. Com isso a cada fatura paga, você conseguirá extrair as informações e montar uma mensagem que será enviada para um canal do Discord.

Neste canal um grupo de pessoas pode ter acesso e visualizar as notificações recebidas.
Se você possui dúvidas de como integrar seu Discord com o N8N, veja o post abaixo:
https://alemdoscript.com.br/automacoes/discord/2025/notificacoes-utilizando-a-ferramenta-discord/

Com essas configurações, o nó “notifica_discord” oferece uma maneira flexível e poderosa de manter seu canal do Discord atualizado com informações importantes sobre pagamentos.

Fluxo para Download

Disponibilizamos abaixo o fluxo N8N para download, ele pode ser facilmente importado na sua aplicação.
Basta entrar em um novo fluxo do N8N selecionar “…”, escolher “Importar de arquivo” e selecionar o arquivo que você baixou.
Lembre-se de inserir as credenciais corretamente para que o fluxo funcione conforme esperado.