I had a webhook that was triggering based on Stripe Charge events (successful charges I should say) which would happen usually after someone put in their card details and hit Pay in the checkout page.
The metadata that is recorded is against the Stripe Checkout object, and not against the charge.
So one should do a “List all checkout sessions” with a parameter of payment_intent (which the charge event object will send in it’s response). Reference: List all Checkout Sessions | Stripe API Reference
This will allow you to obtain the metadata that you have recorded against that checkout session