payment_intent representa uma cobrança ao longo de todo o seu ciclo de vida — da intenção de cobrar até o desfecho final. Ele concentra num só lugar o valor, a moeda, o customer, os métodos permitidos, a tentativa de cobrança mais recente, o estado atual e a próxima ação que cabe ao comprador, e é por ele que o seu sistema sabe se o dinheiro entrou, está em trânsito ou foi recusado.
Ele nasce quando uma cobrança começa, seja criada diretamente pela API ou resolvida por um checkout hospedado, e atravessa um status que reflete o que falta para concluir o pagamento: cartão costuma resolver na hora, enquanto PIX e boleto ficam pending até a confirmação assíncrona chegar. À medida que avança, ele se liga à charge que materializa cada tentativa e, quando origina de uma cobrança recorrente, à invoice correspondente — sendo o estado financeiro que conecta esses objetos à pessoa que paga.
Objeto payment_intent
Este é o formato completo retornado emcreate, get, update, confirm,
capture, cancel, itens de list e em data.object dos webhooks
payment.intent.*.
Identificador do payment intent. Usa o prefixo
pi_*.Sempre
"payment_intent".Valor total do intent em centavos. Quando há juros de parcelamento, pode ser
maior que o subtotal original.
Valor autorizado e ainda não capturado. Fica preenchido em captura manual.
Quebra do valor usado na cobrança.
Valor já recebido. Em geral fica
0 antes do pagamento e igual a amount
quando o intent chega a succeeded.Data de cancelamento em ISO 8601.
Motivo do cancelamento:
duplicate, fraudulent, requested_by_customer,
abandoned ou null.automatic para capturar na confirmação, ou manual para autorizar agora e
capturar depois.Credencial de runtime do intent. Use apenas em contexto controlado pelo seu
frontend quando o fluxo exigir confirmação client-side.
Como o intent é confirmado. Hoje retorna
automatic ou manual.Data de criação em ISO 8601.
Moeda em ISO 4217 minúsculo, como
brl.Customer associado ao pagamento, quando houver.
Invoice associada, quando o intent nasceu de uma invoice.
Motivo da recusa da última tentativa, quando houver. Vem
null enquanto não
houve falha. Veja Códigos de falhas
para a lista completa de códigos e categorias.Tentativa de cobrança mais recente. Por padrão vem como ID
ch_*; pode vir
expandida quando você usa expand[]=latest_charge.true em produção; false em ambiente de teste.Objeto livre para correlacionar o intent com o seu sistema. Quando vazio,
retorna
{}.Próxima ação para o comprador. Vem preenchido em fluxos assíncronos como PIX
e boleto.
Método de pagamento salvo usado no intent. Por padrão vem como ID
pm_*; pode
vir expandido quando você usa expand[]=payment_method.Opções por método de pagamento, como parcelamento de cartão.
Métodos permitidos para a cobrança. Hoje pode incluir
credit_card, pix e
boleto, conforme o fluxo.off_session, on_session ou null, quando o método também será usado no
futuro.Estado atual da cobrança.
Data da última atualização em ISO 8601.
Operações
- Listar payment intents
- Criar payment intent
- Consultar payment intent
- Atualizar payment intent
- Confirmar payment intent
- Capturar payment intent
- Cancelar payment intent
Test helpers
Em sandbox, você pode avançar umpayment_intent de teste sem esperar a
compensação assíncrona. Test helpers só aceitam chaves ch_test_...; chamadas
em live mode retornam erro testmode_required.
| Ação | Endpoint | Resultado |
|---|---|---|
| Succeed a Test Payment Intent | POST /v1/test-helpers/payment-intents/{id}/succeed | Marca o intent como succeeded, atualiza a charge como paga e emite os webhooks de sucesso. |
| Fail a Test Payment Intent | POST /v1/test-helpers/payment-intents/{id}/fail | Marca o intent como failed, registra last_payment_error e emite os webhooks de falha. |
| Expire a Test Payment Intent | POST /v1/test-helpers/payment-intents/{id}/expire | Cancela o intent com cancellation_reason: "abandoned" e emite os webhooks de expiração/falha. |
200 OK com o objeto payment_intent completo atualizado.

