This is a simple example project illustrating how to implement a Stripe webhooks endpoint.
Head to your webhooks settings and create an endpoint with any URL (you'll change it later). Click on the button to reveal the signing secret.
Then deploy the project on your Heroku account:
When deploying, you'll be prompted for the webhook signing secret.
Once the app is running on Heroku, head back to the webhooks settings and update the endpoint's URL with your app's URL followed by
/webhook. E.g. if the URL of the Heroku app is
https://thawing-crag-63114.herokuapp.com, set the endpoint's URL to be
You can then create test events and view the logs of your Heroku app to check that the events were correctly received and verified.
Clone the repository:
git clone https://github.com/ob-stripe/example-stripe-java8-webhook.git
Compile the project:
Head to your webhooks settings and add a test webhook endpoint with URL set to your server's URL followed by
/webhook. The server runs on port 4567 by default (you can use the
PORT environment variable to change this), so for instance if your server is accessible at
myserver.com, set the endpoint's URL to be
If your server is not directly visible from the internet, you can use ngrok to create a tunnel:
ngrok http 4567
then set the endpoint's URL to the one provided by ngrok followed by
Once the endpoint is created, you can reveal the signing secret and use its value to run the project:
STRIPE_ENDPOINT_SECRET=whsec_... \ mvn exec:java
You can then create test events on your Stripe account and view the logs of the app to check that the events were correctly received and verified.