Skip to main content

List donation subscriptions

GET /donation-subscriptions

Requires the donation_subscriptions:read permission. Returns records belonging to the authenticated organisation, including unpublished or inactive records unless filtered.

Authorization​

X-API-Key required

Parameters​

NameLocationTypeRequiredDefaultLimitsDescription
pagequeryintegerNo1min 1, max 1000000Page number
limitqueryintegerNo10min 1, max 100Results per page
campaignIdquerystringNoRemyPass donation campaign _id
memberIdquerystringNoRemyPass member _id
statusquerypending, active, past_due, cancelledNoStored recurring donation status
emailquerystring (email)NoExact donor email, case-insensitive
currencyquerystringNoThree-letter currency code, case-insensitive
cancelAtPeriodEndquerybooleanNoWhether cancellation is scheduled at the period end
updatedSincequerystring (date-time)NoInclusive ISO 8601 lower bound on updatedAt
createdAfterquerystring (date-time)NoInclusive ISO 8601 lower bound on createdAt
createdBeforequerystring (date-time)NoInclusive ISO 8601 upper bound on createdAt

Data and reconciliation​

Amounts use minor currency units (for example, GBP 25.50 is returned as 2550). Currency codes are lowercase. Relationship fields contain RemyPass record IDs; use the matching get endpoint to fetch related records. Optional relationships and dates may be absent or null. Checkout tokens, internal metadata, payment-provider credentials and worker leases are excluded.

List responses sort by updatedAt ascending, then _id ascending. Keep the same filters while paging. updatedSince is inclusive and requires a timezone. See incremental sync for overlap, deduplication and deletion handling.

Fetch individual recurring payments using GET /donations?subscriptionId=SUBSCRIPTION_ID.

Request Examples​

curl -X GET "https://api.remypass.com/api/v1/public/donation-subscriptions" \
  -H "Accept: application/json" \
  -H "X-API-Key: YOUR_API_KEY"

Responses​

StatusDescription
200Success
400Bad request. The top-level message explains what is invalid and, where applicable, the errors array contains structured field details.
401Missing or invalid API key.
403The caller is not allowed to access this resource.
429Rate limit exceeded.
500Server error.

200 Response Example​

{
"success": true,
"message": "Success",
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"createdAt": "2026-10-06T12:00:00.000Z",
"updatedAt": "2026-10-06T12:00:00.000Z",
"campaign": "507f1f77bcf86cd799439011",
"member": "507f1f77bcf86cd799439011",
"donor": {
"name": "Example",
"email": "person@example.com"
},
"baseAmount": 25,
"feeContributionAmount": 0,
"amount": 25,
"currency": "gbp",
"status": "pending",
"anonymous": false,
"coverFees": false,
"feeContributionPercent": 0,
"currentPeriodEnd": "2026-10-06T12:00:00.000Z",
"cancelAtPeriodEnd": false,
"cancelledAt": "2026-10-06T12:00:00.000Z",
"pendingAmountChange": {
"baseAmount": 25,
"feeContributionAmount": 25,
"amount": 25,
"requestedAt": "2026-10-06T12:00:00.000Z"
},
"pendingCancellationRequestedAt": "2026-10-06T12:00:00.000Z"
}
],
"pagination": {
"currentPage": 1,
"totalPages": 5,
"totalItems": 47,
"itemsPerPage": 10,
"hasNextPage": true,
"hasPrevPage": false
}
}

Response Fields​

FieldTypeDescriptionAttributes
successboolean
messagestring
dataarray of object
Show child attributes
  • _id: string — RemyPass record _id
  • createdAt: string (date-time) — created At
  • updatedAt: string (date-time) — updated At
  • campaign: string — Related RemyPass record _id
  • member: string — Related RemyPass record _id
  • donor: object
    Show child attributes
    • name: string — name
    • email: string — email
  • baseAmount: number — Money in minor currency units
  • feeContributionAmount: number — Money in minor currency units
  • amount: number — Money in minor currency units
  • currency: string — currency
  • status: pending, active, past_due, cancelled — status
  • anonymous: boolean — Anonymity applies to public displays; authorised organisation API access includes donor name and email
  • coverFees: boolean — cover Fees
  • feeContributionPercent: number — fee Contribution Percent
  • currentPeriodEnd: string (date-time) — current Period End
  • cancelAtPeriodEnd: boolean — cancel At Period End
  • cancelledAt: string (date-time) — cancelled At
  • pendingAmountChange: object
    Show child attributes
    • baseAmount: number — Money in minor currency units
    • feeContributionAmount: number — Money in minor currency units
    • amount: number — Money in minor currency units
    • requestedAt: string (date-time) — requested At
  • pendingCancellationRequestedAt: string (date-time) — pending Cancellation Requested At
paginationobject
Show child attributes
  • currentPage: integer
  • totalPages: integer
  • totalItems: integer
  • itemsPerPage: integer
  • hasNextPage: boolean
  • hasPrevPage: boolean