payout.* events track one Payout through its in-flight lifecycle. They share the
envelope and the
ordering contract every Cleff
webhook uses; subscribe to them by name in enabled_events.
Shared core
All four carry a shared core projection plus an event-specific tail:rail_ref is the provider’s opaque reference for the disbursement and is null until
the provider returns one, typically populated by payout.disbursed, sometimes earlier.
Cleff’s relationship with the upstream provider is internal: subscribers never see the
provider name, the provider’s payout ID, or the provider’s raw lifecycle strings.
Lifecycle position is conveyed by type.