Skip to main content
Crie uma Checkout Session no seu backend quando cada pedido precisar nascer com itens, valores, comprador ou regras próprias. A resposta entrega uma url temporária: redirecione o comprador e deixe a Chargefy cuidar da página, da coleta dos dados e da confirmação do método escolhido. Este guia cobre o fluxo hospedado. Você não precisa instalar um SDK para começar; qualquer cliente HTTP pode chamar a API.

O que você vai implementar

Página de checkout hospedada pela Chargefy com resumo do pedido e formulário de pagamento

A URL da sessão abre uma página hospedada pronta para cartão, Pix ou boleto.

Antes de começar

Você precisa de:
  1. uma organização Chargefy; para confirmar pagamentos no ambiente live, o cadastro financeiro precisa estar ativo;
  2. uma API key do ambiente de teste, criada em Developers → Chaves de API;
  3. uma rota no seu backend para criar a sessão;
  4. um endpoint HTTPS para receber webhooks antes de liberar o pedido.
A API key é uma credencial de servidor. Nunca a coloque no JavaScript enviado ao navegador, em uma URL ou no aplicativo do comprador.

1. Crie a sessão no backend

O menor request possível envia apenas line_items. Este exemplo usa um preço já cadastrado no catálogo:
Use uma Idempotency-Key estável por pedido. Se o seu backend repetir a mesma chamada por timeout ou retry, a Chargefy devolve o mesmo resultado em vez de criar duas sessões para a mesma ação. A resposta contém o objeto completo. Para o redirect, os campos mais importantes são:
mode, totais, expires_at, client_secret e url são calculados pela Chargefy. Não os envie no request.

2. Escolha como descrever os itens

Cada item aceita exatamente uma das três variantes abaixo. Em todas elas, quantity é opcional e começa em 1. Use quando produto, valor e recorrência já estiverem cadastrados. É o payload mais curto e mantém a oferta centralizada no catálogo.

b. Produto do catálogo com preço ad-hoc

Use quando o produto já existe, mas o valor vale apenas para essa compra. A Chargefy reutiliza o nome e a descrição do produto sem criar outro Price.

c. Produto e preço ad-hoc

Use quando o seu sistema é a fonte do catálogo. Produto e preço vivem somente na sessão e não são persistidos como recursos reutilizáveis.

Regras de line_items

  • envie exatamente um entre price_id e price_data em cada item;
  • com price_data, envie exatamente um entre product_id e product_data;
  • todos os itens precisam usar a mesma moeda;
  • todos precisam ser avulsos ou todos recorrentes;
  • quantity deve ser um inteiro maior ou igual a 1;
  • unit_amount usa centavos: 12990 representa R$ 129,90.

3. Personalize a tentativa de compra

Os parâmetros abaixo pertencem à sessão e podem mudar em cada pedido:

Exemplo de compra avulsa personalizada

Este request fixa um Customer, aplica desconto, permite alterar a quantidade, repassa a tarifa e cria uma invoice depois do pagamento:
O placeholder {CHECKOUT_SESSION_ID} é substituído pelo cs_* da sessão antes do redirect. Use o ID para mostrar o estado atual, mas não para liberar o pedido sem webhook.

Atribuição de marketing

Quando seu backend já recebeu a campanha, envie um snapshot tipado. A primeira captura válida permanece associada à sessão; uma abertura posterior não a substitui.
Envie esse objeto em marketing_attribution. Se a campanha chegar na própria URL hospedada, a Chargefy também pode capturar UTMs e identificadores de clique no primeiro carregamento.
metadata serve para valores livres do seu sistema. Dados com significado próprio na Chargefy — como desconto, Customer, atribuição e URLs — devem usar seus parâmetros tipados.

4. Crie pagamentos recorrentes

O mode é derivado dos itens. Um Price recorrente ou price_data.recurring cria uma sessão subscription; você não envia mode.
payment_method_collection e subscription_data só são aceitos em sessões recorrentes. has_surcharge só é aceito em sessões avulsas.

5. Entenda o que vem do Checkout Builder

A aparência e a política da página não fazem parte do request. A página usa a configuração atual da organização quando o comprador abre a url. Use Configurar sua página de checkout para alterar essas regras uma vez, sem repetir configuração em cada sessão.

6. Redirecione o comprador

O botão do seu site chama uma rota do seu backend. Essa rota cria a sessão e devolve somente a URL necessária para abrir o checkout:
Não crie a sessão diretamente no browser. Além de expor sua API key, isso tira do backend o controle de preço, desconto, Customer e idempotência.

7. Prepare retorno e webhooks

success_url melhora a experiência do comprador, mas não confirma o dinheiro. Pix e boleto podem concluir o formulário e continuar unpaid até a compensação. No seu endpoint de webhook:
  1. verifique a assinatura usando o corpo bruto;
  2. deduplique pelo event.id;
  3. confirme data.object.payment_status;
  4. relacione a sessão ao pedido com seu metadata;
  5. execute entrega ou ativação de forma idempotente;
  6. responda 2xx rapidamente e processe trabalho demorado fora da resposta.
Veja Após receber com um Checkout para montar a página de retorno e Entregar pedidos para tratar reenvios sem duplicar efeitos.

8. Use Chargefy for Platforms quando aplicável

Esta seção só se aplica a contas com o produto Chargefy for Platforms habilitado. Nesse produto, uma plataforma opera pagamentos para suas organizações filhas.
Use a API key da plataforma e envie o header Organization com a organização filha que receberá o pagamento. Prices, Products, Customers e descontos usados na sessão também precisam pertencer a ela.
Uma API key comum de organização não envia esse header: ela atua somente na própria organização.

9. Teste antes de publicar

Crie a sessão com uma API key do ambiente de teste, abra a url retornada e use dados do Sandbox. Para Pix e boleto, use os e-mails determinísticos documentados no sandbox e teste tanto confirmação imediata quanto resultado atrasado. Seu fluxo está pronto quando o mesmo cs_* aparece na página de retorno, na consulta da API e no webhook processado pelo backend.

Erros comuns

Consulte Criar uma sessão de checkout para o contrato completo de todos os parâmetros e respostas de erro.

Próximos passos

Entender Checkout Sessions

Veja origens, responsabilidades, estados e limites do objeto.

Configurar a página

Configure identidade, métodos, campos obrigatórios e parcelamento.

Após receber com um Checkout

Conecte a página de retorno aos webhooks e ao fulfillment.

Referência da API

Consulte o schema exato do POST /v1/checkout-sessions.