Recurring Gifts
How monthly, quarterly and yearly gifts are charged and recorded in Salesforce.
The short version
Salesforce keeps the schedule. Stripe holds the cards and moves the money. Every morning at 5:00 AM, Salesforce finds the recurring gifts due that day and asks Stripe to charge each donor's saved card. The donor does not need to do anything.
Where it lives
- Recurring Commitments tab: one record per donor's recurring gift (amount, frequency, fund, appeal, source code, next payment date, card on file).
- Recurring Gifts - Active list view: everything scheduled to charge.
- Recurring Gifts - Did Not Go Through list view: anything that was declined.
Each morning
- At 5:00 AM the job picks up every Active commitment whose Next Payment Date is today or earlier.
- It charges the saved card in Stripe.
- If the charge goes through: a gift (engagement) is recorded with the fund, appeal and source code from the commitment, and the Next Payment Date moves forward one month, quarter or year.
- If the card is declined: the commitment's status changes to Failing, the decline reason is saved in Last Charge Error, and it appears on the Did Not Go Through list. It is not tried again on its own.
- A summary email goes to Laurie and Bridget listing what was charged and what did not go through.
Thank-you letters for recurring charges are set to Don't Send for now, so monthly donors do not get a letter every month.
What it looks like in Stripe
| Description | ADK recurring gift RC-0001 (the commitment's record number) |
|---|---|
| Customer | The donor's existing Stripe customer (the one their card moved over with) |
| Metadata | source = ADK Recurring Gift and donor = <donor name> |
| Donor's card statement | ADK's usual Stripe descriptor, the same as any other ADK charge |
To see only recurring charges in Stripe, filter payments on metadata source = ADK Recurring Gift.
Common tasks
| When | What to do |
|---|---|
| A donor's card was declined and they have given a new card | Update the card in Stripe, then set the commitment's status back to Active. It charges at the next 5:00 AM run for the payment that was missed. |
| A donor asks to skip a few months | Set status to Paused. Paused commitments are never charged. Set it back to Active when they are ready, and adjust the Next Payment Date if needed. |
| A donor cancels | Set status to Cancelled and fill in Cancelled Date and Cancellation Reason. |
| Change an amount or the day of the month | Edit Installment Amount, or Collection Day and Next Payment Date. The next charge uses the new values. |
Statuses
| Status | Charged? | Meaning |
|---|---|---|
| Active | Yes | Charges on its Next Payment Date. |
| Paused | No | On hold at the donor's request. |
| Failing | No | Last charge was declined; waiting on staff. |
| Cancelled | No | The donor stopped the gift. |
| Closed | No | Reached its end date. |
| Draft | No | Not set up yet. |
First run
The first charges run Monday, November 2: 30 gifts totalling $828.75. The next group is November 16 (21 gifts). The 56 commitments moved over from Global Payments are marked Reviewed. Anything added after them starts unreviewed.