Hi,
You need to parse the Stripe webhook event as raw data. Usually, everyone have JSON parser before any router defined:
app.use(express.json());
app.use(express.urlencoded());
Express executes code from top to bottom. That means that express.json() will be called before express.raw({ type: 'application/json'}) defined in the /webhook endpoint.
So, all you have to do is to move /webhook endpoint before defining express.json() parser.
app.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {
...
});
app.use(express.json());
app.use(express.urlencoded());