Payment events
Payment event payloads use this envelope:Webhook event names use
refused where the synchronous API response status field uses declined, and payment.<status> for terminal states such as expired. Match on the event string, not on substring parsing.Subscription events
Subscription event payloads use a slightly different envelope —subscription_id is a top-level field and data carries event-specific detail:

