Skip to content

Billing Settings

Billing settings control global defaults for your SaaS platform: trial configuration, auto-renewal behaviour, currency, payment gateways, security, and registration options.

Navigate to SaaS Admin → Billing → Settings.

Billing Settings


General Settings

SettingDefaultENV OverrideDescription
Billing EnabledSAAS_BILLING_ENABLEDMaster toggle — disabling blocks all billing operations
CurrencyUSDBILLING_CURRENCYISO currency code used for all billing (e.g. USD, EUR, GBP, INR)
Currency Symbol$Symbol displayed in invoices and the pricing page
Invoice PrefixINVINVOICE_PREFIXPrefix added to invoice numbers (e.g. INV-0001)
Invoice Numberingsequentialsequential (INV-0001, INV-0002...) or date-based (INV-20250101-001)
Default Billing CyclemonthlyBILLING_CYCLEDefault billing cycle for new subscriptions (monthly or annual)

Free Plan

SettingDefaultENV OverrideDescription
Free Plan EnabledSAAS_FREE_PLAN_ENABLEDAllow tenants to register on a free plan with no payment required

When enabled, the free plan appears on the pricing page and registration form. Free plan tenants are provisioned immediately without payment processing.


Trial Configuration

SettingDefaultENV OverrideDescription
Trial EnabledSAAS_TRIAL_ENABLEDOffer a free trial to new paid-plan subscribers during registration
Trial Days14SAAS_TRIAL_DAYSNumber of free trial days before the first charge (minimum: 1)
Require Payment Method for TrialSAAS_TRIAL_CARD_REQUIREDWhether to collect card details at the start of a trial
Trial Card Verification Amount0SAAS_TRIAL_CARD_VERIFICATION_AMOUNTAmount to authorize when trial requires card. 0 = capture/verify only (gateway-dependent)

Tip: Leaving "Require Payment Method for Trial" off typically increases trial sign-ups. You can collect payment details when the trial ends.

Note: Disabling Trial Enabled affects new signups only — existing trial tenants are not deleted or automatically moved to free.

Trial Lifecycle

  1. Tenant registers and selects a paid plan with trial
  2. Tenant database is provisioned immediately (or after card verification if required)
  3. A trial ending reminder is sent X days before expiry
  4. When the trial expires, subscription status moves to inactive and tenant access is locked
  5. Tenant must upgrade or pay to restore access

Auto-Renewal Configuration

SettingDefaultENV OverrideDescription
Auto-Renewal EnabledSAAS_AUTO_RENEWAL_ENABLEDAutomatically charge subscriptions when they expire
User Can DisableAllow tenant owners to turn off auto-renewal from their billing portal
Retry Days3How many days to retry a failed payment before suspending (retry on days 0, 1, 2)
Renewal Reminder (days before)7SAAS_AUTO_RENEWAL_REMINDER_DAYSDays before renewal to send a reminder email
Trial Ending Reminder (days before)3SAAS_TRIAL_ENDING_REMINDER_DAYSDays before trial ends to send a warning email

The auto-renewal job runs via Laravel Scheduler. Make sure your cron is configured:

bash
* * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1

Payment Methods

Toggle which payment gateways are available to your customers. Gateways are stored in the saas_billing_payment_methods database table.

GatewayNotes
StripeCredit card — most reliable for global use
PayPalPopular for international customers
RazorpayRecommended for India
PaystackRecommended for Africa
PayURecommended for Latin America & Eastern Europe
XenditRecommended for South-East Asia
Offline / Bank TransferManual — admin must verify payment

Enabling a gateway here makes it visible on the checkout page. You must also configure the gateway API keys — see Payment Gateways.

Default Enabled Methods

On first bootstrap (empty saas_billing_payment_methods table), the following gateways are enabled automatically: Stripe, PayPal, Paystack, Razorpay, Offline.


Registration Settings

SettingDefaultENV OverrideDescription
Email Verification RequiredSAAS_REQUIRE_EMAIL_VERIFICATIONTenants must verify email before billing features activate
Trial as DefaultSAAS_REGISTRATION_TRIAL_DEFAULTDuring registration, "Start Free Trial" is selected by default
Allow Immediate PaymentSAAS_ALLOW_PAY_NOW_OPTIONAlso offer "Pay Now" during registration
Min Password Length8SAAS_MIN_PASSWORD_LENGTHMinimum password length for tenant owner registration (range: 6–64)
Require Password ConfirmationSAAS_REQUIRE_PASSWORD_CONFIRMATIONShow a "Confirm Password" field during tenant registration

Security Settings

SettingDefaultENV OverrideDescription
Require Payment VerificationSAAS_REQUIRE_PAYMENT_VERIFICATIONVerify payment transactions before activating subscriptions
Enable Audit LoggingSAAS_ENABLE_AUDIT_LOGGINGLog all billing settings changes with old/new values and admin ID
Encrypt Payment DataSAAS_ENCRYPT_PAYMENT_DATAEncrypt sensitive payment data at rest

Warning: Disabling these security settings is not recommended for production environments.


Saving Settings

After making any changes, click Save Settings at the bottom of the page. Changes take effect immediately — no cache clearing or server restart needed. Settings are cached for 1 hour.

Note: Currency changes do not retroactively update existing invoices. Invoices always display the currency that was active when they were created.