Shahid Malla

Setting Up WHMCS for SaaS and Subscription-Based Billing

Shahid Malla Shahid Malla February 20, 2026 15 min read
Setting Up WHMCS for SaaS and Subscription-Based Billing

WHMCS isn't just for hosting companies. Its powerful billing and automation features make it ideal for SaaS businesses, subscription boxes, membership sites, and any recurring revenue model. Learn how to configure WHMCS for modern subscription billing.

Why WHMCS for SaaS?

  • Mature recurring billing engine
  • API for product provisioning
  • Built-in customer portal
  • Multiple payment gateway support
  • Upgrade/downgrade workflows
  • Usage-based billing options

SaaS Billing Models

Common Pricing Models

Model Description WHMCS Support
Flat-Rate Fixed monthly/annual fee Native
Tiered Multiple plans (Basic, Pro, Enterprise) Native
Per-Seat Per user pricing Configurable Options
Usage-Based Pay for what you use API/Hooks
Freemium Free tier + paid upgrades Native
Hybrid Base + usage overage Custom

Product Configuration

Creating SaaS Products

  1. Go to Configuration → Products/Services
  2. Create a new Product Group (e.g., "Software Plans")
  3. Add products for each tier
  4. Set billing cycles (monthly, quarterly, annually)
  5. Configure automatic module actions

Recommended Product Settings

  • Module: Custom provisioning module or API webhook
  • Auto Setup: Immediately after payment
  • Welcome Email: Product-specific template
  • Auto Terminate: Configure grace period

Pricing Structure

Plan Monthly Annually Savings
Starter $29/mo $290/yr 17%
Professional $79/mo $790/yr 17%
Enterprise $199/mo $1,990/yr 17%

Per-Seat Pricing

Configurable Options

Use configurable options for seat-based pricing:

  1. Create Option Group "User Licenses"
  2. Add quantity option type
  3. Set minimum (usually 1)
  4. Set maximum or leave unlimited
  5. Configure per-unit pricing

Seat Pricing Example

  • Base plan: $50/month (includes 5 seats)
  • Additional seats: $10/seat/month
  • Customer selects quantity at checkout
  • Can upgrade seats anytime

Usage-Based Billing

Implementation Approaches

  • WHMCS API: Update service usage via API
  • Billable Items: Add line items for usage
  • Hooks: Calculate at invoice generation
  • Custom Module: Full metered billing control

Usage Tracking

Track usage metrics from your SaaS:

  • API calls made
  • Storage used
  • Bandwidth consumed
  • Active users
  • Transactions processed
  • Emails sent

Billing Workflow

  1. SaaS tracks usage throughout billing period
  2. At billing time, report usage to WHMCS
  3. WHMCS calculates charges
  4. Generates invoice with usage details
  5. Processes payment

Freemium Model

Free Tier Configuration

  • Create product with $0.00 pricing
  • Set limits in your SaaS via API
  • Offer upgrade path to paid plans
  • Consider auto-upgrade triggers

Upgrade Prompts

Trigger upgrades when users:

  • Hit feature limits
  • Reach usage caps
  • Request premium features
  • Complete trial period

Trial Periods

Free Trial Setup

  1. Enable "Free Account" option
  2. Set trial length (7, 14, 30 days)
  3. Configure trial-to-paid conversion
  4. Set up reminder emails

Trial Reminder Emails

  • 3 days before trial ends
  • 1 day before expiry
  • Trial expired - convert now
  • 24 hours until service suspension

Upgrade/Downgrade Workflows

Enabling Upgrades

  • Configure upgrade products for each plan
  • Set upgrade pricing (prorated or immediate)
  • Configure downgrade options
  • Set upgrade module actions

Prorated Billing

Handle mid-cycle upgrades:

  • Credit remaining on current plan
  • Charge difference for new plan
  • Align billing dates
  • Generate upgrade invoice

Downgrade Policies

  • Apply at next billing cycle
  • Immediate with no refund
  • Prorated refund to credit
  • Require admin approval

Provisioning Automation

Custom Provisioning Module

Create module to integrate with your SaaS:

  • CreateAccount - Provision new subscription
  • SuspendAccount - Pause for non-payment
  • UnsuspendAccount - Reactivate after payment
  • TerminateAccount - Cancel subscription
  • ChangePackage - Handle upgrades/downgrades

Webhook Integration

Alternative: Use webhooks for provisioning:

  1. Configure WHMCS to call your API
  2. Send order data as JSON
  3. Your SaaS processes provisioning
  4. Return success/failure response

Customer Portal

Portal Customization

  • Brand with your SaaS identity
  • Show subscription status prominently
  • Display usage metrics
  • Easy upgrade buttons
  • Clear billing history

Self-Service Features

  • View and download invoices
  • Update payment methods
  • Upgrade/downgrade plans
  • Add/remove seats
  • Cancel subscription
  • View usage statistics

Payment Processing

Recommended Gateways

Gateway Recurring Best For
Stripe Excellent Most SaaS businesses
PayPal Good Consumer products
Square Good Multi-channel
Braintree Excellent Enterprise
GoCardless Bank debit EU/UK businesses

Payment Retry Logic

  • Configure automatic retry attempts
  • Set retry schedule (3, 7, 14 days)
  • Send payment failure notifications
  • Grace period before suspension

Email Automation

Essential SaaS Emails

  • Welcome/Onboarding sequence
  • Payment receipts
  • Payment failures
  • Trial expiring soon
  • Subscription renewed
  • Plan upgraded/downgraded
  • Account suspended
  • Cancellation confirmation

Email Template Best Practices

  • Brand consistently with your SaaS
  • Clear subject lines
  • Mobile-responsive design
  • Include support contact
  • Add unsubscribe links where appropriate

Metrics and Reporting

Key SaaS Metrics

  • MRR: Monthly Recurring Revenue
  • ARR: Annual Recurring Revenue
  • Churn Rate: Cancellation percentage
  • LTV: Customer Lifetime Value
  • CAC: Customer Acquisition Cost
  • ARPU: Average Revenue Per User

WHMCS Reports

Built-in reports to track:

  • Income by product
  • Active subscriptions count
  • New vs cancelled
  • Revenue trends
  • Payment gateway performance

Implementation Checklist

SaaS Billing Setup Checklist

  • Create product groups and products
  • Configure pricing tiers
  • Set up configurable options for seats
  • Build or configure provisioning module
  • Configure upgrade/downgrade paths
  • Set up payment gateways
  • Configure payment retry logic
  • Customize email templates
  • Brand customer portal
  • Test complete order flow
  • Test upgrades and downgrades
  • Set up reporting dashboards

Conclusion

WHMCS provides a robust foundation for SaaS billing. With proper configuration, you get recurring billing, customer portal, upgrade workflows, and payment processing out of the box. Combine with custom provisioning modules to create a seamless subscription experience for your customers.

Need SaaS Billing Setup?

I help SaaS companies configure WHMCS for subscription billing, build custom provisioning modules, and create seamless customer experiences.

Get Billing Help
Share this article:
Shahid Malla

About Shahid Malla

Expert

Full Stack Developer with 10+ years of experience in WHMCS development, WordPress, and server management. Trusted by 600+ clients worldwide for hosting automation and custom solutions.