---
title: "fetchRecurringDonationPlan"
method: GET
path: "/recurring-donation-plans/{recurring_donation_plan}"
tags: ["Recurring Donation Plan"]
---

# fetchRecurringDonationPlan

`GET /recurring-donation-plans/{recurring_donation_plan}`

## Request

- Base URL: `https://pro.gofundme.com/api/2.0`
- URL: `https://pro.gofundme.com/api/2.0/recurring-donation-plans/{recurring_donation_plan}`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `/oauth2/auth`
  - OAuth 2
    - Password
    - Token URL: `/oauth2/auth`

Fetch specified Recurring Donation Plan

## Path parameters

- `recurring_donation_plan` integer, required

## Response `200`

Success

- RecurringDonationPlan
  - `address` string: Line one of Billing address
  - `address2` string, nullable: Line two of Billing address
  - `applied_fot_percent` number, float, nullable: The percentage to be added to all fee on top (aka Classy Mode) transactions created for this plan
  - `campaign_id` integer: ID for Recurring Donation Plan's Campaign
  - `canceled_at` string, date-time, nullable: Datetime representing cancellation time(can be null)
  - `cancel_by` 'admin' | 'supporter', nullable: Type of user that cancelled Recurring Donation Plan
  - `cancel_reason_code` string, nullable: Cancellation reason code
  - `cancel_reason_text` string, nullable: Cancellation reason for Recurring donation Plan
  - `cc_card_exp` string: Expiration date for the credit card used
  - `cc_last_four` string: Last four digits of the credit card used
  - `ach_last_four` integer, nullable: If the payment type is ACH, the last 4 digits of the ACH transaction is stored
  - `cc_type` string, nullable: Type of credit card used
  - `city` string: Billing city
  - `company_name` string, nullable: Company of recurring donator
  - `country` string: Billing country
  - `created_at` string, date-time: Recurring Donation Plan created date
  - `currency_code` string: ISO currency code for the Recurring Donation Plan
  - `designation_id` number, nullable: ID for the Designation the Transactions created from the recurring Donation Plan will be allocated
  - `donation_amount` number, float: Recurring Donation amount in the organization's currency
  - `failed_at` string, date-time, nullable: Datetime representing the last time the recurring Donation failed
  - `fee_on_top` boolean: Flag describing if the recurring donation covers fees (classymode)
  - `first_name` string: Donator's First Name
  - `frequency` 'bi-weekly' | 'bi-monthly' | 'daily' | 'monthly' | 'one-time' | 'quarterly' | 'semi-annually' | 'weekly' | 'yearly': Rate at which a recurring transaction against this plan is made
  - `fundraising_page_id` integer, nullable: Fundraising Page ID of recurring donator
  - `fundraising_team_id` integer, nullable: Fundraising Team ID of recurring donator
  - `id` integer: ID of Recurring Donation Plan
  - `is_anonymous` boolean: Flag determining if the Transactions should be anonymized
  - `hide_amount` boolean: Flag determining if the Transactions amount should be anonymized
  - `is_gift_aid` boolean: Flag whether the Donor opts into gift aid used by the UK or not. Can only be set if the Organization allows it
  - `is_paused` boolean: Flag which indicates if the recurring donation is paused. Can be set by Admin or the donor
  - `can_be_reactivated` boolean: Whether Supporter Center's reactivate affordance should render for this plan. True only when the plan's current internal_status is in [canceled, failed, ended] AND the org still has an active ClassyPay PPC attached AND the owning organization is still accepting transactions. False otherwise (wrong starting status, missing pp_plan_id, no PPC, non-ClassyPay PPC, or a canceled/deleted organization). Reflects only the guard on this supporter-facing reactivation path -- the ClassyPay-to-Classy integration app's write, and a FAILING plan, can still reach active status without this check.
  - `last_name` string: Last name of recurring Donator
  - `member_id` integer: Member ID of recurring donatior
  - `metadata` Metadata
    - `foo` string
  - `next_processing_date` string, date, nullable: Next recurring charge date for recurring plan
  - `organization_id` integer: ID of Organization receiving the recurring donation
  - `pause_until` string, date, nullable: This attribute indicates the date till the recurring donation plan is Paused
  - `plan_paused_on_date` string, date, nullable: This attribute holds the date on which the recurring donation plan was Paused
  - `payment_gateway` string, nullable: Payment processor. (Underlying payment processor for Classy Pay)
  - `payment_provider_configuration_name` string, nullable: The Recurring Donation Plan Payment Provider
  - `payment_type` 'Credit Card' | 'ACH' | 'Paypal', nullable: Payment type of recurring
  - `postal_code` string: Billing postal code
  - `pp_plan_id` string: ID of the Payment provider
  - `raw_currency_code` string: The currency code of the plan's transactions. Cannot be updated after being set
  - `raw_donation_amount` string: The value donated, in the raw currency
  - `recur_until` string, date, nullable: Recurring plan end date
  - `schedule` object, nullable: JSON information specifying schedule for recurring transaction creation
    - `mmdd` string: Two digits for month and two for day
    - `month` string: Month name
    - `day` integer: Day number
  - `started_at` string, date-time: Start time for recurring donations
  - `state` string: Billing state
  - `status` 'active' | 'attempted' | 'canceled' | 'draft' | 'failed' | 'failing' | 'ended' | 'paused': Status of Recurring Donation Plan
  - `supporter_id` integer, nullable: ID of the Supporter that associates the Member and the Organization
  - `timezone_identifier` string: Identifier of timezone against which recurring charges will be made
  - `updated_at` string, date-time: Last modification date
  - `is_donor_covered_fee` boolean: Flag if the rdp is a donor covered fee or not
  - `raw_initial_gross_amount` number, float: Amount before any fee adjustments where added
  - `raw_adjustment_amount` number, float: Total fee amount assessed
  - `dcf_enabled` boolean: Flag that indicate if the campaign has dcf enable
  - `dcf_allowed` boolean: Flag that indicate if the campaign is allowed to have dcf
  - `classy_mode_enabled` boolean: Flag that indicate if the campaign has classy mode enable
  - `effective_fixed_fot_percent` string: Number of fixed fee on top percent
  - `effective_flex_rate_percent` number, float: Studio/FRS add-on rate (PRO-7923) — the accessor's `: float` return guarantees a genuine numeric wire type here, unlike the sibling above.
  - `migrated` boolean: Flag that indicates if the recurring plan is from a migration
  - `migration_date` string, date-time, nullable: Date when migration was completed

## Other responses

- `403`: Requester is not authorized to perform action
- `404`: Recurring Donation Plan not found

## Changes

- **2026-08-26** `e8d6659f57fe`: 1 info
  - added the optional property `effective_flex_rate_percent` to the response with the `200` status

[Operation history](https://skmtc.dev/gofundme/apis/gofundme-pro-api/changes/recurring-donation-plans/:recurring_donation_plan/get.md)

---

[API](https://skmtc.dev/gofundme/apis/gofundme-pro-api.md) - [All operations](https://skmtc.dev/gofundme/apis/gofundme-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gofundme/apis/gofundme-pro-api/revisions/094a1e510fe9?raw)
