- o Payment Link é um molde público e reutilizável de uma oferta;
- a Checkout Session representa uma compra específica, com itens, valores, descontos, dados do comprador, prazo e resultado próprios.
Comparação completa
A escolha não depende de ser pagamento avulso ou assinatura. Os dois podem
vender itens únicos ou recorrentes. O que muda é se a oferta deve ser
reutilizável ou se cada tentativa precisa ser individualizada.
O que é um Payment Link
Um Payment Link é uma URL pública que guarda a configuração de uma oferta. Você define os itens, o desconto automático, o comportamento de coleta, o repasse de tarifa quando aplicável, as URLs de retorno e ometadata. Enquanto o link
estiver ativo, você pode compartilhá-lo quantas vezes quiser.
Ele funciona como um molde:
1
Você configura a oferta uma vez
Crie o link pelo Dashboard ou com
POST /v1/payment-links. A resposta traz
a URL pública no campo url.2
Você compartilha a mesma URL
Publique em uma landing page, bio de rede social, mensagem, e-mail, QR code
ou botão de compra.
3
Cada acesso cria uma Checkout Session
A Chargefy copia a configuração vigente do link para uma sessão nova, com
identidade, prazo e estados próprios.
4
Cada comprador segue um ciclo independente
Uma pessoa pode pagar, outra abandonar e uma terceira tentar mais tarde sem
que uma sessão altere as demais ou o próprio link.
O que fica no link
O link mantém a configuração que deve ser repetida nas compras futuras:line_items, com preço de catálogo ou valor ad-hoc;discount, quando todas as sessões devem começar com o mesmo desconto;has_surcharge, para repasse de tarifa em cobrança avulsa;payment_method_collectionesubscription_data, em ofertas recorrentes;success_urlecancel_url;metadata, copiado para cada sessão criada;label, usado internamente para identificar o link;is_active, que controla se novos acessos ainda podem gerar sessões.
O que não fica no link
Um Payment Link não representa:- um comprador específico;
- um pedido individual do seu sistema;
- uma tentativa de pagamento;
- um status
paidouunpaid; - uma confirmação de que produto ou acesso pode ser liberado.
O que acontece quando o link é editado
Editar itens, desconto, URLs oumetadata muda o molde para os próximos
acessos. Sessões que já foram criadas preservam o snapshot que receberam e não
são reescritas.
Se o link for desativado, ele deixa de criar sessões novas. As sessões já
materializadas continuam com seu próprio ciclo até concluir ou expirar. Isso
preserva o histórico de compradores que já iniciaram o checkout.
Quando usar Payment Link
Use quando a resposta para estas perguntas for “sim”:- muitas pessoas podem comprar a mesma oferta;
- a URL precisa continuar válida por tempo indeterminado;
- a compra começa fora do seu produto, como em mensagem, campanha ou QR code;
- você quer começar sem implementar uma rota no backend para cada clique;
- os itens, o desconto e o destino após a compra podem ser compartilhados;
- a identidade do comprador pode ser coletada no próprio checkout.
- um plano mensal divulgado na bio de uma rede social;
- uma consultoria avulsa vendida por mensagem;
- um ingresso de valor fixo divulgado por QR code;
- um botão “Comprar agora” para uma oferta única em uma landing page;
- uma campanha de e-mail em que todos recebem a mesma oferta.
Quando não usar Payment Link
Não use como atalho para uma venda que já tem identidade própria. Prefira uma Checkout Session quando:- cada comprador tem carrinho, preço, cupom ou prazo diferente;
- sua aplicação já criou um pedido e precisa ligar a tentativa a ele;
- você precisa travar a sessão em um customer existente;
- as URLs de retorno mudam por pedido;
- seu backend precisa enviar atribuição de marketing antes de abrir a página;
- a compra exige
invoice_creationem pagamento avulso; - o navegador precisa operar a sessão pelo
client_secret.
O que é uma Checkout Session
Uma Checkout Session é o contexto de uma única tentativa de compra. Ela reúne os itens, o total, o comprador conhecido ou pré-preenchido, as URLs de retorno, o prazo e os estados daquela tentativa. Ela pode nascer de duas formas:- seu backend envia
POST /v1/checkout-sessionspara criar uma compra individualizada; - um comprador abre um Payment Link e a Chargefy materializa a sessão automaticamente.
Ciclo de vida da sessão
1
A sessão nasce aberta
Ela recebe
status: "open", uma url, um client_secret e um expires_at
24 horas depois da criação.2
O comprador abre o checkout
A Chargefy apresenta itens, total, dados necessários e métodos habilitados
na organização.
3
O comprador confirma
A sessão passa para
complete. Em cartão, o pagamento normalmente é
resolvido na hora; em PIX ou boleto, a compensação pode acontecer depois.4
Seu backend acompanha o resultado
Webhooks informam quando a tentativa foi concluída, expirou ou teve o
pagamento assíncrono confirmado.
expired. Uma
sessão concluída ou expirada é terminal: ela não volta para open. Para uma
nova tentativa, crie outra sessão ou deixe o comprador abrir novamente o
Payment Link de origem.
Dois estados que não devem ser confundidos
A sessão separa a conclusão do formulário do resultado financeiro:
Uma sessão de PIX ou boleto pode estar
complete e unpaid: o comprador já
recebeu as instruções, mas o dinheiro ainda não compensou. Libere o produto
somente depois do webhook de pagamento confirmado.
O que você consegue individualizar
Ao criar diretamente pela API, cada sessão pode receber:- itens e quantidades daquele carrinho;
- preço de catálogo ou preço ad-hoc;
- customer existente ou dados de pré-preenchimento;
- desconto, URLs de retorno e
metadatado pedido; - atribuição de marketing já conhecida pelo backend;
- comportamento de assinatura e trial;
- criação de invoice para uma venda avulsa, quando aplicável;
- tipo semântico do botão, como pagar, assinar, reservar ou doar.
metadata é o caminho recomendado para correlacionar a sessão ao seu pedido.
Ele é ecoado nos webhooks da sessão, permitindo que seu backend encontre o
registro correto sem interpretar IDs internos da Chargefy.
url e client_secret
A criação direta devolve dois caminhos para o navegador:
Quando usar Checkout Session
Use quando a resposta para qualquer uma destas perguntas for “sim”:- existe um pedido, carrinho, orçamento ou reserva no seu sistema;
- itens, quantidades ou valores mudam por comprador;
- você precisa evitar duplicidade com uma chave de idempotência;
- a sessão precisa ficar vinculada a um customer conhecido;
- o retorno deve levar para uma página específica daquele pedido;
- você precisa enviar um identificador próprio em
metadata; - seu backend decide o momento exato em que a tentativa deve nascer;
- seu frontend usa o
client_secretpara operar a experiência; - você precisa expirar uma tentativa aberta antes das 24 horas.
- checkout de e-commerce com carrinho dinâmico;
- upgrade de plano calculado para uma conta específica;
- reserva com preço, datas e adicionais próprios;
- orçamento B2B aprovado e convertido em cobrança;
- pedido criado no seu sistema antes do redirecionamento;
- assinatura com trial ou prazo definido para aquele contrato.
Quando não usar Checkout Session direta
Criar uma sessão por API adiciona uma etapa de backend. Evite esse trabalho quando você só precisa divulgar uma oferta fixa para muitas pessoas. Nesse caso, o Payment Link já cria uma sessão independente por acesso e continua oferecendo o mesmo checkout, webhooks e rastreabilidade da tentativa.O que os dois têm em comum
Payment Link e Checkout Session compartilham várias capacidades. Portanto, estas características não devem decidir sozinhas entre eles:- pagamento avulso ou assinatura;
- preço de catálogo ou preço ad-hoc;
- cartão, PIX e boleto, conforme a configuração da organização;
- desconto pré-aplicado;
- repasse de tarifa em cobrança avulsa;
- ajuste de quantidade dentro de uma faixa configurada;
- checkout hospedado com a identidade da organização;
- captura de UTMs e identificadores de clique pela URL;
- acompanhamento do resultado por webhooks.
Como decidir
Siga esta ordem:- A oferta será compartilhada pela mesma URL? Use Payment Link.
- Já existe um pedido no seu sistema? Crie uma Checkout Session e grave o
ID do pedido em
metadata. - Itens, comprador ou retorno mudam por tentativa? Use Checkout Session.
- Você não quer manter um endpoint para iniciar cada compra? Use Payment Link.
- Ainda está em dúvida? Comece pela Checkout Session se o seu produto já possui backend e pedidos; ela preserva a relação um-para-um desde o início.
Exemplo mínimo de cada caminho
Criar um Payment Link uma vez
url retornado. Não crie outro link para cada
comprador; cada acesso já materializa uma Checkout Session independente.
Criar uma Checkout Session por pedido
url. A Idempotency-Key evita sessões duplicadas em
retries da mesma operação.
Acompanhar o resultado corretamente
Em ambos os caminhos, o Payment Link só inicia a jornada. O resultado confiável vive na sessão e nos objetos financeiros relacionados.Erros de modelagem comuns
Usar um Payment Link como ID de pedido
Usar um Payment Link como ID de pedido
Um link pode originar muitas sessões. Ele identifica a oferta, não uma venda
individual. Correlacione o pedido com a Checkout Session correspondente.
Criar um Payment Link novo para cada comprador
Criar um Payment Link novo para cada comprador
Se cada link só será usado uma vez, você está recriando manualmente o papel
da Checkout Session e acumulando links administrativos sem necessidade.
Reaproveitar uma Checkout Session concluída
Reaproveitar uma Checkout Session concluída
complete e expired são estados terminais. Uma nova tentativa exige uma
nova sessão.Liberar o pedido quando o checkout redireciona
Liberar o pedido quando o checkout redireciona
O comprador pode fechar a página, repetir a navegação ou usar um método
assíncrono. O webhook é a fonte confiável do resultado.
Escolher pelo tipo de cobrança
Escolher pelo tipo de cobrança
Tanto Payment Link quanto Checkout Session aceitam venda avulsa e
assinatura. Escolha pela reutilização da oferta e pela individualização do
pedido.
Próximos passos
Entender Payment Links
Veja configuração, atualização, desativação, metadata e atribuição.
Entender Checkout Sessions
Veja estados, expiração, customer, métodos, confirmação e webhooks.
Criar um Payment Link
Consulte o contrato completo e as variantes de
line_items.Criar uma Checkout Session
Consulte todos os campos para individualizar uma tentativa.

