Endpoint público de confirmação. Usado pelo browser do comprador (na hosted page ou no seu frontend custom) pra finalizar o pagamento. A sessão transiciona deDocumentation Index
Fetch the complete documentation index at: https://docs.chargefy.io/llms.txt
Use this file to discover all available pages before exploring further.
status: "open" pra status: "complete".
Para PIX e boleto, complete significa que o comprador fechou o form — o pagamento real chega de forma assíncrona via webhook checkout.session.async_payment_succeeded. Para cartão, a transação é processada síncrona aqui mesmo.
Autenticação
Nenhuma. Oclient_secret na URL é a credencial.
Corpo
Um de:
pix, boleto, credit_card. Deve estar incluído em payment_method_types da sessão (caso contrário 400).Email do comprador. Obrigatório se ainda não estiver preenchido na sessão.
Nome completo.
CPF ou CNPJ.
Endereço de cobrança. Obrigatório se a sessão tem
require_billing_address: true.Data de vencimento do boleto (
YYYY-MM-DD). Default: 3 dias depois da confirmação. Aplica só quando payment_method: "boleto".Token do cartão tokenizado. Obrigatório quando
payment_method: "credit_card". Veja tokenização abaixo.Número de parcelas (1–12). Aplica só com
credit_card.Bandeira do cartão (
visa, mastercard, elo, etc). Usado pra cálculo de juros — opcional, a Chargefy infere quando ausente.Cupom de desconto aplicado pelo comprador.
Três variantes
(a) PIX
Mais simples: só dados do comprador. A resposta trazpayment_data.qr_code (string EMV pra colar no app do banco) e payment_data.qr_code_url (PNG hospedado).
(b) Boleto
Como PIX, opcionalmente com data de vencimento custom. A resposta trazpayment_data.barcode, payment_data.digitable_line e payment_data.pdf_url.
(c) Cartão de crédito
Exigecard_id (token tokenizado client-side — nunca envie número de cartão direto pra esse endpoint). A transação é autorizada na hora; payment_status: "paid" na resposta indica sucesso.
Tokenização do cartão
A Chargefy não aceita número de cartão em texto plano neste endpoint. Ocard_id precisa ser um token gerado client-side por uma das duas vias:
- Hosted page (recomendado) — você redireciona o comprador pra
response.urle o form de cartão da Chargefy tokeniza, confirma e devolve emsuccess_url. Sem PCI no seu lado. - Frontend custom — use o pacote
@chargefy/checkout(npm) que expõe a função de tokenização. Roda inteiramente no browser; o cartão nunca toca seu servidor.
Resposta
Retorna o DTO completo da sessão compayment_data preenchido conforme o método.
PIX
Boleto
Cartão de crédito (sucesso)
Webhooks disparados
| Quando | Evento |
|---|---|
| Imediatamente após confirm | checkout.session.completed |
| PIX/boleto compensados (async) | checkout.session.async_payment_succeeded |
| Boleto vencido / PIX expirou | checkout.session.async_payment_failed |
Erros
| HTTP | Razão |
|---|---|
| 400 | client_secret ausente; payment_method não está em payment_method_types da sessão |
| 400 | Campos obrigatórios do comprador faltando (customer_email/customer_name/customer_tax_id) |
| 400 | card_id faltando quando payment_method: "credit_card" |
| 400 | installments excede o máximo permitido pelo valor da sessão |
| 403 | Sessão não está em status: "open" (já confirmada, expirou ou foi soft-deletada) |
| 404 | Checkout session não encontrada |
| 422 | Cartão recusado pelo emissor; cupom inválido; CPF/CNPJ inválido |

