Charitable Documentation

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

“PayPal Donation(s) Stuck in Pending” 

If you receive an email with the subject line “[Your Site] PayPal Donation(s) Stuck in Pending”, Charitable Pro is alerting you that one or more PayPal donations have been waiting for payment confirmation for longer than expected. This article explains what the email means, what to check, and how to resolve it.

Available in Charitable Pro 1.8.13+.


What the Email Means

The email looks like this:

Subject: [Your Site Name] PayPal Donation(s) Stuck in Pending

The following PayPal donation(s) have been Pending for more than 24 hours
with no payment confirmation received:

#123456

Please check your PayPal account and update the donation status manually
if payment was received.

View donations: https://yoursite.com/wp-admin/edit.php?post_type=donation&post_status=charitable-pending

Charitable Pro monitors your PayPal donations daily. When a donation has been in Pending status for more than 24 hours without receiving a payment confirmation from PayPal (called an IPN, or Instant Payment Notification), it flags that donation and sends this alert to your site’s admin email address.

This does not mean the donation failed. It means that Charitable Pro has not yet received confirmation from PayPal that the payment was completed. The donor may or may not have paid – you will need to check your PayPal account to find out.

Each donation is only flagged once, so you will not receive repeated emails about the same donation.


Why This Happens

When a donor completes a PayPal payment, PayPal sends a notification to your site in the background. Charitable Pro receives this notification and uses it to update the donation status from Pending to Paid automatically.

If that notification never arrives, the donation stays in Pending indefinitely. The most common reasons this happens:

PayPal IPN is not set up correctly. IPN (Instant Payment Notification) must be enabled in your PayPal account and pointed to your site. If it is disabled or misconfigured, Charitable Pro will never receive confirmation for any PayPal donation.

A security plugin or firewall is blocking the IPN request. Some server-level security tools block incoming POST requests from external services, including PayPal’s IPN callbacks.

The donor did not complete their payment. Donors who start a PayPal checkout but abandon it before paying will create a Pending donation with no IPN to follow.

The payment is genuinely pending in PayPal. Certain payment types, such as eChecks or payments flagged for manual review by PayPal, remain in a pending state in PayPal itself for several days before clearing.


Step 1: Check PayPal First

Before taking any action in WordPress, log into your PayPal account and look up the donation.

  1. Go to your PayPal account and search for transactions around the date and amount of the flagged donation.
  2. Check whether the payment was received, is pending in PayPal, or does not exist.

If the payment was received in PayPal: The IPN notification was lost in transit. See Step 3: Update the Donation Manually below, and then address your IPN configuration so future donations confirm automatically.

If the payment is pending in PayPal (eCheck, review, etc.): No action is needed yet. The donation status will update automatically once PayPal releases the payment and sends the IPN. You may receive another alert if it remains pending for another 24-hour cycle — but note that each unique donation is only emailed once, so this is more likely a new donation.

If no payment exists in PayPal: The donor likely abandoned the checkout. You can mark the donation as Cancelled or leave it as Pending. No payment was collected.


Step 2: Check Your IPN Configuration

If you found that payment was received in PayPal but not reflected in Charitable Pro, your IPN setup needs attention. This is also worth checking proactively if you receive this alert regularly.

For full IPN setup and verification steps, see our PayPal IPN Troubleshooting guide.

The key things to verify:

  • IPN is enabled in your PayPal account settings
  • The IPN notification URL is set to: https://yoursite.com/?charitable-listener=paypal
  • No security plugin (Wordfence, Sucuri, etc.) is blocking POST requests from PayPal’s IP ranges
  • Your site is publicly accessible (not behind a maintenance mode or password protection)

Step 3: Update the Donation Manually

If you confirmed payment was received in PayPal, update the donation status in WordPress manually.

  1. Click the View donations link in the email, or go to Donations in your WordPress admin and filter by Pending status.
  2. Find the donation listed in the email (identified by the # number).
  3. Open the donation.
  4. Change the status to Paid (or the appropriate status) and save.

This will not trigger another payment — it simply updates the record to reflect the payment you already confirmed in PayPal.


If You Keep Getting These Emails

Receiving this alert occasionally for a single donation is not unusual. But if you receive it regularly for multiple donations, it is a sign that PayPal IPNs are consistently not reaching your site.

Common causes and fixes:

IPN is disabled in PayPal. Log into PayPal, go to Account Settings, find Instant Payment Notifications, and enable it. Set the notification URL to https://yoursite.com/?charitable-listener=paypal.

A security plugin is blocking PayPal requests. Check your firewall or security plugin logs for blocked requests from PayPal IP addresses. Whitelist PayPal’s IPN delivery servers if needed.

Your IPN URL has changed. If you recently migrated your site, changed your domain, or moved from HTTP to HTTPS, your IPN URL in PayPal may be pointing to the old address.

For a full walkthrough of diagnosing and fixing IPN delivery issues, see the PayPal IPN Troubleshooting guide.


Adjusting the Notification Threshold

By default, Charitable Pro flags donations that have been Pending for more than 24 hours. You can change this threshold using the charitable_stale_pending_hours filter.

Add this to your theme’s functions.php file or a site-specific plugin:

// Flag donations pending for more than 48 hours instead of 24.
add_filter( 'charitable_stale_pending_hours', function( $hours ) {
    return 48;
} );

You can set this to any number of hours. Setting it higher gives PayPal more time to deliver the IPN before you are notified, which can be useful if you accept eChecks or see occasional IPN delays.


Frequently Asked Questions

Will I get a second email about the same donation?

No. Each donation is flagged only once. Once Charitable Pro sends the alert for a specific donation, it will not send another alert for that same donation, even if it remains in Pending status.

Who receives the email?

The email is sent to the admin email address configured in WordPress under Settings > General > Administration Email Address.

Can I disable these emails?

There is no on/off toggle in the settings UI. To disable the emails, you can remove the hook that sends them:

add_action( 'init', function() {
    $cron = Charitable_Cron::get_instance();
    remove_action( 'charitable_daily_scheduled_events', array( $cron, 'check_stale_pending_donations' ) );
} );

We recommend resolving the underlying IPN issue rather than disabling the alerts, as the alerts exist to prevent missed donations from going unnoticed.

The donation ID in the email doesn’t match what I see in PayPal. How do I find the right transaction?

The number in the email (e.g., #123456) is the WordPress donation ID, not a PayPal transaction ID. To find the matching PayPal transaction, open the donation in your WordPress admin and look for the PayPal transaction or invoice reference stored in the donation details. You can then search for that reference in your PayPal account activity.


Reach Out To Support

If you have followed all the instructions above and still running into problems, contact support.

Related Resources

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!

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!

Integration page builder

Divi Fans Rejoice! Native Divi 5 Campaign Progress Bar Module!

With our new native Divi 5 module, you can anchor your microsites with real-time fundraising stats directly on the visual canvas. Here’s how it works, and why it’s worth turning on today.

Create campaign updates that are VISUAL AND LIVE. You can also:

📊 Campaign Progress Bar: Drop a live progress bar into any Divi 5 layout and show goal progress in real time.

🎨 Deep styling controls: Easily customize the bar and track color, height, and radius to match your brand perfectly.

👁️ Visual Builder ready: Configure and preview everything directly on the Divi canvas as a first-class module.

🔁 Identical rendering: The same exact engine powers this module, meaning consistent design without legacy shims.

✅ Faster launches: Never leave the Divi 5 interface to configure shortcodes or guess how your goal labels will look.

Learn more here.