Product Requirements Document (PRD): Recurring Billing & Subscription Management for Agency Handy
Overview
Enable agencies to set up recurring pricing plans in days, weeks, months, or years within Agency Handy. The system will automatically generate invoices with a paid status for improved billing efficiency.
For self-checkout orders, payments should be automatically processed after each billing cycle. For manual orders, clients should receive invoices periodically. If an active order is canceled in an active subscription, a confirmation popup will appear, allowing users to cancel the subscription as well or keep it active.
Objectives
Allow agencies to define recurring pricing plans. Support billing cycles in days, weeks, months, or years. Provide automated invoice generation and payment collection. Introduce a confirmation popup when canceling the last active order in a subscription. Member & Account Changes
Automatically generate invoices with a paid status for self-checkout orders. Automatically process payments for self-checkout orders. Automatically send invoices for manually created orders. Allow users to choose one of three renewal behaviors: Create a new order (duplicate with updated deadlines). Update the existing order (status changed to ongoing, deadlines updated). Keep the order unchanged (send only invoices). Subscription management available from the sidebar. Update proposals based on service payment plans. Key Features
1. Recurring Payment Configuration in Services
Recurring (supports day, week, month, year cycles). Update the existing order. Keep the order unchanged. 2. Invoice Updates
Add new invoice field: Payment Type (Recurring / One-Time). When Payment Type is Recurring, take the repeat cycle from order details. 3. Automatic Invoice Generation
Invoices are generated automatically for manual orders. Clients receive invoices immediately upon creation. Invoices for self-checkout orders are marked as paid automatically. If a payment fails, no new order is created. 4. Subscription Cancellation Popup
If a user cancels the last active order in a subscription, show a popup: "Do you also want to cancel the subscription?" If Yes, cancel the subscription. If No, keep the subscription active. 5. Payment Processing
Store card details (via Stripe or PayPal) for future payments. Auto-charge clients based on defined billing cycles. Invoice remains in open status. No new order is generated. Manual Order Creation for Subscriptions
SuperAdmin, Admin, and PMs can create manual subscription orders. Subscription cycle is taken from the service settings (non-editable). Billing cycle is editable at order creation. Subscription orders can have different order and invoice cycles: If a subscription order starts on June 1st (monthly cycle) and the first invoice is generated on June 3rd, then: The next order will repeat on July 1st. The next invoice will repeat on July 3rd. Once the first invoice is manually created, future invoices should be automatically generated. If any system error prevents an order or invoice from generating, the system should: Automatically calculate the backlog. Generate missing invoices and orders once the error is resolved. Subscription Management
Display a list of active subscriptions including: Subscription Status (Active / Inactive) Allow SuperAdmin, Admin, and Clients to cancel subscriptions. Allow agency(super admin, admin) to delete inactive subscriptions individually or in bulk by selecting multiple entries. Upon selecting single or multiple checkboxes of inactive subscriptions, a delete option will appear beside disabled 'cancel subscription button' "Delete" button for bulk actions. Confirmation prompt before deletion. Anything related to inactive subscription (order, invoice etc.) won't be deleted upon deleting an inactive subscription. Role-based permission control. i.e. super admin, admin Client won't be able to see inactive subscriptions. Added on 05-03-25; verified by Orvi Das [v1.8.0.1] Clients cannot cancel their own subscriptions. Service Deletion Rules
Hide the delete button for services that have active subscriptions. Notifications & Email Updates
Before Subscription Renewal (Self-Checkout Clients)
Subject: Subscription Renewal Reminder for {Service_Name} with {Company_Name}
Hi {Client_Name},
Your subscription for {Service_Name} with {Company_Name} will renew on {Renewal_Date}.
Before Manual Order Renewal
Agencies receive a notification when an invoice is scheduled to be sent. After Subscription Renewal
Both client and agency receive a confirmation notification. Failed Payment Notification
If payment fails, notify both agency and client. Admin: "There was a problem processing {Client_Name}’s payment for {Service_Name}." Client: "Your payment for {Service_Name} could not be processed. Please update your payment method." Subject: Action Required: Payment for {Service_Name} Failed "Your recent payment for {Service_Name} was unsuccessful. We will retry automatically." Subject: Payment Failure Notification for {Client_Name} "Payment for {Client_Name}’s {Service_Name} was unsuccessful. Please follow up." Successful Payment Notification
Once an invoice is paid, send notification to the client: "Your payment for Invoice {Invoice_Number} for Order {Order_ID} has been successfully received." Additional Questions & Clarifications
Should unpaid self-checkout attempts be labeled as "Leads"? Yes. Clients will be labeled as "Lead" until they make a purchase, then they become "Customer". What happens if there are multiple invoices? Only manual orders allow multiple invoices to repeat. Does an order repeat if there is no invoice? Can a manual invoice be created for Stripe/PayPal orders? Yes, but only a one-time invoice can be added. Can currency be changed in a manual order? For manual invoice creation with multiple services, how is pricing handled? Invoice billing cycles are separate from orders, so pricing remains unchanged. Will old invoices continue repeating indefinitely? No. Introduce a repeat limit for manual invoices. If a new order is created, generate a new invoice based on the first subscription invoice. Both billing cycle and invoice repeat stop when the subscription is canceled. Should the invoice due date match the created date? No. The due date is auto-set based on the billing cycle. How should the subscription timeline be displayed? Instead of a hover effect, introduce a detailed subscription page accessible by clicking the Subscription ID. Conclusion
This update enhances subscription management, automates invoicing, and prevents unintended cancellations. The cancellation confirmation popup ensures users have control over their subscriptions when an order is canceled.