API de WhatsApp para fintechs e plataformas de cobrança

Para uma fintech, a API de WhatsApp é o canal em que o boleto é aberto e o PIX é pago, porque é onde o cliente já está. A integração em si é simples; o trabalho está em definir o que pode ir na mensagem, de qual número ela sai e quando a API oficial compensa.

Quando a mensagem carrega dinheiro

E-mail de cobrança cai no promocional e SMS com link parece golpe. O WhatsApp tem taxa de abertura maior justamente porque o cliente reconhece o remetente. Para quem desenvolve software de cobrança recorrente, conta digital para PJ ou gestão financeira de pequenas empresas, isso muda o indicador que importa: dias entre o vencimento e o pagamento.

O cenário típico do nosso cliente é uma plataforma em que cada empresa cadastrada cobra os próprios clientes. A escola cobra mensalidade, o condomínio cobra a taxa, o prestador de serviço cobra a fatura. A mensagem precisa sair do número daquela empresa, não de um número central da plataforma, e é isso que a conexão por cliente resolve.

Régua de cobrança no WhatsApp

Um desenho que funciona bem para a maioria das plataformas:

MomentoO que enviarComo
Fatura emitidaPDF do boleto com nome de arquivo legívelmessages/send/document
3 dias antes do vencimentoLembrete curto com valor e datamessages/send/text
Dia do vencimentoChave PIX com valor preenchidointeractive/send/pix
Pagamento confirmadoRecibo ou nota em PDFmessages/send/document
Atraso sem leituraSegundo aviso; sem leitura de novo, fila humanaWebhook message.read

A lógica de quando cobrar fica toda do seu lado. A API entrega e devolve o que aconteceu. Um aprofundamento sobre tom, frequência e régua está em cobrança pelo WhatsApp.

Boleto e PIX na mesma conversa

O exemplo abaixo envia o boleto e, em seguida, a chave PIX como alternativa. O sessionId é a conexão da empresa que está cobrando; o to é o pagador.

import { DApi } from 'd-api-sdk'

const dapi = new DApi({ apiKey: process.env.DAPI_KEY! })
const sessionId = 'empresa-7310'

await dapi.messages.sendDocument({
  sessionId,
  to: '5511999999999',
  document: 'https://arquivos.suaplataforma.com/boletos/fat-99812.pdf',
  fileName: 'Boleto-setembro.pdf',
  mimetype: 'application/pdf',
})

await dapi.interactive.sendPix({
  sessionId,
  to: '5511999999999',
  content: 'Prefere pagar agora? Use o PIX abaixo.',
  pixKey: '[email protected]',
  pixAmount: 189.9,
  pixMessage: 'Fatura 99812',
})

O documento pode ser uma URL pública ou base64. Se o boleto fica num bucket privado, gere uma URL assinada de curta duração só para o envio, em vez de deixar o arquivo exposto.

Dados sensíveis: checklist antes de ir para produção

  • Mínimo necessário na mensagem. Valor, vencimento e o nome da empresa. CPF completo, saldo e dados de cartão não entram no texto.
  • Telefone confirmado. Número errado significa boleto de alguém entregue a um estranho. Confirme o número no cadastro antes de liberar o envio de cobrança.
  • Webhook protegido. O webhook de WhatsApp não é assinado. Use uma URL com segredo no caminho, confira o User-Agent e valide se o sessionId pertence a um cliente ativo antes de processar.
  • Registro de envio. Guarde o id de cada mensagem enviada junto da fatura. Em uma contestação, você sabe o que foi enviado, quando e se foi lido.
  • Comprovantes com dono. Arquivos recebidos chegam com media_url. Copie para o seu armazenamento, associe ao cliente certo e aplique a mesma política de retenção dos outros documentos financeiros.

Não oficial, oficial ou as duas

Fintech costuma ter dois usos diferentes de WhatsApp, e cada um pede um modelo:

  • Os clientes da plataforma cobrando os clientes deles: cada empresa conecta o próprio número por QR Code, sem aprovação e sem custo por mensagem. É o caso da API não oficial.
  • A fintech falando com a própria base, com um número verificado da marca: aviso de transação, alerta de login, comunicação que precisa de selo e de previsibilidade. Aqui a API oficial faz mais sentido, com templates aprovados pela Meta e cobrança por mensagem de template, que varia por categoria e país.

Na D-API os dois tipos de conexão usam as mesmas rotas de envio. O tipo é escolhido ao criar a sessão (unofficial ou cloud_api), e a sua régua de cobrança não precisa saber qual está do outro lado. A diferença só aparece nos templates, que existem apenas na oficial. A comparação completa está em oficial vs não oficial.

Como começar

O roteiro mais curto que vemos em plataformas financeiras: primeiro o lembrete de vencimento por texto, depois o boleto em PDF, depois o PIX e por último o recebimento de comprovantes. Cada etapa entra em produção sozinha e já mostra resultado na inadimplência. Na API de WhatsApp da D-API, a cobrança é por conexão, não por mensagem, e cai conforme a base cresce. Para o desenho de produto com uma conexão por cliente, veja API de WhatsApp para SaaS. Dá para validar com 14 dias grátis falando com o time comercial, com suporte de implementação num grupo de WhatsApp.

Perguntas frequentes

Dá para mandar a chave PIX como mensagem interativa?

Dá. O endpoint interactive/send/pix envia uma mensagem interativa de PIX com a chave, o valor opcional e um texto de identificação, para o pagador não precisar digitar a chave.

É seguro mandar boleto pelo WhatsApp?

O risco maior está em mandar para o número errado ou expor dados demais no texto. Confirme o telefone no cadastro, envie só o necessário e registre cada envio com o identificador da mensagem.

Fintech precisa usar a API oficial da Meta?

Não é obrigatório, mas costuma fazer sentido quando a fintech fala com a base inteira a partir de um único número da marca, com alto volume de primeiro contato. Para plataformas em que cada cliente usa o próprio número, a não oficial por QR Code é o caminho mais comum.

Como saber se o cliente leu o lembrete de cobrança?

Pelos eventos message.delivered e message.read no webhook. Com eles a régua de cobrança decide se manda um segundo lembrete ou se passa o caso para um atendente.

O cliente pode mandar o comprovante pela mesma conversa?

Pode. A imagem ou o PDF chegam no webhook messages.received com o link do arquivo em media_url, e a plataforma anexa o comprovante à fatura correspondente para conferência.

Coloque WhatsApp no seu produto sem virar time de infra

14 dias grátis falando com o time comercial, com suporte de implementação num grupo de WhatsApp.