
MOTO transactions explained
What are MOTO transactions? Why is it worth accepting them? Are there any risks to look out for? Here’s all you need to know →
Gone are the days when you had to constantly check for new data at regular time intervals to know if something noteworthy has happened to your business. Using Stripe as your payment gateway, Stripe webhooks will let you know instantly if someone has subscribed to your protected content, successfully paid for your service, or disputed a charge.
But what exactly are Stripe webhooks? Why and how should you use them?
Here’s a simple guide to answer all your questions in plain English!
Or, it’s even better to ask first: what are webhooks, in general?
To understand the concept, let’s play a little game. Imagine you’re at home awaiting guests. The twist: your flat doesn’t have a doorbell.
How will you know when it’s time to open the door?
It’s more than likely that you’ll spend your day glancing through the window every five minutes to see if your guests have arrived. Exhausting, right?
Luckily, you can turn things around by installing a doorbell system: whenever a visitor pushes the button, you’ll hear the doorbell ring, allowing you to instantly open the door.
Webhooks do the same.
They allow your applications to transfer data in real time to one another whenever a given event occurs. They detect the event, collect the data, and send it to the URL specified by you in the form of an HTTP request.
For instance, let’s say you offer a free trial for your subscribers. To entice them to buy your service, you’d like to get a notification three days before the free trial ends. With the help of a webhook configured for this specific event, the source site will send a HTTP POST request to a URL picked by you, with the details of the subscriber and an event identifier.
Basically, Stripe webhooks work the same way.
They’re used by the payment gateway to inform your website or application about different important updates in real time.
This can be a successfully completed checkout session, a failed charge attempt, or a customer disputing a charge, for instance. Stripe uses HTTPS to send these event notifications to your application as a JSON payload.
Stripe webhooks can save you an incredible amount of time and can enhance your business in many different ways.
A number of events that happen in your Stripe account are asynchronous. This means that communication and collaboration occur through messaging that’s not necessarily instant, such as notifications of payouts, recurring charges of subscriptions, or invoice-related notifications.
For these kinds of events, you’ll need Stripe webhooks to notify your integration about changes to the status of an object so that your integration can execute actions in your application or website’s backend system.
For instance, you can use Stripe webhooks as part of your dunning strategy. Webhooks help you connect your payment gateway with your email marketing software so that your subscribers get an email whenever a payment fails.
Or, you could use Stripe webhooks to receive the “checkout.session.completed” event. Once you’ve registered to receive this event, you’ll be notified whether your customer’s payment was successful or not after clicking the “Pay” button on your website.
When your webhook endpoint receives the event, your webhook function can run backend actions to fulfill an order. This could be calling your shipping provider’s APIs to schedule a shipment, for example.
The list of possible Stripe webhook events is long. You can find the full package here.
If you’re wondering why it’s worth using Stripe when it comes to webhooks, the answer is: Stripe webhooks event configuration is extremely flexible!
First of all, different webhook endpoints can be set up for test mode and live mode. Furthermore, any number of endpoints can be added per API mode. Delivery is also retried several times before an event is considered undeliverable.
Additionally, to easily troubleshoot problems, email and dashboard notifications are sent to the account owner and selected users with a detailed explanation of the issues encountered.
Convincing enough to make your (or your developer’s) life easier, right?
You’ve probably heard APIs and webhooks mentioned together.
While APIs are also one of the ways that different applications use to communicate with each other, the main difference between Stripe webhooks and APIs is in how they handle data.
With an API, you have to manually “poll” for new information at regular time intervals.
Stripe webhooks, on the other hand, allow the provider to send data to your application the instant an event occurs.
This is why webhooks are also called “reverse APIs.” They’re less resource-intensive, as they save you time on constantly checking for new data.
Does this mean that APIs are useless?
Of course not!
They’re still popular for a number of reasons.
For instance, some applications don’t support webhook integrations. Knowing about every event could also be superfluous sometimes. Furthermore, you’ll need an API to make a change after being notified about an event.
Therefore, using Stripe webhooks together with APIs will be the optimal solution to ensure instant and reliable communication with your payment service provider.
Now that you understand what Stripe webhooks are and how they work, the question may arise: is there a simple and budget-friendly Stripe integration plugin especially for WordPress that supports Stripe webhooks?
Well, if you have a WordPress site and are looking for a reliable and secure plugin to accept recurring and one-time payments through Stripe, WP Full Pay is the way to go!
By default, there’s one-way communication between Stripe and WP Full Pay. This means the plugin sends requests to Stripe via the Stripe API.
If you want Stripe to notify your website immediately when certain events occur, using Stripe webhooks make it possible to send messages in the other direction.
For instance, the status changes of one-time payments, donations, and subscriptions can be kept in sync with the server (if the changes are made on the Stripe Dashboard, not in WP Full Pay). Subscriptions with installment payments are also possible using Stripe webhooks, as the plugin can count the number of charges and generated invoices.
To configure your Stripe webhooks, navigate to the “Full Stripe / Settings / Stripe account” page in WP Full Pay:
Copy the webhook endpoint to the clipboard from the “Webhooks” section:
(Here, you’ll find a “normal” and a “legacy” link. The legacy endpoint is available because it’s still used by thousands
of websites. All new users are recommended to use the “normal” endpoint!)
Next, navigate to the “Developers / Webhooks” page on the Stripe Dashboard, and click the “Add endpoint” button:
Configure the endpoint URL. Next, click the “Select events” button:
Search the required events, and click the “Add events” button. Once all the events are added, click the “Add endpoint” button.
Next, switch to live mode by clicking the “Test mode” toggle in the top-right corner:
Repeat steps 3, 4, and 5 to configure your Stripe webhooks in live mode!
If you want to learn more about configuring and testing your Stripe webhooks in WP Full Pay, click here.
Due to website configuration issues, one or both endpoints may not work. Don’t panic!
Possible causes can be:
Webhooks play a key role on the web, and it’s a safe bet to say they’ll become even more essential over the coming years! Stripe webhooks can enhance your business by creating a real-time interface between your website and the payment gateway Stripe. Contrary to APIs, Stripe webhooks allow your payment service provider to send instant notifications whenever an important event occurs. This enables you to move the needle on your online services, enhancing customer experience and improving sales!
Stay on top of the latest news about WP Full Pay
What are MOTO transactions? Why is it worth accepting them? Are there any risks to look out for? Here’s all you need to know →
If your online store is plagued with high cart abandon rates, using Link by Stripe can be a real game changer. This is how it works →