How to fix failed high-value payments with Gravity Forms + Stripe: A WordPress case study

Troubleshooting large donation failures and payment issues when using Gravity Forms and Stripe in WordPress

Why this matters

For organisations that rely on online donations or large payments, like charities, schools, or membership-driven services, failed transactions aren’t just annoying. They’re reputation-damaging and revenue-killing.

This post walks through a real-world case study where a high-profile charity was losing large donations (£1,000–£2,500) due to subtle but critical issues in their Gravity Forms + Stripe payment integration. If you’re using WordPress and taking payments or donations, this is what you need to get right, especially for high-value transactions.


The problem: Large donations were failing silently

Our client (a national charity) noticed something worrying:

  • Donors were completing the donation process and approving payments in their banking apps…

  • But Stripe never confirmed the transaction.

  • No one was alerted – not the donor, not the charity’s team.

  • The result? Thousands in lost donations and confused supporters.

This was happening primarily for donations above £1,000 – right when reliability matters most.


The underlying stack

  • WordPress site

  • Gravity Forms for donation forms

  • Stripe Add-On for payments

  • 3D Secure (Strong Customer Authentication) was in place

  • Capture mode set to manual


7 Critical insights from our investigation

✅ 1. Manual capture mode creates extra risk

Using Stripe in manual capture mode means that even after a user authenticates payment, your server must send a second request to complete the transaction.

If anything fails (timeout, webhook issue, etc.), the donation stalls – even if the donor thinks it succeeded.

🔧 Fix: Switch to automatic capture for donations to reduce friction and risk.

✅ 2. Webhook failures break the flow

Stripe uses webhooks to finalise payments, especially after 3D Secure challenges.

If your server is down, overloaded, or blocked, Stripe can’t complete the transaction.

🔧 Fix:

  • Monitor webhook health

  • Ensure webhook URLs are always online and SSL-valid

  • Add logging and alerts for failed webhook responses

✅ 3. No real-time donor feedback = confusion

Donors saw confirmation screens and approved payments in their banks…

…but the payment failed silently.

🔧 Fix:

  • Use the payment_intent.payment_failed webhook to trigger:

    • A custom on-screen message

    • An automatic email to donor and admin

  • Avoid generic success pages unless payment has been truly confirmed

✅ 4. 3D Secure flow is easily broken

3D Secure (SCA) adds extra steps. If the browser drops connection, times out, or fails to redirect, Stripe never gets final confirmation.

🔧 Fix:

  • Test 3D Secure payments across devices, browsers and real-world scenarios

  • Consider using Stripe’s hosted payment pages for better SCA handling

✅ 5. Your hosting affects payment reliability

We found failures clustered during specific periods – likely caused by temporary server issues (downtime, slow response times, SSL quirks).

🔧 Fix:

  • Host your site on fast, reliable infrastructure

  • Ensure uptime and performance monitoring is in place

✅ 6. Form plugins are not payment gateways

Gravity Forms is powerful – but it’s not Stripe. It relies on a lot of moving parts, and isn’t bulletproof for high-value payments.

🔧 Fix:

For high-value donations, consider:

  • Stripe-hosted or embedded forms

  • Dedicated donation platforms like Raiser’s Edge

  • Routing donors to different flows based on donation amount (e.g. over £1,000 = redirected to a more robust hosted page)

✅ 7. Test high-value scenarios regularly

Most people test forms with £10 or £20. But high-value payments often behave differently due to SCA, fraud protection, and added security scrutiny.

🔧 Fix:

Create a staging environment and simulate:

  • High-value donations

  • Weak and strong internet connections

  • Timeouts, browser closures, mobile banking approvals

Final thoughts: When payments matter most, you need it solid

Taking £1,000+ payments or donations via your WordPress site is serious business. The Gravity Forms + Stripe integration is convenient, but not invincible, especially when manual capture, 3D Secure, and webhook dependencies collide.

At WPCTO, we help organisations like yours audit, troubleshoot, and improve payment workflows, especially where Stripe and WordPress are involved. If you’re dealing with failed donations, or you want peace of mind that your system works, talk to us.

Need help with Gravity Forms + Stripe for high-value payments?

Whether you’re a charity, business, or membership platform — we can audit your setup and help you secure every transaction.