Skip to main content

Real-World Example

ABC Collections currently has 10,000 active consumer accounts. They try to downgrade to a plan that allows only 5,000 accounts. The system should stop that change and explain that the selected plan is too small for the current account count. Later, ABC Collections upgrades to a higher plan. The system should calculate the upgrade according to the membership billing rules, charge the saved membership payment method when needed, and update the active plan.

Visual Flow

How It Should Work

  • It should show the creditor’s current membership plan and available plan options.
  • It should allow the creditor to update the membership payment method.
  • It should let the creditor submit a special-plan inquiry when no custom membership exists yet.
  • It should keep the membership card order from the app: upgrades, special-plan inquiry card, then downgrades.
  • It should prevent selecting a plan that cannot support the creditor’s active consumer count.
  • Upgrades should apply according to the app’s upgrade and prorating rules.
  • Same-level or downgrade changes may be scheduled for the next plan cycle when applicable.
  • The creditor should be able to cancel a plan according to the available cancellation options.
  • Failed over-limit payments should be retryable when the account is blocked because of over-limit billing.

How It Should Not Work

  • It should not allow a downgrade below the creditor’s active consumer count.
  • It should not update payment details without valid payment information.
  • It should not create a second pending special-plan inquiry for the same creditor.
  • It should not charge the wrong amount for a plan change.
  • It should not leave the creditor blocked after a successful over-limit retry.
  • It should not cancel or change another creditor’s membership.

Developer Notes

  • Plan changes must protect account limits, payment method validity, over-limit blocking, and retry behavior.
  • Do not allow a downgrade that cannot support the creditor’s active consumer count.
  • Special-plan inquiry submissions should create one pending inquiry, refresh the super-admin pending count, queue creditor/super-admin notification emails, and send the super-admin SMS alert.
  • app/Livewire/Creditor/MembershipSettings/Page.php
  • app/Console/Commands/MembershipPlanAutoRenewCommand.php
  • app/Jobs/MembershipPlanAutoRenewPaymentJob.php
  • app/Jobs/OverLimitPaymentJob.php
Last modified on June 14, 2026