Charitable Documentation

Learn how to make the most of Charitable with clear, step-by-step instructions.

Fixed-Term Subscriptions in Recurring Donations

Fixed-term subscriptions let you set a recurring donation to stop automatically, either after a set number of payments or on a specific end date, instead of running until someone cancels it by hand. When the term is reached, Charitable completes the subscription for you, stops billing at the payment gateway, and can email the donor a confirmation.

Available in the Charitable Recurring Donations addon 2.2.0 and later.

Key Features

  • Set a recurring donation to end after a fixed number of payments.
  • Or set it to end on a specific calendar date.
  • Subscriptions complete automatically when the term is reached, with no manual cancellation.
  • The gateway subscription is cancelled at the same time, so the donor is never charged past the term.
  • The term is displayed in the admin recurring donation screen, the donor dashboard, and the donation receipt.
  • A progress indicator shows how many payments have been made toward a payment limit.
  • Works with the existing donor approval workflow, so a term change can be approved by the donor before it applies.

Why Use Fixed-Term Subscriptions?

Many campaigns ask supporters for a defined commitment, such as a 12-month pledge or a capital campaign that runs for a set period. Previously every recurring donation ran indefinitely, so staff had to remember to cancel each one manually when the commitment ended. Fixed-term subscriptions let you set the commitment once and let Charitable end it on schedule, which keeps your reporting clean and protects donors from unexpected charges.

See It In Action

Requirements

  • Charitable Recurring Donations addon 2.2.0 or later.
  • A Stripe subscription. Subscription terms are configured through the Update Subscription screen, which currently supports Stripe.
  • For end-date enforcement to the exact day, Charitable Pro 1.8.16 or later (this uses Stripe’s native cancel_at). On earlier versions a built-in backstop still completes the subscription on the first renewal after the term is reached.

How to Set a Term on a Recurring Donation

Step 1: Update Subscription

In your WordPress admin, go to Charitable » Donations and open the recurring donation you want to limit. In the right panel, open the Donation Actions dropdown.

Donation Actions panel with a cursor selecting'Update Subscription' from the action list.

From here, click on Update Subscription.

A popup will appear that lets you change the amount, billing period, subscription term, and more.

Recurring donation subscription popup

Step 2: Set a Subscription Term

You can choose one of two options for setting the term:

Stop after a Number of Payments:

Enter the total number of payments (e.g., 12). Charitable will automatically cancel the subscription once this number of charges is completed. This is ideal for pledge drives, anniversary campaigns, and installment gifts.

Stop on a Specific Date:

Select a specific calendar date (e.g., June 3, 2027). Charitable will cancel the subscription on this date. This option suits project-based campaigns with a defined end date.

Subscription terms panel showing Stop after a number of payments set to 12 and an informational note about total payments remaining.

Step 3: Save and Confirm

  • Click on Update Subscription to apply the changes.
  • Confirm any prompts that appear.
  • Charitable will communicate the new term to Stripe immediately. The donation log will update with confirmation, reflecting the new plan and term details on the subscription record.

Step 4: Optional: Request Donor Approval for Changes

If you are making changes on behalf of a donor, such as adjusting the amount or term, you can select the option to Request Donor Approval before saving.

request donor approval

This sends an email to the donor with the proposed changes. The donor can approve or decline the changes directly from the email, ensuring a clear paper trail and maintaining the donor’s control over their giving.

When You Would Use This: Fixed Term vs. Indefinite

Not every recurring giving program needs a term. Here is a quick guide to help you decide which approach fits each campaign.

ScenarioBest approachWhy
Annual pledge drive (“Give $50/month for 12 months”)Fixed term: 12 paymentsThe commitment is defined up front. Charitable ends it automatically when the pledge is fulfilled.
Capital campaign with a funding deadlineFixed term: specific end dateThe campaign closes on a known date. No donor gets charged after the campaign ends.
Matching gift window (“We’ll match every dollar for 6 months”)Fixed term: 6 paymentsThe match expires. The recurring gift should expire with it rather than continue unmatched.
Memorial or tribute fund tied to an anniversary yearFixed term: specific end dateThe campaign honors a defined period. A fixed term closes it with intention.
New donor challenge (“Make your first 3 gifts”)Fixed term: 3 paymentsLowers the barrier for first-time recurring donors by making the commitment feel manageable.
Monthly sustaining donors with no defined endIndefiniteThe donor intends ongoing support. No term needed.
Ongoing operational or program supportIndefiniteThe need does not expire. Let the relationship continue naturally.

Configuration Options

Subscription Term types

OptionWhat it doesInputNotes
Run until cancelledThe historical default. The subscription continues until it is cancelled.NoneNo end is applied.
Stop after a number of paymentsThe subscription completes once the total payment count is reached.Whole number, 1 to 1000The admin screen shows an “X of Y payments made” progress indicator.
Stop on a specific dateThe subscription completes on or after the chosen date.A future dateThe date must be in the future. A past date is rejected.

What happens when the term is reached

When the final payment is made, or the end date passes, Charitable will: 1. Mark the recurring donation as Completed. 2. Cancel the subscription at the payment gateway so no further charges occur. 3. Send the Recurring Donation Completed email, if that email is enabled in your settings.

Where the term appears

  • Admin recurring donation screen: a Term row, with a payment-progress indicator for count-based terms.
  • Donor dashboard: a short note such as “for 12 payments” or “until June 3, 2027”.
  • Donation receipt: the same term note.

Troubleshooting

The subscription did not complete on the exact end date

Exact-day cancellation relies on Stripe’s native cancel_at, which is set by Charitable Pro 1.8.16 and later. On earlier versions, the built-in backstop completes the subscription on the first renewal after the end date passes rather than on the day itself. Update Charitable Pro for to-the-day precision.

The Subscription Term options are not showing

Term controls appear in the Update Subscription screen for active Stripe subscriptions. Subscription updates are currently supported for Stripe, so the term options will not appear for other gateways.

The Recurring Donation Completed email did not send

Confirm that the Recurring Donation Completed email is enabled under Charitable email settings. The email only fires when the subscription actually completes and the email is enabled.

Developer Resources

Hooks & Filters

  • charitable_recurring_term_type — Filters the resolved term type (unlimited, count, or end_date) for a recurring donation.
  • charitable_recurring_end_date — Filters the end-date timestamp (Unix seconds, UTC) for an end-date term.
  • charitable_recurring_renewal_donation_created — Fires after a renewal donation is created. The fixed-term backstop hooks here to complete the subscription once the term is reached.
  • charitable_recurring_donation_completed — Fires when a subscription is marked completed, which the gateway uses to cancel the subscription.

Useful Functions

  • charitable_recurring_validate_term( $type, $value ) — Validates and normalizes a proposed term, returning an array or a WP_Error.
  • charitable_recurring_calculate_end_timestamp( $start_ts, $period, $interval, $count ) — Returns the UTC timestamp at which a count-based term should stop. Calendar-aware.
  • charitable_recurring_get_term_label( $donation ) — Returns a human-readable label for a donation’s term, such as “for 12 payments” or “until June 3, 2027”.

Additional Resources

Helpful Links

🤝 Get help when you need it

Connect with Customer Support →  

📑 Find the guide you need

Browse the Documentation Hub →  

⬇️ Download proven strategies, campaign ideas, and expert tools

Get the Fundraising Kit →  

🔗 Let your AI Assistant do the fundraising work for you.

Connect Charitable to your AI assistant →

💸 Get Free Fundraising Resources
Head to the Charitable Fundraising Hub →

🤔 Got questions about Charitable?
Charitable FAQs →

Need help understanding non-profit terms and jargon?
See our Non-Profit Glossary →

Still have questions? We’re here to help!

Last Modified:

What's New In Charitable

View The Latest Updates
🔔 Subscribe to get our latest updates
📧 Subscribe to Emails

Email Subscription

Join our Newsletter

We won’t spam you. We only send an email when we think it will genuinely help you. Unsubscribe at any time!

ai New

🚀 Unleash AI Power in Charitable!

Your AI assistant can now build, edit, and manage your Charitable fundraising campaigns directly — just by asking. With Charitable Pro adding write support for the WordPress Abilities API, tools like ChatGPT, Claude, and Cursor can handle full administrative actions safely through MCP. Why this is important:

  • 🤖 Campaign creation in plain language: Prompt your assistant with a goal like “Set up a fundraiser for the shelter with a $5,000 goal”, and it builds a real draft campaign complete with suggested donation tiers.
  • 🎨 Instant donation form tweaks: Add custom fields, change button colors, or reorder elements without diving into form settings.
  • 📝 Offline gift logging: Tell your assistant about cash or check gifts, and it will match donor emails and record transactions into your history.
  • 🛡️ Safety and control by default: Write access stays strictly off until turned on in Charitable » Tools » AI MCP, keeping read-only reporting safe by default.
  • 📜 Full audit logging: Every change made by an AI assistant is tracked under Charitable » Tools » Logs, so you always know who (or what) updated your site.

Check out our announcement here.

Improvement Payments

💰 Accept Recurring Donations with Windcave and Charitable

A donor sets their gift up once on Windcave’s secure payment page, and Charitable bills every renewal after that on schedule. Why this is important:

🏦 Organizations banked in New Zealand or Australia: monthly giving on the gateway your bank already set you up with, with no second processor to onboard.
⛪ Churches taking regular tithes and offerings: congregants set their own schedule once, which is the simplest way to launch recurring church giving without a separate platform.
🌏 Groups with donors in several currencies: Windcave handles more than 20, so a supporter can give in the currency they actually hold.
📅 Operating funds rather than one-time campaigns: switch on Recurring Only mode and the one-off option disappears, so every gift to that campaign is a subscription.
🧾 Teams with no developer on staff: 3 sets of credentials pasted into a settings page, and no code anywhere.

Check out our announcement here.

automation update

⚡ Visual Automation Builder: Drag and Drop With No Code!

Charitable Automation Connect 2.3.0 introduces the Visual Automation Builder, a full-screen canvas that lays each automation out as a flow of connected cards: a trigger, optional conditions, and a list of actions that run in order.

🧩 Many actions, one trigger: Tag a donor, send an email, add a note, and fire a webhook from a single event, dragged into any order.

✉️ Act inside Charitable: New Send Email, Tag Donor, and Add Donor Note actions run with no external service required.

🔤 Merge tags: Personalize emails and notes with live fields like {first_name}, {total}, and {campaign_name}.

🔁 Apply to existing donors: Run Tag Donor and Add Donor Note against the donors you already have.

🖥️ Canvas or Simple: Switch views anytime, and automations built before 2.3.0 keep working unchanged.

Read more here.

Integration updated

📬 Introducing Brevo for Charitable: Turn Donors into Subscribers Automatically

The moment a supporter makes a gift is when they are most engaged. With the new Brevo integration for Charitable, you can automatically turn those one-time donors into long-term subscribers without touching a single spreadsheet.

Simply collect donor consent right on your donation form and start your welcome series immediately.

What’s New:

🔄 Automated Subscriber Sync: New donors who opt in are added straight to your Brevo contact list as soon as their payment clears—no manual exports or CSV imports required.

🎯 Granular Consent & Opt-In Control: Customize your checkbox label, choose whether it defaults to checked or unchecked, or turn on Brevo double opt-in to keep your list clean and compliant.

📋 Per-Campaign List Mapping: Route supporters to your global email list or map specific campaigns to targeted Brevo lists to tailor your follow-up messaging.

⚡ 5-Minute Setup: Connect instantly by pasting your Brevo API key into the Newsletter settings, map your contact fields, and start building your email list on autopilot.

Ready to grow your mailing list? Brevo is available now starting on the Charitable Plus plan—connect your account today!

recurring donations updated

💳 Introducing Card Updates: Fix Expired Cards Without Losing Subscriptions!

newExpired or updated credit cards are one of the biggest silent leaks in recurring fundraising. With Card Updates in the Recurring Donations extension, donors can now refresh their payment details directly—keeping their subscription, schedule, and giving history completely intact.

No canceled plans, no lost history, and zero administrative headache for your team.

What’s New:

⚡ 30-Second Self-Service: Donors get a dedicated “Update Card” button in their dashboard that opens Stripe’s secure, PCI-compliant Customer Portal to update card details instantly.

🔒 Scoped & Safe Access: Scoped exclusively to card updates by default, donors can’t accidentally cancel or alter their plans from inside the portal, keeping your webhooks and data in sync.

🤝 Admin-Assisted Support: Helping a donor on the phone? Open their secure Stripe portal in one click from your admin screen or generate a single-use update link to email them.

📋 Automatic Audit Trail: Every payment method update is recorded automatically with a timestamp in both system-wide logs and the individual donor’s profile.

Ready to protect your recurring revenue? Get the Plus or Pro plan and update Recurring Donations to 2.3.0+ and enable “Update Payment Method” under your Settings today!