Skip to main content
Action 7 is delivered before the plan is saved. A new plan can have null identifiers or timestamps, and repeated saves can send another snapshot. This is not proof of a persisted new plan or a collected payment. See Webhook trigger details.
This serializer starts with the plan’s entire attributesToArray() output, then adds/overrides the fields below. Therefore it is an open model snapshot, not a fixed small allowlist. The raw model inventory lists the additional declared plan columns. Missing/unassigned attributes can be absent in the pre-save path. Explicit resource fields below override same-named raw attributes, including amount and frequency conversions.

Frequency mapping

The donation webhook’s scheduled_donation_frequency is numeric; action 7 and nested donor-facing plans map it to a string. The source map also has an Unknown fallback entry; unmapped codes can resolve to null. Retain the actual frequency string rather than treating every recurring plan as monthly.

Recurring-plan example

Illustrative excerpt of an existing monthly plan. This is not an exhaustive body; see the explicit fields above and additional model attributes.