Skip to main content

Evento payment.intent.updated

Disparado quando um campo público ou um estado intermediário de um payment_intent muda. Isso inclui tanto alterações feitas por POST /v1/payment-intents/:id quanto mudanças produzidas por ações de lifecycle, como a confirmação de um PIX. data.object traz o estado atual completo. data.previous_attributes traz apenas os campos alterados, com os valores anteriores. Use este evento para manter cache, pedido e conciliação em sincronia enquanto o intent ainda não chegou a um desfecho. A resposta direta da operação não traz diff; o diff aparece aqui, no webhook.
Quando a confirmação de um PIX muda o status de requires_confirmation para pending, payment.intent.updated é emitido. Nesse caso, data.previous_attributes.status vem como requires_confirmation, data.object.status vem como pending e data.object.next_action contém o PIX que deve ser apresentado ao comprador.
data.previous_attributes é histórico. Para atualizar seu banco, use sempre o objeto completo em data.object como fonte do estado atual.

Quando acontece

Como processar

  • Registre o id do evento (evt_*) para processar o webhook de forma idempotente.
  • Atualize o registro local usando data.object.id (pi_*) e o objeto completo de data.object.
  • Use data.previous_attributes para auditoria, logs e notificações condicionais.
  • Recalcule totais locais quando amount_details ou payment_method_options aparecerem no diff.
  • Não libere pedido apenas por payment.intent.updated; use payment.intent.succeeded para conclusão.
  • Use metadata, customer e invoice para localizar o pedido ou fatura correspondente.

Campos importantes

Transições e status

payment.intent.updated pode representar uma mudança de campos ou uma transição intermediária de status. Quando status não aparece em data.previous_attributes, considere que o estado do intent não mudou.

Exemplo: confirmação de PIX

Páginas relacionadas

Objeto Payment Intent

Contrato completo de data.object.

Atualizar Payment Intent

Campos editáveis e estados permitidos.

Formato dos eventos

Envelope, objeto completo e regras de previous_attributes.

Implementar Payment Intents

Como sincronizar mudanças sem concluir a operação cedo demais.