← All releases

Dispute and Pre-Dispute Alert webhooks

Subscribe to provider-neutral dispute lifecycle and Pre-Dispute Alert events, with published guidance on verification, idempotency, ordering, replay, and alerts that arrive before a customer or payment link exists.

WebhooksDisputesDocs

Flo now publishes two provider-neutral webhook families for the dispute journey. Four dispute.* events follow a provider dispute from creation to a final outcome, and two pre_dispute_alert.* events deliver early warnings before a dispute exists. Both use one stable Flo identity and an increasing sequence, so the same handler works whichever gateway or alert source produced the activity. The developer documentation now carries copy-pastable examples and worked guidance for every step of the integration.

Two new event families

The payloads name no gateway or alert network and carry no provider identifiers or raw statuses. Read the full catalog, examples, and lifecycle rules in Dispute events and Pre-Dispute Alert events, and the field-level reference in Dispute Payload and Pre-Dispute Alert Payload.

Subscribe and verify

Existing endpoints are not subscribed to the new families automatically. Add the event names to the events array with POST /v1/webhooks or PATCH /v1/webhooks/{id}, then verify each delivery's Flo-Signature header with the endpoint's signing secret before you act on it. The delivery guide has the request shape and the verification steps.

Handle deliveries safely

Deduplicate by eventId, then apply dispute and alert state only when the payload's sequence is higher than the one you stored for that dispute.id or preDisputeAlert.id. HTTP delivery order is not guaranteed, and this pair of checks keeps your records correct across retries, out-of-order arrival, and resends. The guide also documents how Flo classifies your endpoint's responses for retry, how to read delivery records, and how a resend replays a delivery under its original eventId. See Delivery records, replay, and resend.

A Pre-Dispute Alert is delivered to the client that owns it as soon as Flo can attribute it, which can be before Flo links it to any customer or payment. It arrives with an empty paymentIds, no user object, and a linkStatus of unmatched or action_required. When a link is verified later, the alert keeps the same id, sequence rises, and pre_dispute_alert.updated carries the linked payments. A worked handler that correlates by the descriptive hints first and upgrades to paymentIds without creating a second record is in Correlate an unlinked Pre-Dispute Alert.

What's included

Developer notes

Why it matters

Early alerts are time-sensitive, and delivering them before a link exists gives you the whole response window. Stable identities and sequenced lifecycles make dispute state safe to reconcile from webhooks alone, and the published guidance shortens the path from subscribing to a working, idempotent handler.

Event catalog and examples

Read the dispute and Pre-Dispute Alert event catalog with copy-pastable payloads and lifecycle rules.

Read the events

Delivery guide

Subscribe, verify signatures, deduplicate, and replay deliveries safely.

Read the guide