recurringGiftId.
This page covers the RecurringGift resource shape, the relationship between the schedule and the Gifts it produces, the lifecycle states the schedule moves through, and the operations partner integrations use most: updates, cancellations, and activity inspection.
The RecurringGift record
The RecurringGift record is one of the richest in the Raise API — over 50 fields covering identity, schedule, payment method, status, and processing history.Schedule and amount
frequency is an integer enum (the spec shows the type as a $ref to a Frequency enum without documented label-to-integer mappings). Use formattedFrequency for display. For programmatic logic, discover the integer-to-label mapping through the live API or coordinate with the platform team before relying on specific integer values.⚠️ Spec gap: RecurringGift frequency enum values are not documented in the spec. Same applies to status (see below). Future spec updates are expected to label these.Status and processing health
The
hasPaymentFailed flag is one of the most important fields for stewardship integrations. When true, the schedule has not been able to charge the donor’s payment method — typically because the card expired, was reissued, or had insufficient funds. The customer’s team needs to reach out to the donor to update payment info before the schedule can resume.
Donor and linkage
Designation
Payment method
The payment method fields enable partner integrations to detect upcoming expirations (using
expMonthAndYear) and proactively contact donors to update their cards before the schedule fails.
Costs and currency
Audit and other
How RecurringGifts produce Gifts
The RecurringGift schedule is the durable schedule record. The actual Gifts the schedule produces are separate records — see Gifts. The data flow on each payment cycle: Two patterns this implies for partner integrations:- Each recurring payment is a separate Gift. Subscribing to
giftCreatewebhooks captures recurring payments alongside one-time donations. Distinguish them by checkinggift.recurringGiftId— if non-null, the gift came from a schedule. - Schedule state changes are visible on the RecurringGift record, not via dedicated events. When a schedule’s
nextChargeDateadvances orsuccessfulCyclesincrements, the RecurringGift record changes — partner integrations that need to track schedule state pull the record on a cadence rather than rely on an event.
Reading RecurringGifts
For partner integrations that need a specific donor’s schedules, use the donor-scoped endpoint:
cURL
donorId filter.
Reading the activity (payment) history
cURL
Creating RecurringGifts
The Raise API doesn’t expose a dedicatedPOST /api/RecurringGift create endpoint. RecurringGifts are created in one of two ways:
For partner integrations enabling recurring donations through a custom flow, the path is
POST /api/Raise/give with the recurring fields set:
cURL
nextChargeDate advances to the next interval after the first payment.
The
frequency integer value needed for the request is not documented in the spec. Confirm the integer-to-frequency mapping (monthly = 1, quarterly = 2, etc.) before relying on it in production.Updating a RecurringGift
PUT /api/RecurringGift/{id} updates an existing schedule. Common updates partner integrations make:
The Raise spec doesn’t expose a PATCH variant for RecurringGift, so partial updates use the GET-then-PUT pattern:
JavaScript
Cancelling a RecurringGift
Cancellation has a dedicated endpoint — don’t try to cancel by settingstatus directly via PUT:
cURL
nextChargeDate no longer triggers payment processing. Whether the schedule can be reactivated depends on the platform’s lifecycle rules — confirm with the platform team before designing any “resume cancelled schedule” workflow.
Detecting payment failures
Schedules withhasPaymentFailed: true are the most actionable signal for stewardship integrations. Query for them on a regular cadence:
JavaScript
POST /api/Donor/{donorId}/generate-page — see Donation Forms) is the typical mechanism for delivering an update-payment URL.
Detecting upcoming card expirations
Another high-value stewardship signal: schedules with payment methods that will expire soon. TheexpMonthAndYear field on each RecurringGift indicates the card expiration.
JavaScript
The exact format of
expMonthAndYear (e.g., MM/YYYY, MM/YY, or another shape) is not documented in the spec. Confirm the format against live data before parsing.Where to go next
Gifts
The Gift records that recurring schedules produce on each cycle.
Configure a Recurring Gift
The workflow for setting up a recurring schedule.
Donors
The donor records that schedules belong to, including the transfer-recurring-gift operation.
Statuses and Lifecycle States
The full lifecycle catalog including RecurringGift status values.