Overview
The Flo webhook contract clients receive from Flo.
Webhooks
Flo webhooks are normalized outbound events sent by Flo.
Clients should integrate against the Flo contract only. The underlying billing gateway is an implementation detail and should not affect webhook consumers.
Build Against Flo Terms
Every webhook payload is designed to be consumed in Flo terms:
eventIdidentifies the Flo delivery record for the webhook sent to that endpoint.eventTypetells you what happened in Flo.objectTypetells you which Flo resource family changed.user.idis the Flo user id.user.clientUserIdis your client-defined user id as stored by Flo.subscription,item, orinvoicecontains the normalized Flo payload for that event.
On invoice events, Flo may also include root-level subscription and/or item when the invoice is linked to a local transaction that resolves those checkout records.
Optional fields such as invoiceDetails.gatewayEventType and these related root-level objects can provide extra trace context, but they should not be the basis of your integration logic.
Event Families
Flo currently sends events for three resource families:
subscriptioniteminvoice
Those families currently map to these Flo event types:
subscription.createdsubscription.updatedsubscription.cancelledsubscription.renewedsubscription.reactivatedsubscription.pausedsubscription.resumedsubscription.expireditem.purchaseditem.refundedinvoice.createdinvoice.updatedinvoice.deletedinvoice.paidinvoice.overdue
What Clients Receive
Each delivered webhook contains one Flo event payload.
The top-level eventId identifies that specific Flo delivery record.
That payload includes:
- a delivery identifier via
eventId - a Flo event classification via
eventTypeandobjectType - the Flo user via
user - a normalized resource payload via
subscription,item, orinvoice - optional invoice and payment context via
invoiceDetails - optional related root-level
subscriptionanditemenrichment on invoice events
See Events for the event catalog and examples, and Payloads for field-level schema details.
Versioning
- Current event version:
v1 - New integrations should treat
v1as the public contract