Donor experience
When you’ve enabled recurring donations under Donations → Form, the public/donate page shows a Make this a recurring donation toggle below the amount picker. Toggling it on reveals a frequency dropdown filtered to the frequencies you’ve enabled (monthly, quarterly, every 6 months, annually).
After the donor submits, they’re sent through Stripe Checkout in subscription mode. Stripe handles the payment method (card, Apple Pay, Google Pay, link, depending on what’s enabled on your connected account) and saves it for future charges. The donor lands on your /donate/success thank-you page after the first charge clears.
Each subsequent cycle, Stripe automatically attempts to charge the saved payment method. On success, Haven creates a new payment_records row linked back to the recurring donation, allocates a sequential receipt number, and emails the donor a receipt for that specific cycle.
Member self-service
Donors who are signed in as members of your organization manage their own recurring donations from{slug}.gohaven.co/member/donations. The page has two sections:
- Recurring donations
- Donation history
Lists every active and historical recurring subscription tied to the member. For each, the member can:
- Pause — suspends future charges without cancelling. Resume anytime.
- Resume — reactivates a paused subscription on its next normal cycle.
- Cancel — ends the subscription. Cancelled donations can’t be resumed; the donor would need to start a new one.
Non-member donors don’t have a portal account, so they manage their subscriptions through the receipt emails they receive. Each receipt email links them back to your organization, and they can email your admin to request a pause or cancel.
Admin oversight
Admins manage all recurring donations from the Recurring tab under Donations in the admin sidebar. The top of the page shows at-a-glance counts:- Active — currently charging on schedule
- Paused — suspended by donor or admin
- Failed — Stripe gave up after multiple retry attempts (4 by default)
- Monthly equivalent — sum of every active recurring donation normalized to a monthly figure (annual / 12, quarterly / 3, etc.) so you can quickly see your monthly recurring revenue from giving
- Donor name and email (or “Anonymous” if the donor opted out)
- Designation
- Amount + frequency
- Next charge date (when active)
- Status with descriptive badge
When a payment fails
Stripe automatically retries failed charges on its standard smart-retry schedule (up to 4 attempts spread over a few weeks). On each failure, Haven increments the recurring donation’s failure count. If Stripe gives up after the final attempt, Haven marks the donation as Failed. Failed donations show on the donor’s portal with a clear message asking them to update their payment method. For now, donors update their payment by cancelling the failed subscription and starting a new one with their updated card. A direct “Update payment method” button (via the Stripe Customer Portal) is on the roadmap.How recurring donations end
A recurring donation ends in one of three ways:- Donor cancels from their member portal (or admin cancels on their behalf)
- Stripe gives up after multiple failed payment attempts (status flips to Failed; donor must start a new subscription with a new payment method)
- Donor cancels via Stripe directly (rare — happens if they have access to the Stripe-hosted Customer Portal). Stripe fires a
customer.subscription.deletedwebhook and Haven mirrors the cancel to the recurring_donations row.