Skip to main content
Um funil de upsell aproveita o melhor momento de venda que existe: o segundo seguinte à compra aprovada. Em vez de mandar o comprador direto para a página de obrigado, um funil de upsell pode levar o comprador para uma página sua com uma nova oferta. Se houver um cartão salvo, o aceite tenta cobrar com um clique. Se não houver — ou se essa cobrança for recusada — a Chargefy abre um checkout compacto com cartão e Pix, já preenchido com os dados conhecidos do comprador. Você monta a sequência num canvas: cada etapa é uma oferta, e cada oferta tem duas saídas — o que acontece se ele aceitar e o que acontece se ele recusar. Aceitou o upsell? Talvez venha um segundo produto. Recusou? Talvez venha uma versão mais barata. A sequência é sua.
Canvas real de um funil ativo com o link de pagamento de entrada e duas ofertas conectadas pelo caminho Sim

No canvas, cada card representa uma oferta. As saídas "Sim" e "Não" conectam a próxima etapa do percurso.

A página da oferta é sua, os botões são nossos.A Chargefy não hospeda a página de upsell. Você cria e publica a página da oferta no seu próprio site, com total controle sobre o conteúdo, o layout e a identidade visual. A Chargefy insere apenas os dois botões de decisão — “quero” e “não quero” — nos pontos que você definir.

O que precisa acontecer para o comprador entrar no funil

O funil é armado no instante em que o pagamento é aprovado. Todas as condições abaixo precisam valer ao mesmo tempo: Faltou alguma? O comprador simplesmente segue o caminho normal do checkout — a success_url do link. Nenhum problema no funil derruba, atrasa ou desfaz a venda que já foi aprovada. O funil é sempre um extra em cima de uma compra que já deu certo.

A jornada do comprador

1

Ele paga no checkout

Compra normal no seu payment link, com cartão ou Pix confirmado.
2

A Chargefy o leva para a página da primeira oferta

Em vez da success_url, ele cai na página que você definiu na etapa de entrada, levando uma chave de acesso na URL. É ela que diz quem é ele e qual oferta ele está vendo.
3

Ele decide

Um clique em “quero” tenta o cartão salvo, quando ele existe. Sem cartão ou depois de uma recusa definitiva, abre um modal para escolher Pix ou cartão. Um clique em “não quero” registra a recusa e segue o caminho configurado.
4

A decisão leva à próxima etapa

Cada saída (“sim” e “não”) aponta para outra etapa ou encerra o funil. Se aponta para outra etapa, a Chargefy leva o comprador para a página dela, com a chave de acesso atualizada.
5

O funil termina

Na última etapa, o comprador vai para o endereço final que você configurou no botão — normalmente a sua página de obrigado ou a área de membros.
No Pix da compra inicial, mantenha a página do checkout aberta. Assim que o pagamento for confirmado, ela leva o comprador para a primeira oferta. Se o comprador fechar a página antes da confirmação, não há recuperação automática desse acesso ao funil.
A success_url do link não é o fim do funilQuando o funil arma, ele assume o pós-pagamento inteiro. O destino final é o que você colocar no atributo complete-url dos botões da última etapa. Sem ele, o comprador fica na própria página da oferta e vê um aviso de compra confirmada — o que funciona, mas quase nunca é o que você quer.

Anatomia de uma etapa

Cada etapa do funil junta cinco coisas: E duas saídas: sim e não. Cada uma aponta para outra etapa ou fica vazia, encerrando o funil ali.
Editor real de uma etapa do funil com URL da página, oferta, textos de aceite e recusa e prévia dos botões

Ao selecionar uma etapa, você configura a URL da oferta, o preço do catálogo e o texto dos dois botões enquanto acompanha o resultado no próprio canvas.

A oferta é sempre um preço avulso do seu catálogo — não um valor digitado à mão. Isso mantém relatório, produto e conciliação consistentes com o resto da operação. O preço precisa estar ativo, no mesmo ambiente do funil e valer no mínimo R$ 5,00.

Instalar os botões na sua página

A página da oferta é uma página comum do seu site. Você só marca onde os dois botões entram.
Mockup de uma página de oferta com imagem do produto, texto de venda, preço e os botões Sim, quero adicionar à compra e Não, obrigado

Exemplo de uma página de oferta: o conteúdo e o layout são seus; a Chargefy renderiza apenas os dois botões de decisão.

Carregue a biblioteca uma vez, no <head>:
E marque os dois lugares onde os botões devem aparecer:
O atributo complete-url é opcional e só entra em ação quando aquela decisão encerra o funil. Enquanto houver próxima etapa, quem manda é o funil — a Chargefy leva o comprador para a página seguinte e ignora o complete-url.
O código é igual em todas as etapasVocê não muda uma linha entre a etapa 1 e a etapa 3. Quem decide qual oferta aparece é a chave de acesso que vem na URL, resolvida no servidor da Chargefy — não o HTML da página. Uma etapa nova só precisa de uma página nova com o mesmo trecho colado.

A identidade visual vem da sua marca

Cor, fonte e formato de canto dos botões seguem a identidade da sua organização — a mesma que veste o seu checkout. Não há ajuste por página nem por etapa, de propósito: o comprador acabou de pagar numa tela sua e precisa reconhecer o botão como parte da mesma experiência. Ajuste a identidade em Configurações → Checkout no dashboard, no mesmo lugar do Checkout Builder.
Comparação dos botões de upsell em três identidades visuais: tema claro com cantos arredondados, tema escuro com formato pill e tema claro editorial com cantos retos

A mesma integração acompanha a cor, a tipografia, o formato dos cantos e o tema definidos para o checkout.

O que muda por etapa é só o texto de cada botão, porque cada oferta merece o próprio convite.

Duração da sessão

A sessão do funil começa quando a compra inicial é aprovada e dura 30 minutos. Durante esse período, a chave de acesso na URL identifica o comprador, a etapa atual e a oferta que ele pode aceitar. Sem uma chave de acesso válida, os botões não aparecem. Isso acontece quando alguém abre a página sem ter vindo de uma compra aprovada, quando a sessão vence ou quando o funil já terminou. A página continua funcionando normalmente, mas sem permitir a cobrança de uma oferta. A chave de acesso vale para uma única sequência. Depois de 30 minutos, a sessão expira, os botões somem e a chave não pode ser reutilizada.
A chave de acesso não expõe número, código de segurança, token ou dados cadastrais. Quando o funil precisa pedir outra forma de pagamento, o Chargefy.js abre uma página hospedada pela Chargefy: centralizada no desktop e em tela cheia no celular. Sua página recebe apenas os estados necessários, como pagamento concluído ou modal fechado.

Cada “sim” é uma cobrança independente

Aceitar uma oferta não aumenta o valor da compra original. A Chargefy cria uma cobrança nova, separada: Na prática: no extrato e nos relatórios, cada oferta aceita aparece como uma venda própria, na hora em que aconteceu. Sua automação de entrega não precisa de tratamento especial — ela reage ao mesmo evento de sempre.

Quando o clique não consegue cobrar

O texto do botão continua exatamente como você escreveu. O comportamento é que se adapta: No Pix, o QR Code é gerado na hora. Fechar e reabrir o modal mostra o mesmo QR Code enquanto ele estiver válido. Depois que vencer, o comprador pode gerar outro no mesmo checkout. Enquanto um Pix está pendente, a tentativa fica nele; o comprador não inicia uma cobrança paralela no cartão. No cartão, nome, documento, telefone e endereço conhecidos aparecem preenchidos, mas continuam editáveis. Número do cartão e código de segurança nunca são reaproveitados no formulário. Se esse novo cartão for aprovado e salvo, ele passa a ser o cartão de um clique das ofertas seguintes.
Modal de pagamento de uma oferta com abas para cartão e Pix e dados cadastrais do comprador já preenchidos

Sem cartão salvo, o checkout assistido já abre com os dados conhecidos do comprador. Ele pode corrigir qualquer campo antes de pagar.

Modal de pagamento de uma oferta exibindo um QR Code Pix com contador de validade

Ao escolher Pix, o QR Code nasce no mesmo modal. Fechar e reabrir preserva este código enquanto ele estiver válido.

A mesma oferta não é cobrada duas vezes

Cada etapa aceita uma decisão só. Clicar novamente, atualizar a página durante o processamento ou voltar pelo navegador não cria outra cobrança. A Chargefy mostra o resultado já registrado ou informa que a decisão ainda está sendo processada. Essa proteção é aplicada antes de a cobrança ser enviada ao banco.

Status do funil na lista

“Incompleto” existe porque ligar a chave não coloca um funil no ar. Sem link ativo ninguém entra, e sem etapa de entrada o checkout não tem para onde mandar o comprador. O status diz a verdade em vez de prometer um funil que não roda. Cada funil é disparado por um payment link, e cada link dá start em um funil. Você escolhe esse link na criação do funil e pode trocá-lo depois, nas configurações. Link e funil precisam estar no mesmo ambiente.
Canvas de um funil incompleto com o card inicial em vermelho, selo Sem link e botão Escolher link de pagamento

Se o funil estiver sem link de entrada, o primeiro card fica vermelho, explica o bloqueio e leva direto à configuração.

Trocar o link é reversível e vale a partir da próxima compra — quem já está andando pelo funil termina o percurso que começou. Remover o funil solta o link: ele volta à success_url normal. As cobranças já feitas e as métricas do período são preservadas.

Testar em sandbox

Funis funcionam em sandbox exatamente como em produção. Crie o funil no ambiente de teste escolhendo um payment link de teste e conclua a compra com cartão ou Pix. Para conferir o fallback, entre com Pix — ou use um cartão salvo que seja recusado na oferta — e aceite uma etapa. O modal permite gerar um novo Pix ou informar outro cartão sem pedir novamente o que a Chargefy já conhece. Cartões de teste e cenários em Sandbox.

Ler o estado do funil na sua página

Para uma página de oferta mais elaborada — mostrar o valor no título, o final do cartão, um contador — o Chargefy.js expõe o estado da chave de acesso atual:
A promessa é rejeitada quando não há chave de acesso válida na URL, o que também serve como teste de “essa visita veio de uma compra?”.
Os botões continuam sendo a forma suportada de cobrar e recusar. getState() serve para enfeitar a página em volta deles.

Limites

Próximos passos

Criar um Link de pagamento

O link que recebe a compra e arma o funil.

Chargefy.js

Referência do script que renderiza os botões da oferta.

Produtos, preços e descontos

Modele o catálogo que alimenta as ofertas das etapas.

Entrega de webhooks

Reaja a cada upsell aprovado para liberar o produto.