Tipos de eventos de webhook

O catálogo completo de eventos de webhook do Tokeflow para pagamentos, reembolsos, disputas, métodos de pagamento e assinaturas, com um exemplo de payload.

O Tokeflow emite um evento sempre que algo relevante acontece com uma transação, reembolso, disputa, método de pagamento armazenado ou assinatura. Inscreva seu endpoint nos eventos que interessam a você (você pode filtrar por tipo ao configurar o endpoint) e então reaja a eles como a fonte da verdade para resultados assíncronos.

Todo evento é entregue no envelope padrão descrito em Visão geral de webhooks e assinado conforme descrito em Verificando assinaturas. O campo type carrega um dos valores abaixo.

Trate os eventos de forma idempotente. Faça a deduplicação pelo id do evento e, quando um evento alterar um estado importante, reconcilie com a API (por exemplo, GET /api/v1/transactions/:id) antes de agir. Os eventos podem chegar fora de ordem ou mais de uma vez.


Eventos de transação

EventQuando é disparado
transaction.createdUma transação foi criada e aceita para processamento.
transaction.pendingA cobrança está aguardando um resultado assíncrono (por exemplo, PIX, boleto).
transaction.pre_authorizedOs fundos foram autorizados, mas não capturados (capture: false).
transaction.authorizedA cobrança foi bem-sucedida (autorizada e capturada, a menos que seja apenas pré-autorização).
transaction.capture_pendingUma captura foi solicitada e está sendo processada.
transaction.failedA cobrança foi recusada ou não pôde ser concluída.
transaction.canceledA transação foi cancelada antes da conclusão.
transaction.voidedUma autorização foi anulada antes da captura.
transaction.charged_backUm chargeback foi aberto contra a transação.
transaction.expiredUma cobrança pendente expirou sem ser concluída (por exemplo, PIX/boleto não pago a tempo).

Eventos de reembolso

EventQuando é disparado
transaction.refund_createdUm reembolso foi criado.
transaction.refund_pendingO reembolso está sendo processado pelo provedor.
transaction.refundedA transação foi totalmente reembolsada.
transaction.partially_refundedUm reembolso parcial foi liquidado; um saldo permanece capturado.
transaction.refund_failedO reembolso não pôde ser concluído.
transaction.refund_cancelledUm reembolso pendente foi cancelado.

Eventos de disputa

EventQuando é disparado
transaction.dispute_createdUma disputa foi aberta pelo banco do portador do cartão.
transaction.dispute_updatedNovas informações ou uma mudança de status em uma disputa aberta.
transaction.dispute_wonA disputa foi resolvida a seu favor.
transaction.dispute_lostA disputa foi resolvida contra você.
transaction.dispute_closedA disputa foi encerrada.

Eventos de método de pagamento

EventQuando é disparado
payment_method.action_requiredUm método de pagamento armazenado precisa de atenção — por exemplo, um cartão reportado como não mais válido, ou sem substituto disponível pela rede. Solicite ao cliente que o atualize.

Eventos de assinatura

EventQuando é disparado
subscription.createdUma assinatura foi criada.
subscription.renewedUma cobrança de renovação foi bem-sucedida e a assinatura avançou para o próximo período.
subscription.dunningUma cobrança de renovação falhou; a assinatura entrou em cobrança recorrente (retentativas).
subscription.reactivatedUma assinatura voltou a active após cobrança recorrente ou uma pausa.
subscription.upgradedA assinatura passou para uma oferta de maior valor.
subscription.downgradedA assinatura passou para uma oferta de menor valor.
subscription.payment_method_changedO instrumento de pagamento da assinatura foi alterado.
subscription.pausedA assinatura foi pausada.
subscription.resumedUma assinatura pausada foi retomada.
subscription.cancelledA assinatura foi cancelada.
subscription.expiredA assinatura chegou ao fim de seu prazo e expirou.

Exemplo de payload

Um evento transaction.authorized. O recurso fica em data.object:

{
  "id": "evt_3f9a2b1c8d7e",
  "type": "transaction.authorized",
  "created_at": "2026-01-15T12:30:09.000Z",
  "data": {
    "object": {
      "id": "tx_777",
      "organization_id": "org_123",
      "merchant_id": "mrc_123",
      "order_id": "ord_001",
      "external_order_id": "order_888",
      "customer_id": "cust_123",
      "amount_authorized": 15000,
      "amount_captured": 15000,
      "currency": "BRL",
      "payment_method": "credit_card",
      "charge_type": "payment",
      "country": "BR",
      "status": "authorized",
      "created_at": "2026-01-15T12:30:00.000Z",
      "updated_at": "2026-01-15T12:30:09.000Z"
    }
  }
}

O formato de data.object corresponde ao recurso da API correspondente — uma transação para eventos transaction.*, um reembolso para eventos de reembolso, uma assinatura para eventos subscription.* e assim por diante. Consulte a referência da API para o schema completo de cada objeto.


Orientações de tratamento

  • Confirme rapidamente. Retorne um 2xx em poucos segundos e faça o trabalho real de forma assíncrona. Respostas lentas ou com falha disparam retentativas.
  • Faça a deduplicação pelo id. O mesmo evento pode ser entregue mais de uma vez.
  • Não confie na ordem. Use o próprio status do recurso (ou uma nova leitura da API) em vez de supor que os eventos chegam em sequência.
  • Verifique cada entrega. Rejeite qualquer requisição cuja assinatura não seja validada — consulte Verificando assinaturas.

Nesta página