Docs

O objeto PaymentIntent

O recurso que representa uma cobrança em todos os métodos, seus estados e o que cada um significa para o seu pedido.

Toda cobrança, seja Pix, cartão ou Pix parcelado, é um PaymentIntent. Ele nasce na criação, guarda o método e o comprador, e passa por estados até um desfecho. Uma integração bem-feita tem um único lugar que traduz o estado do PaymentIntent para o estado do pedido.

Estados do PaymentIntent: nasce em Processing, pode passar por RequiresAction e termina em Succeeded, Failed ou Canceled; de Succeeded pode ir a Refund ou ChargedBack

Estados

statusFinal?O pedido deve
ProcessingNãoFicar aguardando pagamento.
RequiresActionNãoMostrar o desafio 3DS de nextAction.
SucceededPara o pagamento, simSer concluído. Ainda pode haver estorno ou contestação depois.
FailedSimSer marcado como recusado. O motivo está em lastPaymentError.
CanceledQuaseEncerrar a oferta, mas aceitar uma confirmação tardia de Pix, até 72 horas depois do vencimento.
RefundSimSer marcado como estornado.
ChargedBackSimSer marcado como contestado.
CreatedNãoAguardar. Raro: indica recurso criado sem processamento.

Failed também volta com HTTP 201. A resposta 201 diz que o recurso foi criado; o resultado está em status.

Campos principais

PaymentIntent (trecho)
{
  "id": "8b727267-bf39-48a4-91ea-eb0780cb48a9",
  "object": "payment_intent",
  "amount": 1990,
  "currency": "BRL",
  "status": "Processing",
  "statusDetail": null,
  "paymentMethods": [{ "type": "Pix", "amount": 1990, "currency": "BRL", "card": null, "pix": { "pixKeyType": "RANDOM", "expiresInMinutes": 30 } }],
  "customer": { "name": "Cliente de Teste", "email": "cliente@example.com", "document": null, "phone": null, "birthDate": null, "address": null },
  "split": null,
  "metadata": { "orderId": "pedido-pix-1001" },
  "lastPaymentError": null,
  "nextAction": null,
  "pixPayment": { "qrCodeEmv": "00020126...", "qrCodeUrl": "", "pixCopyPaste": "00020126...", "expiresAt": "2026-09-08T15:30:00Z", "endToEndId": "", "status": "PENDING" },
  "created": "2026-09-08T15:00:00Z",
  "succeededAt": null
}
CampoDescrição
idIdentificador da cobrança (UUID). Grave junto com o pedido.
statusEstado atual. É o único campo que decide se o pedido foi pago.
statusDetailDetalhe técnico, como PENDING_CHALLENGE ou AUTHENTICATION_FAILED. Lista aberta.
amount, currencyValor em centavos e moeda.
paymentMethods[]Método usado. Em cartão, card traz bin, lastFourDigits, brand, cardTokenUid e threeDs.
lastPaymentErrorMotivo de uma falha: code, message e category. null quando não houve falha.
nextActionAção pendente do comprador. Hoje só IFRAME_CHALLENGE, do 3DS.
pixPaymentDados do Pix: QR Code, copia e cola, prazo e endToEndId.
pagalevePaymentDados do checkout da Pagaleve: checkoutId, checkoutUrl, expiresAt.
splitRegras de divisão com allocatedAmount calculado.
metadataOs pares texto/texto que você enviou.
created, succeededAtMomento da criação e da confirmação.

Os blocos de cada método (pixPayment, pagalevePayment, card) têm um campo status próprio, que registra o estado do provedor no momento em que o bloco foi gerado. Use sempre o status da raiz.

Como o seu código deve ler

  • Campos sem valor vêm como null explícito. Campos novos podem aparecer a qualquer momento: ignore o que não conhece.
  • Os nomes dos campos são camelCase e os valores de estado são PascalCase, exatamente como na tabela. A comparação deve ser exata.
  • Datas são ISO 8601 em UTC. Algumas respostas podem omitir o Z; trate datas sem fuso como UTC.

Onde o PaymentIntent aparece

OndeFormato
Resposta de POST /api/v1/paymentintentsO objeto completo.
Resposta de GET /api/v1/paymentintents/{id}O objeto completo, no estado atual.
Webhooks payment_intent.*Um retrato em data, com campos ligeiramente diferentes. Veja Eventos.

Nesta página