Uma checkout session é uma tentativa única de pagamento. A Chargefy devolveDocumentation Index
Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
Use this file to discover all available pages before exploring further.
url (página hospedada onde o cliente paga) e client_secret (lido pelo browser do comprador na hosted page). Uma session = 1 cliente, 1 tentativa, expira em 24h.
Diferente de um payment link (URL pública reutilizável) — a session nasce ligada a um buying attempt específico.
Autenticação
HeaderAuthorization: Bearer {{API_KEY}}. Escopo necessário: write.
| Tipo de chave | Header Organization | Em nome de quem cria |
|---|---|---|
| Organization API key | proibido | a própria org dona da chave |
Platform API key (platform_admin) | obrigatório | a sub-org indicada no header (deve ser ativa sob a platform) |
Corpo
Array não-vazio de itens. Cada item descreve um produto/preço cobrado nessa sessão. Aceita três formas — veja Três variantes.
URL pra onde a Chargefy redireciona o cliente após pagamento confirmado.
URL pra onde a Chargefy redireciona se o cliente abandonar a sessão (botão “Voltar” na hosted page).
ID de um customer já existente da sub-org. Se omitido, a Chargefy resolve customer no momento do confirm — usando email + CPF/CNPJ informados pelo comprador. Customer existente é reaproveitado; novo é criado on-demand.
Email do comprador (pré-preenche o form da hosted page).
Nome do comprador (pré-preenche).
CPF ou CNPJ do comprador (pré-preenche).
ID de um desconto pré-aplicado da sub-org alvo.
Permitir o comprador inserir códigos de cupom na hosted page.
Exigir endereço de cobrança no form.
Calcular parcelamento sem juros.
Bag de string→string, livre, opcional. Decidida pelo parceiro. Ecoada em todos os webhooks
checkout.session.* correspondentes. Limite: 50 chaves, chave 40 chars, valor 500 chars.line_items — três variantes
Cada item deline_items aceita exatamente uma destas três formas. Use a mais idiomática pro seu caso.
(a) Preço do catálogo
Caminho mais curto. Resolve produto, valor e (se for o caso) recorrência automaticamente a partir doprice_id.
(b) Produto do catálogo + preço ad-hoc
Reusa nome/descrição do produto cadastrado, mas com valor único pra essa sessão. Não cria preço novo no catálogo.(c) Produto e preço ad-hoc
Nada vem do catálogo. Útil pra integrações headless que não cadastram produto.Recorrência
Em (a), basta oprice_id apontar pra um preço com interval preenchido — a sessão nasce em mode: subscription sem campos extras. Em (b) e (c), adicione price_data.recurring:
Restrições do array
- Todos os itens compartilham a mesma
currency. - Ou todos os itens são recorrentes, ou nenhum é. Misturar one-shot com recorrente retorna 400.
- Cada item tem exatamente um entre
price_idouprice_data. - Quando
price_dataé usado, exatamente um entreproduct_ideproduct_datadeve acompanhá-lo.
Resposta
ID da checkout session.
String opaca de 64 caracteres hex, sem prefixo. Usada pela hosted page pra abrir a sessão sem precisar do token de API. Não é segredo de servidor — é runtime do browser.
URL hospedada da Chargefy. Redirecione o comprador pra essa URL.
open (criada, aguardando pagamento), complete (cliente confirmou), expired (24h sem confirm — terminal).payment (one-shot) ou subscription (recorrente).unpaid, paid, no_payment_required (total = 0).Moeda em ISO 4217 minúsculo (ex:
brl).Soma dos
line_items, em centavos, antes de descontos e impostos.Desconto aplicado, em centavos.
Impostos aplicados, em centavos.
Total cobrado, em centavos. = subtotal − discount + tax.
ID da sub-org dona desta sessão.
Vem
null no create — a Chargefy resolve customer só no confirm (lazy). Aparece preenchido nos webhooks de checkout.session.completed em diante.Pré-preenchido se enviado no body; senão
null. Atualizado quando o comprador preenche o form.Mesmo padrão de
customer_email.Mesmo padrão de
customer_email.Echo do que veio no body.
Echo do que veio no body.
Echo do body (default
true).Echo do body (default
false).Echo do body (default
false).Echo do body.
true em produção, false em sandbox.Métodos disponíveis pro comprador na hosted page (ex:
["credit_card", "pix", "boleto"]). Resolvido por sub-org no momento do create. Vem vazio se a sub-org não concluiu o cadastro financeiro.Echo do body (default
{}).ISO-8601. 24h depois do
created_at.ISO-8601.
Snapshot dos itens da sessão (resolvido com produto/preço/recorrência conforme a variante usada).
Resposta de exemplo
Próximo passo
Redirecione o comprador praresponse.url. A Chargefy renderiza a página de pagamento, processa o método escolhido (PIX/cartão/boleto) e devolve o cliente em success_url ao final.
POST /v1/checkout-sessions/public/:client_secret/confirm sozinho — você não precisa fazer essa chamada do seu servidor.
Erros
| HTTP | Razão |
|---|---|
| 400 | line_items ausente, vazio, ou item sem price_id nem price_data |
| 400 | Item com price_id e price_data juntos (envie exatamente um) |
| 400 | price_data sem product_id nem product_data — ou com ambos |
| 400 | Mistura de itens recorrentes e únicos no mesmo line_items |
| 400 | Currency divergente entre os itens |
| 400 | price_id ou product_id não existe na sub-org alvo |
| 400 | customer_id (quando passado) não pertence à sub-org alvo |
| 401 | Authorization ausente, mal formado ou inválido |
| 403 | Token de plataforma sem header Organization, ou Organization apontando pra sub-org não-ativa da sua platform |
Sub-org sem cadastro financeiro concluído não bloqueia a criação — a sessão nasce com
payment_method_types: []. Trate o array vazio antes de redirecionar o comprador (ou aborte criação no seu lado se preferir).
