Skip to main content
O Boleto Bancário continua sendo um dos métodos de pagamento mais utilizados no Brasil, especialmente em transacoes B2B e por clientes que nao possuem cartao de credito. Este guia cobre o fluxo completo: desde a criacao do checkout ate a confirmacao do pagamento via webhook.

Visao geral do fluxo

1

Criar sessao de checkout

Seu backend cria uma sessao de checkout via API, informando o produto e o email do cliente.
2

Confirmar com metodo boleto

A sessao e confirmada com payment_method: 'boleto' e uma due_date (data de vencimento).
3

Receber dados do boleto

A Chargefy retorna o codigo de barras, a linha digitavel e a URL do PDF do boleto.
4

Exibir boleto ao cliente

Seu frontend exibe a linha digitavel com botao de copiar e o link para o PDF.
5

Aguardar compensacao

O cliente paga o boleto em qualquer banco, loterica ou app bancario. A compensacao leva de 1 a 3 dias uteis.
6

Receber webhook de confirmacao

Quando o pagamento e compensado, a Chargefy dispara o webhook checkout.updated para seu endpoint.

Pre-requisitos

Configure o token de acesso:
.env
Nunca commite o arquivo .env no repositorio. Adicione-o ao .gitignore.

Passo 1: Criar sessao de checkout

Crie uma sessao de checkout informando o produto e o email do cliente.

Com SDK

Com cURL

A resposta inclui o id e o client_secret necessarios para confirmar o pagamento.

Passo 2: Confirmar com metodo boleto

Confirme a sessao de checkout escolhendo boleto como metodo de pagamento. O parametro due_date define a data de vencimento do boleto.

Com SDK

Com cURL

Resposta

O campo amount esta em centavos. O valor 15000 corresponde a R$ 150,00.

Passo 3: Obter dados do boleto

A resposta da confirmacao inclui todos os dados necessarios para exibir o boleto ao cliente:
Armazene o boleto_pdf_url e a boleto_digitable_line no seu banco de dados para que o cliente possa acessar novamente caso feche a pagina.

Passo 4: Exibir boleto ao cliente

Crie um componente React que exibe a linha digitavel com botao de copiar e o link para o PDF.

Uso do componente


Passo 5: Aguardar compensacao do pagamento

Diferente do PIX (instantaneo) e do cartao de credito, o boleto tem compensacao assincrona de 1 a 3 dias uteis. A abordagem recomendada e via webhooks.

Configurar webhook

Configure um endpoint de webhook no dashboard da Chargefy para receber os eventos:
  • checkout.updated — status do checkout muda
  • subscription.active — pagamento confirmado (compensado)

Implementacao do webhook handler

Responda ao webhook com status 200 o mais rapido possivel. Processe logica pesada (emails, integracoes) de forma assincrona usando filas como BullMQ.

Fluxo de status do checkout com boleto


Passo 6: Tratar vencimento e cancelamento

Boletos vencidos nao podem mais ser pagos. Implemente logica para lidar com essa situacao.

Verificar status do checkout

Gerar novo boleto apos vencimento

Quando um boleto vence, crie uma nova sessao de checkout para o mesmo cliente:
Nao tente reutilizar um checkout com status expired. Sempre crie uma nova sessao de checkout.

Exemplo completo

Rota Express para checkout com boleto

src/routes/boleto-checkout.ts

Pagina React completa

src/pages/BoletoCheckoutPage.tsx

Testar com cURL


Boas praticas para data de vencimento

A data de vencimento (due_date) e um dos parametros mais importantes ao gerar um boleto. Escolher mal pode resultar em boletos nao pagos ou cancelados.

Funcao utilitaria para calculo de vencimento

Para um calculo mais preciso em producao, considere integrar uma biblioteca de feriados brasileiros como brasil-feriados para pular feriados nacionais e estaduais.

Testando no sandbox

O ambiente de sandbox da Chargefy permite testar o fluxo completo de boleto sem movimentar dinheiro real.

Configurar ambiente sandbox

Simular pagamento de boleto

No sandbox, voce pode simular a compensacao de um boleto via API:
Isso dispara o fluxo completo de compensacao, incluindo o webhook checkout.updated, permitindo testar seu handler sem esperar dias.

CPFs de teste

Use estes CPFs no sandbox para diferentes cenarios:
Use o endpoint de webhooks de teste no dashboard para reenviar eventos e depurar seu handler.

Problemas comuns e solucao

Erro: “due_date must be at least 1 business day in the future”

A data de vencimento e hoje ou uma data passada. Use a funcao calcularVencimentoBoleto() para garantir uma data valida.

Erro: “invalid tax_id format”

O CPF ou CNPJ esta em formato invalido. Aceite ambos os formatos (com e sem pontuacao) e normalize antes de enviar:

Boleto gerado mas webhook nao chega

  1. Verifique se o endpoint de webhook esta configurado no dashboard
  2. Confirme que seu servidor responde com status 200 dentro de 30 segundos
  3. Verifique os logs de entrega em Webhooks > Delivery
  4. No sandbox, use o endpoint de teste para simular a compensacao

Boleto pago mas status nao atualiza

A compensacao bancaria leva de 1 a 3 dias uteis. Nao e instantanea. Se apos 3 dias uteis o status nao atualizar:
  1. Verifique o status diretamente via API
  2. Consulte os logs de webhook no dashboard
  3. Entre em contato com o suporte

Cliente nao consegue pagar o boleto

  • Verifique se o boleto nao venceu
  • Confirme que a linha digitavel esta completa (sem caracteres cortados)
  • Sugira ao cliente baixar o PDF e pagar por leitura de codigo de barras

Proximos passos

Checkout PIX

Guia completo do fluxo de pagamento PIX com confirmacao instantanea.

Webhooks

Documentacao completa de webhooks e todos os eventos disponiveis.

Metodos de Pagamento

Comparativo entre PIX, Cartao e Boleto.

Sandbox

Como testar pagamentos sem cobrar de verdade.