Skip to content

Recurring Giving

Miranda supports recurring donations at three intervals. Donors can opt into recurring giving from any donation page that has allow_recurring enabled.

The RecurringInterval enum defines the available billing frequencies:

ValueDescriptionStripe interval
monthlyBilled every monthmonth
quarterlyBilled every 3 months3x month
annualBilled once per yearyear
  1. Donor selects a recurring interval on the donation page
  2. Miranda creates a Stripe Subscription via the foundation’s connected account
  3. A Donation record is created with:
    • type = DonationType::Recurring
    • recurring_interval = the selected interval
    • stripe_subscription_id = the Stripe subscription ID

Stripe handles all recurring billing automatically. For each successful charge:

  1. A Stripe webhook fires
  2. Miranda creates a new Donation record for the renewal
  3. The contact’s donor relationship metadata is updated (lifetime giving, gift count)
  4. An activity is logged on the contact’s timeline

When a recurring charge fails:

  • Stripe retries according to its Smart Retries configuration
  • The donation status is set to failed
  • If a donation_failed sequence trigger is configured, the contact is enrolled in the failure recovery sequence
FieldTypeDescription
typeDonationTyperecurring for subscription donations
recurring_intervalRecurringIntervalmonthly, quarterly, or annual
stripe_subscription_idstring?Stripe subscription ID for managing the subscription

Authenticated donors on the miranda.gives portal can manage their recurring gifts through the donor API:

MethodPathDescription
GET/api/donor/recurringList active recurring donations
PATCH/api/donor/recurring/{id}Update a recurring donation (amount, interval, pause, cancel)

The Sustainer page type is optimized for building recurring support:

  • recurring_only option disables one-time donations
  • suggested_monthly provides default monthly amount options
  • impact_per_month message shows donors what their monthly gift accomplishes

Recurring donation management is available on all plans. The platform transaction fee applies to each recurring charge at the foundation’s plan rate:

PlanFee per charge
Starter2.0%
Growth1.5%
Pro1.0%