For MerchantsWebhook Events

Merchant webhook events

The four merchant webhook events - dispute.created and the three alerts events - with when each fires, what to do, and where to find the payload.

Chargeflow emits webhook events so your system reacts to disputes and alerts in real time. Subscribe to the events your integration needs and Chargeflow delivers an HTTP POST to your endpoint whenever one fires. Formal payload schemas are generated from the spec and live in the API reference; this page is the narrative catalog - when each event fires and what to do with it.

Available events

EventFires whenWhat to do
dispute.createdA new dispute is ingested and first-pass enrichedTrigger your enrichment flow
alerts.createdA new pre-chargeback alert arrivesRefund / mitigate (or trigger workflows)
alerts.updatedAn alert's outcome changesSync your records to the new outcome
alerts.transaction.linkedAn alert is matched to a PSP transactionGet the transaction to refund (merchant-managed)

To register an endpoint and build a handler, see Subscribe to webhook events. For signature verification and delivery/retry behavior, see Webhooks.

Payload shapes differ by event

dispute.created arrives wrapped in an envelope ({type, data, creationDate, webhookId}) carrying the current dispute resource under data. The three alert events are delivered flat, with no envelope - their type field holds the alert type, not the event name.

dispute.created

Fires after Chargeflow ingests a new dispute from a connected PSP and completes its first enrichment pass - so the payload already shows what Chargeflow matched, and you can focus on the gaps.

What to do: inspect the linked objects (transaction, order, subscription, customerCommunication), gather any missing high-impact data from your systems, then PATCH the dispute using data.id. See Enrich a dispute for the endpoint and merge behavior. Payload: API reference.

alerts.created

Fires in real time when Chargeflow ingests a new pre-chargeback alert. Some fields (for example transaction) may populate later; for the full record call GET /public/2025-04-01/alerts/{id}.

What to do: in the automated Chargeflow Alerts model no action is required - use it to trigger supplementary workflows (CRM tagging, fraud notifications). In the merchant-managed model, locate the transaction, refund it, and report the outcome. See Manage pre-chargeback alerts. Payload: API reference.

alerts.updated

Fires whenever Chargeflow updates an alert's outcome.

OutcomeMeaning
preventedRefunded; chargeback prevented
not_foundNo matching transaction located
duplicateDuplicate of an existing alert
chargebackedEscalated to a chargeback despite mitigation
previously_refundedAlready refunded before the alert arrived
pendingStill being processed
errorAn error occurred while handling the alert

What to do: sync your records to the outcome. On prevented, record the win and close tickets; on chargebacked, watch for dispute.created to begin enrichment; on not_found, investigate manually; duplicate / previously_refunded need no action. Payload: API reference.

alerts.transaction.linked

Fires when Chargeflow matches an alert to a PSP transaction using card metadata (amount, BIN, last 4, auth code, ARN). Not every alert produces this event - if no match is found automatically, it does not fire.

What to do: informational in the automated model. In merchant-managed mode it supplies the transactionId to refund before you report the outcome - subscribe to both alerts.created and this event, since some alerts carry the transaction on creation and others only here. See Manage pre-chargeback alerts. Payload: API reference.

Next step

Subscribe to webhook eventsRegister an endpoint, verify signatures, and build your handler.
Was this page helpful?

On this page