Platform-level subscription plans, add-ons, proration, grace periods, and automated invoicing.
Credit = (remaining_days / cycle_days) ร (new_price - old_price)
Effective from next billing cycle. No refund.
Not allowed mid-cycle. Effective at annual end.
Immediate. Prorated for remaining cycle days.
Effective at end of billing cycle.
export interface BillingProvider {
createSubscription(params: {
tenantId: string;
planId: string;
billingCycle: 'monthly' | 'yearly';
}): Promise<Subscription>;
upgradeSubscription(params: {
subscriptionId: string;
newPlanId: string;
}): Promise<{ prorationCredit: number }>;
generateInvoice(
subscriptionId: string
): Promise<Invoice>;
retryPayment(
invoiceId: string
): Promise<PaymentResult>;
applyGracePeriod(
tenantId: string
): Promise<void>;
suspendTenant(
tenantId: string,
reason: string
): Promise<void>;
}
| Description | Amount |
|---|---|
|
Enterprise Plan โ Monthly
Unlimited donors, all modules, SLA support
|
โน8,474.58 |
| GST @ 18% | โน1,525.42 |
| Total | โน9,999.00 |