Recurring Payments - Stripe Gateway Configuration
This document explains how Recurring Payments works with the Stripe payment gateway. General setup of the Stripe payment gateway is found here.
It's important to follow all steps laid out in the Stripe Gateway you are using.
Important Setup Note: If Webhooks are not properly configured, subscriptions will not work properly!
When using Stripe, a cancellation may be initiated either from within EDD or from the Stripe Dashboard.
Canceling as a Customer
Customers can cancel their own subscriptions from your store's account page.
Canceling as a Site Administrator
To cancel a subscription from the EDD admin go to Downloads → Subscriptions and click View on the item you want to cancel.
Then in the bottom of the next screen click on Cancel Subscription.
When you set a subscription to cancelled it's cancelled immediately, but the customer will still have access to their purchased material for as much time as they've paid for.
Example: they've paid $10/mo, and you cancel halfway through the month. They still have access to their material for the rest of the month, but they won't be rebilled, and access will stop at the end of the month.
From The Stripe Dashboard
To cancel a subscription from the Stripe Dashboard, log into Stripe and find the search bar in the top right.
You may find customers by searching for:
- the charge ID
- the subscription profile ID
- the EDD customer ID number
- the customer email
Once you've found and selected your Customer in Stripe you'll see a list of subscriptions.
If you click Cancel you'll be given two options, to cancel Immediately or At Period End. For the purposes of EDD it doesn't matter which you choose, your customer won't experience any difference between the two.
It doesn't matter if you cancel a subscription in EDD or in Stripe, the effect is exactly the same and the customer won't notice a difference.
Updating Credit/Debit Card Information
Customers can update their card information for their specific subscription(s) from your store's account page.
Common issues relating to webhooks
Customers get charged too many times
If you don't set up your Stripe webhooks correctly prior to a customer making a purchase and you are using the "Times" option in EDD Recurring to charge the customer a set amount of times (for example, 5 times), they will get charged too many times.
This is because, without the webhook, Stripe is not able to tell EDD that the payments went through successfully so EDD doesn't know. Because of this, EDD thinks the customer has not yet been charged - even though they may have already been charged 5 times (or more).
EDD sends a "cancel subscription" to Stripe automatically when the number of times has been reached. But since there is no webhook, EDD doesn't know that the customer has been charged at all and never cancels the subscription. This results in the customer continuing to be charged even after the set amount of times has been reached. This is why it is important to set up webhook immediately after installing the Stripe extension.