Stripe has a command line tool that can be used to simulate the events, which is very helpful for testing out webhooks.
Mock data can be added to simulate different payload.
For example, to add metadata to a payment intent. This can be done by
stripe trigger payment_intent.succeeded \
--stripe-account {{connectedStripeAccount}} \
--add payment_intent:metadata.platform_user_id=customData \
--add payment_intent:amount=5000 \
--add payment_intent:currency=hkd \
--add payment_intent:description="Thank you very much"