Billing & Invoicing
ProEcommerce's billing engine handles recurring subscriptions, one-off invoices, taxes, dunning, refunds, and multi-currency — all tied directly to your Stripe account.
Products
A product is anything you sell: a hosting plan, a domain, a license, a professional-services hour. Every product has:
- A name and description
- A price (supports one-off or recurring)
- A billing cycle (
monthly,quarterly,semiannually,annually,biennially,triennially,one_time) - An optional provisioning module (cPanel, CloudPanel, custom)
- An optional tax class (GST, VAT, US sales tax, exempt)
- Visibility settings (public signup, hidden, quote-only)
Pricing tiers per product
Products can have multiple price points — useful for volume discounts or annual-prepay pricing. Each price point is its own SKU with its own cycle and amount.
Services
A service is an instance of a product sold to a specific client. Think of products as the menu, and services as the orders.
Service states:
pending— ordered but not yet paidactive— paid and runningsuspended— paused (typically for non-payment)terminated— fully cancelled (cannot be revived)cancelled— client requested cancellation; runs until end of paid period
Invoice lifecycle
Generation
Invoices are generated automatically by the invoice-generator cron
X days before each service's next-due date, where X is your invoice
generation offset (default: 14 days).
Delivery
On creation, the invoice PDF is attached to an email and sent via your configured SMTP provider. The email includes a branded payment link that opens a Stripe-hosted checkout page or saved-card one-click payment.
Reminders (dunning)
Default reminder cadence for overdue invoices:
Day 0 (due date): First reminder
Day +3: Second reminder (polite)
Day +7: Third reminder (firm, mentions suspension)
Day +10: Service suspended
Day +30: Final notice
Day +45: Service terminated, data retained 30 days
Day +75: Data purged
Any of these thresholds can be customized per tenant.
Payment
When a client pays, the invoice is marked paid, the corresponding
services are activated or extended, and a receipt is emailed. Stripe webhooks
drive the state transitions — we never poll.
Refunds
Issue refunds from the admin invoice view. Full and partial refunds both go
through Stripe. The invoice status changes to refunded or
partially_refunded, and service entitlements are adjusted.
Taxes
ProEcommerce supports a simple tax-class model out of the box (per-country flat rates) and integrates with Stripe Tax for jurisdictions that need real-time calculations.
- Create tax classes in Settings → Taxes
- Assign a default tax class per product
- Override per-client for B2B customers with valid VAT/GST numbers
- Tax lines appear separately on every invoice
Multi-currency
Each tenant configures a default currency (USD, EUR, GBP, CAD, AUD, etc.). Products can have currency-specific price overrides, or use FX rates pulled from the European Central Bank daily feed.
Payment methods
Via Stripe, ProEcommerce supports:
- Credit and debit cards (Visa, Mastercard, Amex, Discover, JCB)
- ACH / bank debits (US)
- SEPA direct debit (EU)
- Apple Pay / Google Pay (browser-dependent)
- Offline methods (check, wire) — marked as manual, no automated capture
Reports
Built-in reports:
- Revenue — by day, week, month, year; broken down by product
- MRR / ARR — monthly recurring revenue, churn, net new
- Accounts receivable — overdue invoices, aging buckets
- Churn — gross and net, by cohort
- Tax summary — for each tax class / jurisdiction
Every report exports to CSV. The API exposes the underlying queries for piping into your own BI stack.