Recurring Payments – Manually Create Subscriptions
Table of Contents
This document covers manually creating subscriptions and migrating subscriptions from another platform. It will not create a payment or subscription record at the payment gateway, this is for the purpose of adding a subscription to EDD that already exists at the payment gateway or for testing purposes.
About the Add New subscription fields
Price and Billing Cycle: Fields for Initial Price, Recurring Price, and Billing Cycle. In most cases, the initial and recurring amounts are the same.
Times Billed: This specifies how many payments should occur. 0 is default and allows the subscription to run indefinitely until the store or customer cancels. If a number is entered here, then the user will be billed that many times after the initial purchase. Example: If “Times Billed” is set to 1, then the user will be billed twice – once for the initial purchase and once more for the “Times Billed” setting.
Customer Email: This allows you to select an existing customer or specify an email address to create a new customer.
Product: The Product this subscription applies to.
Initial Purchase ID: A new subscription will either create a new payment record or an existing Order can be specified.
Gateway: If creating a new payment record, the gateway needs to be specified. This has to match the gateway that the subscription exists on or renewals and cancelations may not work properly.
Profile ID: This is the unique ID of the subscription in the payment gateway. Typically referred to as a Subscription ID.
Transaction ID: The initial purchase ID from the payment gateway. This is mostly for the store owner’s reference and is not actually utilized by the EDD subscription.
Date Created: The date the subscription was created. This field is optional.
Expiration Date: The date the subscription expires and/or the date of the next renewal.
Subscription Status: Current status of the subscription.
Required fields: Price and Billing Cycle, Customer, Product, and Expiration Date.
How to Manually Create Subscriptions
- Navigate to Dashboard → Downloads → Subscriptions → Add New
- Set the Initial, recurring, and billing cycle. Most likely the initial and recurring price is the same.
- Leave Times Billed set to 0 unless the subscription is to end after a set number of payments. Such as a payment plan.
- Set customer or input a new email address if the customer doesn’t already exist.
- Select the Product that the subscription is tied to.
- If no order already exists in your EDD store, keep “Create new payment record” selected and choose the Gateway. If an order does exist, select “Enter existing payment ID” and input the Payment ID.
- If a transaction ID exists for the initial purchase, input the ID. This field is optional.
- Input the Date Created, otherwise, today’s date will be used, if left empty.
- Input the Expiration Date, which should match the expiration/renewal date of the subscription at the merchant processor.
- Set the Subscription Status.
Recreating a Subscription and Order
This might be used if you need to exchange a product tied to a software license or in the event both the subscription and order needed to be recreated.
- Navigate to Dashboard → Downloads → Subscriptions → Add New
- Set price and billing cycle to match the current subscription
- Times Billed should be 0 if the subscription was set up to run indefinitely.
- Select the customer. Since the subscription is being recreated, the customer should already exist.
- Select Download and variable option
- Leave “Initial Purchase ID” set to “Create new payment record”
- Use the Profile ID from the existing subscription
- Use the Transaction ID from the existing subscription
- Use the Date Created from the original subscription
- Use the Expiration Date from the original subscription
- Set the subscription status Active
- Click “Add Subscription”
- Once you confirm the newly created subscription and order is set up as expected. You can delete the original subscription or update the Profile ID from the original subscription by setting it to blank or 0. This confirms upcoming renewals will only renew the new subscription in EDD, not the original you are replacing.
Recreating a Subscription for an existing order
In a rare instance, you might have to re-create a subscription for an existing order. Most commonly if the subscription’s price was updated at the payment gateway and you want it to reflect in EDD. Follow all steps to make sure the original subscription is properly handled.
- Navigate to Dashboard → Downloads → Subscriptions → Add New
- Set price and billing cycle to match the current subscription
- Times Billed should be 0 if the subscription was set up to run indefinitely.
- Select the customer. Since the subscription is being recreated, the customer should already exist.
- Select Download and variable option.
- Set “Initial Purchase ID” to Enter existing payment ID” and enter the Order ID.
- Use the Profile ID from the existing subscription
- Use the Transaction ID from the existing subscription
- Use the Date Created from the original subscription
- Use the Expiration Date from the original subscription
- Set the subscription status Active
- Click “Add Subscription”
- Once you confirm the newly created subscription is set up as expected. You can delete the original subscription or update the Profile ID from the original subscription by setting it to blank or 0. This confirms upcoming renewals will only renew the new subscription in EDD, not the original you are replacing.
Manually Migrating Subscriptions
If you have existing Subscriptions in PayPal, Stripe, or another Payment Gateway and want to migrate them over to work with the EDD Recurring Payments extension, follow these steps to make it work.
1. Navigate to Dashboard → Downloads → Subscriptions → Add New.
2. Enter all of the data on the form there until you get to the field titled Profile ID.
3. Each Payment Gateway has a unique ID for each customer’s subscription. To connect the user’s subscription to the gateway, you need to obtain the Profile ID (Subscription ID) and Transaction ID from your Payment Gateway. Find your gateway below and follow the specific steps for that Gateway:
Stripe Subscription ID and Transaction ID:
1. Log into your Stripe Account and navigate to Customers → Subscriptions in the left sidebar.
2. Click on the subscription in question.
3. Copy the subscription ID and paste it into the Profile ID field in your WordPress dashboard (see first steps on this page).
4. Now, we need the Transaction ID. In your Stripe account, click on Payments (or click the customer’s email address in the Subscription details) on the left sidebar. Find the first payment which started the customer’s subscription. Click on it, and scroll down to the Connections section and copy the ID, beginning with “ch_”:
5. Paste the Transaction ID and fill out the rest of the fields and click Add Subscription.
6. If you haven’t already when you initially set up EDD Recurring, set the Stripe Webhook to point to your website so that it can tell Easy Digital Downloads when new recurring payments come in. Follow the guide for setting up Recurring and Stripe webhooks here.
Paypal Subscription / Recurring ID and Transaction ID:
1. Log into your PayPal account and go to the Transaction you want to migrate by going to Activity > All Transactions in the menu at the top.
2. Find the Payment in question and click on the customer name to open.
3. The Transaction ID and Recurring or Subscription ID (Profile ID in EDD) will be listed there. Copy and paste them to the EDD Subscription you are creating.
4. Finally, make sure you set your Paypal IPN to point to your website so that it notifies Easy Digital Downloads when a recurring payment has gone through. This way, a new Payment will be generated in Easy Digital Downloads to match up with the recurring payment in Paypal. You can follow the Paypal IPN Guide to set up your IPN for Easy Digital Downloads.
Creating a Stripe Subscription
There might be an instance where you want to create a new subscription in Stripe. Maybe an error occurred or the customer cancelled inadvertently and you need to re-create the subscription.
Note, if there is an existing subscription in Stripe, Stripe does allow you to change the pricing of the subscription, so you can utilize an existing subscription if you need to make changes. You can add or remove products, add a coupon code to update the pricing or add a trial to extend the renewal date.
1. From your Stripe Dashboard, go to Customer and open the customer in question.
2. From the customer details in Stripe, click the + to create a subscription
3. Add a product. If you need a unique price, any product will work as the price is what matters, the customer does not see what product is added to this subscription. You can also apply a coupon to lower the price for one payment or indefinitely depending how the coupon is configured.
4. Configure Free Trail Days. If you want the subscription to bill today, skip this step. If a payment already exists or you don’t want the amount to bill until a later date, set the “Free trial days”.
When you input a number of days, Stripe will present the “Ends” date, the customer will get charged on this date.
5. Click, Create subscription. Review the summary on the right side, to confirm the amount due today is correct and the “ends” date is correct if you added a trial date.
6. Open the new subscription in Stripe and copy the Subscription ID. Use that when creating or re-creating the subscription in EDD using the instructions in this documentation.