Skip to content

Where this file lives

  • This path (docs/payments/scheduled-payment-subscription-eligibility.md) is inside the rakletv3 repo for review and maintenance.
  • This document describes the current eligibility rule for subscription options in the manager scheduled payment modal.

Scheduled Payment Subscription Eligibility

Generated: 2026-05-06 Repo: rakletadmin/rakletv3 Focus: Manager scheduled payments that are created from an existing contact subscription.

Purpose

The manager "Add Scheduled Payment" modal can create recurring scheduled payments. When the payment type is Subscription, the subscription dropdown must not offer subscriptions whose plan cannot produce a recurring charge.

Scope

This rule applies to the AngularJS manager modal implemented by modal-update-payment.controller.js and the contact subscriptions API response from V2ContactsController.GetSubscriptions().

Business Rules

Subscription plan state Dropdown eligibility
MembershipFee > 0 and MembershipFeeInterval != PaymentInterval.OneTime Eligible
MembershipFee <= 0 Not eligible
MembershipFeeInterval == PaymentInterval.OneTime Not eligible
Missing plan data Not eligible

Implementation Notes

CustomMembershipDto.CanCreateScheduledPayment() owns the eligibility predicate. V2ContactsController.GetSubscriptions() exposes onlyScheduledPaymentEligible; when the scheduled payment modal calls the endpoint with this flag, the API returns only paid recurring subscriptions. ContactService.getSubscriptions() avoids overwriting the shared unfiltered subscription cache for these filtered calls, so invoice and one-time payment flows keep their existing subscription list behavior.

QA Checklist

Open the manager contact membership screen and create a scheduled payment. After switching Payment Type to Subscription, verify that paid one-time subscriptions and free subscriptions are absent from the Subscription dropdown, while paid recurring plans such as monthly or yearly plans remain selectable.