Realizar checkout de uma fatura
Cobra uma fatura em aberto via PIX ou cartão de crédito.
Fluxo canônico para cobrança avulsa via API:
POST /api/v1/invoicescria a fatura avulsa- Este endpoint (
POST /api/v1/invoices/{invoice_id}/checkout) efetua a cobrança - Para PIX, a confirmação chega via webhook
invoice.paid; para cartão, a resposta já retorna a fatura paga
Uma sessão de checkout com mode: payment também gera uma fatura avulsa
(fluxo de página hospedada): informe o cliente (customer_id ou
customer), pegue o invoice.id retornado e chame este endpoint da
mesma forma.
Também funciona para faturas de assinatura em aberto, com o mesmo comportamento do endpoint de checkout da assinatura.
Fluxo para PIX:
- Gera um QR code PIX sincronamente
- Retorna o QR code, código copia-e-cola e data de expiração
- O pagamento é confirmado via webhook (
invoice.paid) quando o cliente pagar - Se chamado novamente enquanto o PIX estiver válido, retorna o mesmo (idempotente)
- Se o PIX expirou, gera um novo automaticamente
- Se o pagamento já foi confirmado e a fatura aguarda a baixa, retorna
PIX_PAYMENT_CONFIRMEDem vez de gerar um novo QR code
Fluxo para cartão de crédito:
- Valida os dados do cartão e as informações de cobrança
- Se houver um QR code PIX em aberto para a fatura, ele é expirado antes da cobrança — sem risco de pagamento duplicado
- Processa a cobrança sincronamente: se aprovada, a fatura já retorna
com status
paid(sem esperar webhook) - Se o cartão for recusado, retorna
CARD_DECLINED; a fatura continuaopene um novo checkout (cartão ou PIX) pode ser tentado - O limite de parcelas (
installments) é definido pelo preço do primeiro item da fatura
Authorizations
A chave de API usada para autenticar a requisição e identificar a sua conta.
Exemplo: Authorization: ApiKey my-secure-key
Path Parameters
ID único da fatura a ser cobrada, no formato TypeID com prefixo in_.
^in_[0-9a-z]{26}$"in_01h455vb4pex5vsknk084sn02q"
Body
Dados do método de pagamento.
Para payment_method_type: pix: não requer campos adicionais.
Para payment_method_type: card: requer os objetos card e billing_details,
e aceita installments dentro do limite definido pelo preço do primeiro item da fatura.
Dados para gerar a cobrança da fatura.
Tipos suportados:
pix: gera um QR code PIX — não requer campos adicionais.card: cartão de crédito — requercardebilling_details, aceitainstallments.
Cobrança no cartão:
- A cobrança é síncrona: se aprovada, a fatura já retorna com status
paid. - Se houver um QR code PIX em aberto para a fatura, ele é expirado antes da cobrança — sem risco de pagamento duplicado.
- O limite de parcelas é definido pelo preço do primeiro item da fatura.
Tipo do método de pagamento: - pix: Pagamento instantâneo via PIX (QR Code). - card: Cartão de crédito.
pix, card "pix"
Quantidade de parcelas para cobrança no cartão de crédito.
Use apenas quando payment_method_type for card. O limite de
parcelas é definido pelo preço do primeiro item da fatura.
Para pix, o backend sempre considera 1.
1 <= x <= 123
Dados do cartão de crédito para processamento do pagamento.
Segurança: Os dados do cartão são tokenizados e nunca armazenados em texto claro. Apenas os últimos 4 dígitos e a bandeira são mantidos para referência.
Informações do titular do cartão para validação e prevenção de fraude.
O nome e documento são obrigatórios. O endereço é opcional mas recomendado para aumentar a taxa de aprovação das transações.
Response
Cobrança realizada com sucesso.
Para PIX: o response inclui a fatura e o QR code para pagamento.
A fatura permanece open até a confirmação do pagamento via webhook.
Para cartão: a cobrança é processada imediatamente e a fatura
já retorna com status paid.
Resposta do checkout bem-sucedido contendo a fatura e os detalhes do método de pagamento utilizado.
pix: inclui o QR code gerado; a fatura permaneceopenaté a confirmação do pagamento via webhook.card: a cobrança é síncrona; quando aprovada, a fatura já retorna com statuspaid.
ID único da fatura, no formato TypeID com prefixo in_.
^in_[0-9a-z]{26}$"in_01h455vb4pex5vsknk084sn02q"
Tipo do objeto. Sempre 'invoice'.
invoice "invoice"
Valor a pagar em centavos. R$ 99,90 = 9990.
9990
Timestamp Unix da criação da fatura.
1704672000
Moeda do valor. Sempre 'brl' (Real brasileiro).
brl "brl"
ID do cliente associado à fatura, no formato TypeID com prefixo cus_.
^cus_[0-9a-z]{26}$"cus_01h455vb4pex5vsknk084sn02p"
Indica ambiente de produção (true) ou sandbox (false). Dados de sandbox são limpos periodicamente.
true
Status atual da fatura.
- draft: Rascunho, ainda não finalizada.
- open: Aberta, aguardando pagamento.
- paid: Paga.
- uncollectible: Marcada como incobrável.
- void: Cancelada.
draft, open, paid, uncollectible, void "open"
Valor total da fatura em centavos. R$ 99,90 = 9990.
9990
Método de pagamento utilizado na cobrança da fatura.
- Option 1
- Option 2
Valor já pago em centavos. R$ 99,90 = 9990.
0
Valor estornado em centavos. Permanece separado de status: uma fatura
paga continua com status: paid depois de um estorno total ou parcial.
0
Valor restante a pagar em centavos. R$ 99,90 = 9990.
9990
E-mail do cliente.
"joao.silva@exemplo.com"
Nome do cliente.
"João Silva"
Código externo para integração com outros sistemas. Único por conta.
"PEDIDO-123"
Indica se a fatura foi paga.
false
ID da cobrança associada à fatura, no formato TypeID com prefixo pi_.
null enquanto a fatura ainda não tem cobrança gerada.
"pi_01h455vb4pex5vsknk084sn02r"
Timestamps de quando a fatura mudou de status. Campos são null se a transição ainda não ocorreu.
ID da assinatura associada (se aplicável), no formato TypeID com prefixo sub_.
"sub_01h455vb4pex5vsknk084sn02s"

