Person using credit card and laptop to manage subscription billing and recurring payments

How to Set Up Recurring Payments in EDD to Build Predictable Monthly Revenue

One-time sales create revenue spikes. Recurring subscriptions create revenue floors. For Easy Digital Downloads store owners, the EDD Recurring Payments addon converts your download store into a subscription business with predictable monthly cash flow, automated billing, and the kind of financial stability that makes planning, hiring, and investing in new content genuinely possible. This guide covers the complete setup path: installing the addon, configuring subscription products, connecting your payment gateway, managing the subscriber lifecycle, handling failed payments, and extracting the revenue forecasts that let you run the business on data instead of gut feeling.

Person using credit card and laptop to manage subscription billing and recurring payments

What EDD Recurring Payments Does

EDD Recurring Payments is the official subscription billing extension for Easy Digital Downloads, maintained by Sandhills Development (the team behind EDD itself). It adds recurring billing logic on top of EDD’s existing product and payment infrastructure, which means you keep all of EDD’s download management, customer tracking, and reporting while gaining the subscription-specific capabilities you need.

The addon handles the full subscription lifecycle, and integrates natively with Stripe, PayPal Standard, PayPal Commerce, Authorize.net, and Braintree. Each gateway handles the actual payment processing while EDD Recurring manages the subscription state on the WordPress side.

  • Recurring billing at configurable intervals: weekly, monthly, quarterly, semi-annually, annually
  • Free and paid trial periods with configurable length
  • Signup fees charged only on the first payment
  • Automatic subscription renewal attempts on the renewal date
  • Failed payment retries with configurable timing and email notifications
  • Subscription cancellation from both the admin and customer account pages
  • Plan upgrade and downgrade flows with automatic proration via Stripe

Prerequisites and Installation

EDD Recurring Payments requires Easy Digital Downloads 3.0 or higher and PHP 7.4 or higher. Before installing, verify you have a payment gateway with subscription support active. Stripe is the recommended gateway for recurring payments because it creates native Stripe Subscription objects, giving you access to Stripe’s full subscription management tools including smart retry logic, the Stripe customer portal, and detailed subscription events in the Stripe dashboard. PayPal Standard works but creates reference transactions rather than Stripe-style subscription objects, which limits your visibility into the subscription lifecycle.

Install the addon by downloading the zip from your EDD account dashboard, uploading it to Plugins → Add New → Upload Plugin in WordPress, and activating it. After activation, navigate to Downloads → Settings → Recurring to review the global configuration options before creating any subscription products. The key settings at this level are the renewal reminder timing (how many days before renewal to send the customer a reminder email), the failed payment email content, and the subscription cancellation behavior (immediate vs. end of billing period).


Creating Your First Recurring Product

Every recurring EDD product starts as a standard Download post. Navigate to Downloads → Add New and create the product as you normally would: title, description, download files, and categories. The recurring configuration lives in the Download Prices metabox, which gains new fields once the addon is active.

Enabling Recurring on a Single-Price Product

For a product with a single price, you will see a checkbox labeled “Enable recurring payments” in the pricing options. Check it to reveal the recurring configuration fields. Set the billing period from the dropdown: weekly, monthly, quarterly, semi-annually, or annually. Each option creates a different subscription cycle, and the customer’s renewal date is calculated from their initial purchase date rather than a fixed calendar date.

The Signup Fee field is optional. If set, this amount is charged on the first payment only, in addition to the regular subscription price. Use signup fees for setup costs, access fees, or to discourage high-churn low-value subscribers. For a $19/month subscription with a $49 signup fee, the customer pays $68 on day one and $19 on every subsequent renewal. The signup fee does not repeat.

The Trial Duration field lets you offer a free trial period before the first charge. Set the number of days and whether the trial requires payment information up front (credit card on file, charged after trial) or is genuinely free with no payment required until the trial ends. Free trials without a credit card requirement have higher signup conversion but dramatically higher abandonment at the end of the trial. Trials with a card on file have lower conversion but much higher trial-to-paid rates. For most EDD stores selling software or digital content, requiring a card at trial signup produces better long-term revenue even though it reduces trial volume.

Variable Pricing for Multiple Subscription Tiers

For stores offering multiple membership tiers, EDD’s variable pricing system works directly with Recurring. Enable variable pricing on the Download and add as many price variations as you need. Each variation gets its own recurring configuration: a Basic tier might be $9/month with no trial, while a Pro tier is $29/month with a 7-day free trial, and an Enterprise tier is $99/month billed annually.

Variable pricing with multiple billing periods (monthly and annual) on the same product is supported by creating separate variations for each combination: “Pro Monthly” at $29/month and “Pro Annual” at $249/year. This is more transparent than a toggle that changes the billing cycle because each option appears clearly on the product page and in the cart. When building your pricing page, link directly to the specific variation so customers land on the correct option rather than having to select it.

If you offer both one-time downloads and recurring membership access through EDD, you can have both types of products in the same store. The recurring configuration only applies to products where you have enabled it. One-time purchase downloads remain unchanged. For a detailed look at combining recurring billing with content restriction, the EDD membership site guide covers the full membership stack built on top of EDD Recurring.


Payment Gateway Setup for Subscriptions

Not all EDD payment gateways support recurring billing. The gateways with native recurring support are Stripe, PayPal Standard (via reference transactions), PayPal Commerce, Authorize.net CIM, and Braintree. If you are using a gateway not on this list, you cannot process recurring payments through it.

Stripe Configuration

Stripe is the strongest choice for recurring payments in EDD. When a customer purchases a recurring product through Stripe, EDD Recurring creates a Stripe Customer, a Stripe Payment Method for their card, and a Stripe Subscription object. From this point forward, Stripe handles the billing schedule autonomously: it charges the card on each renewal date, handles the payment retry logic using its internal smart retry algorithm, and updates the subscription status via webhooks that EDD Recurring listens for.

To configure Stripe for recurring, go to Downloads → Settings → Payment Gateways → Stripe and ensure your API keys are entered in live mode. Enable the “Create Stripe Subscriptions” option if your version of the addon offers it explicitly. Then go to your Stripe dashboard and confirm that the EDD webhook endpoint (your-site.com/?edd-listener=stripe) is registered and receiving events. The critical events for recurring are invoice.payment_succeeded, invoice.payment_failed, customer.subscription.deleted, and customer.subscription.updated. Without these webhook events processing correctly, EDD will not update subscription statuses in response to Stripe events.

Enable Smart Invoice Statement Descriptors in your Stripe dashboard so the charge appears recognizably on customers’ card statements. Generic descriptors like “STMT*12345” are a leading cause of chargebacks because customers do not recognize the charge. Set your store name or a short descriptor that matches your brand.

PayPal Configuration

PayPal Standard uses reference transactions for recurring billing, which requires approval from PayPal (not automatic). Log into your PayPal Business account, go to Account Settings → Account Information and request reference transaction capability. This process can take several business days. Without this approval, PayPal Standard will process the initial payment as a one-time charge only.

PayPal Commerce (the newer PayPal integration in EDD) offers a better subscription experience than PayPal Standard but still lacks the subscription management sophistication of Stripe. If your customer base strongly prefers PayPal, enable both Stripe and PayPal Commerce so customers can choose. EDD Recurring handles subscriptions correctly through either gateway from the EDD side; the difference is in the gateway’s own subscription tooling and retry logic.

The Subscription Management Dashboard

Once subscriptions are active, navigate to Downloads → Subscriptions to view and manage them. The dashboard displays all subscriptions with their current status, customer name, product, billing period, amount, renewal date, and payment count. You can filter by status (active, cancelled, expired, pending, failing, completed, trialling) and search by customer name or email.

Clicking on an individual subscription opens the detail view, where you can manually update the renewal date (useful for customer service situations where you need to extend access), cancel the subscription with or without immediate access revocation, update the subscription amount (for grandfathered pricing adjustments), and view the full payment history for that subscription. The payment history shows every charge attempt with the result, amount, and date, which is essential for diagnosing payment issues.

The customer view in Downloads → Customers also shows their active subscriptions, making it easy to look up a specific customer’s subscription status without filtering the global subscriptions list. Customers can manage their own subscriptions (view renewal date, cancel, update payment method) through the EDD customer account area, accessible via the [edd_subscription_history] shortcode on your account page.


Subscription Status Lifecycle

Understanding the subscription status flow is critical for diagnosing issues and setting customer service expectations. EDD Recurring uses seven distinct statuses:

  • Pending, checkout initiated, payment not yet confirmed
  • Trialling, free trial active, no payment collected yet
  • Active, subscription in good standing, renewing automatically
  • Failing, most recent payment attempt declined, retries in progress
  • Cancelled, customer or admin cancelled; access continues until end of billing period (if configured)
  • Expired, all retry attempts exhausted, or subscription end date passed
  • Completed, fixed-cycle subscription (e.g., 12 monthly payments) has run its full course

A subscription moves from Trialling to Active when the first payment succeeds on the trial end date, or to Failing if the payment is declined. From Failing, a successful retry moves the subscription back to Active. If all retries fail, the subscription moves to Expired and access is revoked according to your cancellation settings.


Failed Payments, Retry Logic, and Dunning

Failed payments are the leading cause of involuntary subscription churn. A card declines for many reasons: insufficient funds, expired card, card issuer fraud block, card number changed after replacement. Many of these are temporary conditions that resolve if you retry the charge one to three days later. Your retry configuration directly impacts how much involuntary churn you recover.

In EDD Recurring settings, configure the failed payment retry schedule. The standard approach is to retry on day 1, day 3, and day 7 after the initial failure. After the final retry fails, send a final cancellation notice and move the subscription to expired status. EDD Recurring sends automated emails at each failure event, the initial failed payment notification, the retry attempt notifications, and the final cancellation email, all configurable in the Settings → Emails section.

If you use Stripe, enable Stripe’s Smart Retries in your Stripe dashboard in addition to EDD’s retry schedule. Stripe’s machine learning-based retry system analyzes card issuer patterns and retries at statistically optimal times, recovering significantly more failed payments than fixed-schedule retries alone. When both are active, Stripe’s retry attempts will update the EDD subscription status via webhook events, so the subscription stays accurate in your dashboard even when Stripe is managing the retry cadence autonomously.

Beyond automated retries, a dunning email sequence improves recovery further. In addition to EDD’s built-in failed payment emails, configure a three-to-four email sequence through your email provider (Mailchimp, ConvertKit, or ActiveCampaign, all of which have EDD integrations). The sequence should: acknowledge the payment issue without alarm, provide a direct link to the EDD account page where the customer can update their payment method, follow up 48 hours later if the issue is unresolved, and offer an alternative payment option (PayPal if Stripe failed, for example) on the third email. Combining automated retries with a manual-intervention dunning sequence can recover 60–70% of initially failed renewals before the subscription expires.

Cancellation Handling and Grace Periods

When a customer cancels, EDD Recurring gives you two options: revoke access immediately upon cancellation, or allow the subscription to remain active through the end of the current billing period. End-of-period cancellation is almost always the better choice. Customers who have paid for the current month expect access through that month, and immediate revocation generates support tickets, refund requests, and negative reviews that far outweigh the administrative simplicity of immediate access removal.

Configure end-of-period access in the Recurring settings under Subscription Cancelled Status. When set to retain access until period end, the subscription status in your dashboard will show as “Cancelled” with a specific end-of-access date displayed, so your support team can see exactly when access will stop without manually calculating renewal dates.

Consider adding a pause option to your cancellation flow. If a customer is cancelling due to temporary budget constraints, offering a one-to-three month pause (where billing stops and access continues, then resumes automatically) converts a permanent cancellation into a temporary suspension. EDD Recurring does not have a built-in pause feature, but you can approximate it by manually setting a future renewal date in the subscription detail view, effectively extending the current period without charging. For high-value subscriptions or members who have been active for more than six months, a customer success email offering a pause is worth the manual work involved.

Plan Upgrades and Proration

When a subscriber wants to move from a lower tier to a higher tier (or from monthly to annual billing), EDD Recurring handles this through the subscription update flow. In the Subscriptions dashboard, open the relevant subscription and change the associated download variation or billing amount. EDD Recurring calculates the proration automatically when the Stripe gateway is used: the unused portion of the current billing period is credited against the new plan price, and the customer pays only the difference for the remainder of their current period.

For the customer-facing upgrade path, you have two options: a self-service upgrade through the account page, or a manual upgrade initiated by your team. The self-service approach works well when your tier differences are clear and the upgrade decision is simple. For complex upgrades (such as moving from an individual plan to a team plan that requires additional configuration), a manual upgrade triggered by a support request gives you the opportunity to set up the new access correctly before billing the customer for the higher price.

Downgrades are typically handled differently than upgrades. Most subscription businesses do not prorate downgrades, instead, the downgrade takes effect at the start of the next billing period. This prevents gaming where customers upgrade, consume premium features for a week, then downgrade and receive a large credit. Set this expectation clearly in your subscription FAQ.


Revenue Forecasting with Subscription Data

The financial advantage of recurring revenue is predictability, but only if you track the right metrics. The foundational metric for any subscription business is Monthly Recurring Revenue (MRR): the sum of all active monthly subscription amounts, normalized to a monthly figure. Annual subscriptions contribute MRR equal to their annual price divided by 12. EDD’s built-in reports show gross revenue by date range, but MRR requires a different calculation because it only counts currently active subscriptions, not historical revenue.

Export your active subscriptions from the Subscriptions dashboard and sum the monthly-normalized amounts for all subscriptions in Active status. This figure is your current MRR. Track these four MRR components weekly:

MRR ComponentSourceWhat It Tells You
New MRRNew subscriptions this weekAcquisition effectiveness
Expansion MRRUpgrades from existing subscribersPlan tier conversion rate
Contraction MRRDowngrades from existing subscribersValue perception issues
Churned MRRCancellations and expirationsRetention health

These four components explain every change in your total MRR. If Churned MRR is growing faster than New MRR, retention needs attention before you invest more in acquisition.

Customer Lifetime Value (LTV) for subscription businesses is calculated as Average Revenue Per User divided by Monthly Churn Rate. At $29/month average with 5% monthly churn, LTV is $580. At the same price with 3% monthly churn, LTV is $967. Every percentage point reduction in churn increases customer LTV by a significant margin, which is why churn reduction investments almost always have better ROI than equivalent acquisition spending. Use your EDD Recurring subscription data to calculate actual LTV for each product tier and compare it against your customer acquisition cost to understand the true margin of your subscription business. For EDD stores that operate SaaS-style businesses on top of this recurring infrastructure, the EDD SaaS subscription platform guide covers the full technical stack.

Common Setup Issues and Fixes

Subscriptions not renewing automatically: The most common cause is a missing or misconfigured webhook. Go to your payment gateway dashboard and verify that the webhook endpoint is registered and that recent events are being delivered successfully. In Stripe, the webhook section shows a log of events with delivery status. If events show as failed with a timeout or authentication error, re-register the webhook URL from EDD settings or check that your server does not block incoming webhook requests from Stripe IP ranges.

Subscription status not updating after a failed payment: Same root cause, webhook delivery failure. Test webhook delivery manually from your Stripe dashboard by sending a test invoice.payment_failed event to your endpoint and checking whether EDD updates the subscription status.

Trial subscriptions charging immediately: This typically means the payment gateway is not configured to honor the trial period. With Stripe, the trial creates a Stripe Subscription with a trial_end timestamp. Verify that EDD Recurring’s Stripe integration is passing the trial end date correctly by checking the subscription object in your Stripe dashboard. If the trial end timestamp is set correctly in Stripe but the customer is still being charged, the issue is on the Stripe side, check that the payment method attached to the subscription does not have a pending authorization charge that is being interpreted as a payment.

Duplicate subscriptions for the same customer: This happens when a customer attempts checkout multiple times (often due to a payment error on the first attempt) and EDD creates a separate subscription for each attempt. Deactivate the extra subscriptions manually from the Subscriptions dashboard. To prevent this, set up EDD’s duplicate purchase check and configure your checkout error messages to clearly indicate that the payment was declined (not silently failed) so customers understand they need to re-enter their card information rather than trying again.

Wrapping Up

EDD Recurring Payments is one of the highest-impact addons in the EDD ecosystem because it fundamentally changes your business model from unpredictable transaction revenue to predictable subscription revenue. The setup is straightforward once you understand the gateway requirements and webhook architecture, and the subscriber lifecycle management tools in the Subscriptions dashboard give you the visibility you need to operate the subscription business effectively.

The pattern that works: use Stripe as your primary gateway for its superior subscription management and smart retry logic, set end-of-period access on cancellation, configure a dunning email sequence alongside EDD’s built-in retry emails, and track MRR weekly from day one. Recurring revenue compounds, every subscription retained this month is still contributing MRR next month without additional acquisition cost. That compounding dynamic is what makes the subscription model worth the additional configuration complexity over simple one-time sales.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top