Billing Module Overview
The Billing module is concorbit's invoicing, payments, and subscription management system. It lets you create invoices, maintain a product catalogue, manage recurring client subscriptions, accept payments through Stripe, issue credit notes, and configure tax rates, all integrated with your CRM contacts and companies.
What the Billing Module Does
Invoices: Create, send, and track invoices with line items, tax calculations, PDF generation, and payment recording.
Products: Maintain a catalogue of products and services with flexible pricing models (flat, tiered, volume, package, metered).
Client Subscriptions: Set up recurring billing for contacts with configurable intervals, auto-invoicing, and lifecycle management (pause, resume, cancel).
Payments: Accept payments through Stripe Connect, record manual payments, process refunds, and track payment history.
Service Catalogue: Master list of services you sell with billing rules (commitment types, reduction/addition timing, minimum quantities). Assign services to companies with per-customer overrides.
Service Approvals: Approve or reject quantity change requests from staff and customers. Billing rules enforce when changes take effect.
Charges: Accumulate billable charges from helpdesk time entries, recurring services, and service changes. Approve or dispute charges before invoicing.
Billing Runs: Batch approved charges into invoices per company. Configure line item grouping, minimum thresholds, and cutoff dates.
Credit Notes: Issue adjustments against invoices, apply credits, and manage the credit note lifecycle.
Tax Rates: Configure multiple tax rates (UK VAT, zero-rated, exempt) and apply them to invoices and products.
Key Concepts
Invoices
An invoice is a financial document sent to a contact or company requesting payment for goods or services. Invoices contain line items, tax calculations, and payment terms. They progress through statuses: Draft, Sent, Paid, Overdue, Void, Refunded.
Products
Products are the items and services you sell. They define the name, description, price, and billing interval. Products feed into invoice line items and subscription billing.
Client Subscriptions
A client subscription is a recurring billing arrangement between your workspace and a contact/company. When a subscription is linked to a company, its recurring charges flow through the Charges → Approval → Billing Run → Invoice pipeline, giving your team a chance to review every charge before it becomes an invoice. Contact-only subscriptions (no company) auto-generate invoices directly on their billing dates.
Charges
A charge is a billable line item waiting to be invoiced. Charges are created automatically from helpdesk time entries and recurring subscriptions, or manually by staff. Every charge starts as Pending and must be approved before it can be included in a billing run.
Billing Runs
A billing run collects all approved charges, groups them by company, and generates one invoice per company. You configure a cutoff date, minimum invoice amount, and line item grouping mode (per charge, per ticket, or per work type). Recurring service charges always appear as individual line items regardless of grouping.
Payments
Payments record money received against an invoice. They can be manual (bank transfer, cheque) or automated through Stripe.
Credit Notes
Credit notes are adjustments or refunds against an invoice. They follow their own lifecycle (Draft, Issued, Applied, Void) and can be applied as credit against outstanding invoices.
Tax Rates
Configurable tax rates that are applied to invoice line items. Each workspace starts with UK Standard VAT (20%) and Zero-rated (0%) by default.
Amounts in Minor Units
All monetary amounts in concorbit are stored in minor currency units (pence for GBP, cents for USD). For example, an invoice total of 150.00 GBP is stored as 15000. This eliminates floating-point rounding errors in financial calculations.
Required Tier
The Billing module is available on the concorbit Pro tier and above. The module is always active for workspaces on qualifying tiers, it cannot be individually disabled.
Dependency on the CRM Module
The Billing module depends on the CRM module. Invoices are addressed to CRM contacts and optionally linked to companies. Subscriptions are created for specific contacts and companies. You must have contact data in the CRM before you can create invoices or subscriptions.
Stripe Integration
concorbit integrates with Stripe Connect for payment processing. When configured, Stripe enables:
Online payment links on invoices, allowing contacts to pay via the client portal.
Autopay for subscriptions, where Stripe automatically charges the contact's stored payment method on billing dates.
Refund processing directly from the concorbit interface.
Payment method management (adding, removing, and setting default payment methods per contact).
Stripe Connect setup is performed in your workspace settings. See Stripe Connect setup for the wiring step and Payments & Stripe for the payment lifecycle that sits on top of it.
Governance and collection mode
Two stamps decide how an invoice is treated, both frozen at the invoice's creation time.
Invoice governance (invoices.governance) decides who owns the invoice's lifecycle:
| Marker | Owner | concorbit lifecycle applies? |
|---|---|---|
| concorbit | concorbit-native (the default). | Yes (autopay, dunning, dispute freeze, £0 paid lifecycle). |
| autotask | Autotask. AT's reconciler hard-sets status from AT's flags. | No. |
| quickbooks | QuickBooks. QB owns status, amount paid, paid date. | No. AT wins over QB on co-linked invoices. |
Collection mode (invoices.billing_collection_mode) decides how the invoice should be collected:
| Mode | Meaning |
|---|---|
| recurring_card_subscription | Recurring agreement, autopay attempts off-session on the saved default card. |
| one_off_card | A one-off card payment. Autopay may run if the contact has a default card. |
| invoice_on_terms | Credit terms. Never autopays; the customer pays manually or via the portal. |
Collection mode is resolved at creation time by BillingCollectionPolicyResolver, following the most-specific-first chain: line, product, service item, company, tenant, platform default. The stamp is durable, a later default change cannot silently re-route an active invoice.
See Subscriptions for how the recurring agreement (billing_subscriptions) is separated from the commercial record (client_subscriptions).
Stripe Connect versus platform billing
concorbit's Stripe integration is intentionally two-sided. The same vocabulary describes both:
Tenant Connect charges run on the MSP's Stripe Connect account. The customer's card is attached to a Stripe customer on that account. The MSP collects the money directly; concorbit acts as the platform facilitator and never holds funds.
Platform billing charges run on concorbit's own Stripe account. This is how concorbit bills its tenants for their seat subscriptions (Pro, Agency, sub-tenants).
The two never cross. The platform key is never used to charge a tenant's customer; a tenant's Connect account is never used to bill the tenant for concorbit seats. BillingStripeClientFactory and BillingCollectionPolicyResolver enforce this at the call site.
Permissions
Access to the Billing module is controlled by these permissions:
Invoice Permissions
| Permission | What it allows |
|---|---|
| billing.view | View invoices, credit notes, tax rates, and payment methods |
| billing.create | Create new invoices and credit notes |
| billing.edit | Edit invoices, void invoices, issue/apply credit notes |
| billing.delete | Delete invoices and credit notes |
| billing.send | Send invoices via email |
| billing.payment | Record payments against invoices |
Product Permissions
| Permission | What it allows |
|---|---|
| products.view | View the product catalogue |
| products.create | Create new products |
| products.edit | Edit existing products |
| products.delete | Delete products |
Subscription Permissions
| Permission | What it allows |
|---|---|
| subscriptions.view | View client subscriptions |
| subscriptions.create | Create new subscriptions |
| subscriptions.edit | Edit subscription details (price, quantity, interval) |
| subscriptions.delete | Delete subscriptions |
| subscriptions.manage | Pause, resume, and cancel subscriptions |
Navigation
When the Billing module is active, six items appear in the sidebar:
Products:
/products. Product and service catalogue.Subscriptions:
/subscriptions. Client subscription management.Invoices:
/invoices. Invoice list with stats and payment tracking.Credit Notes:
/credit-notes. Credit note management.Charges:
/charges. Pending charge approval with bulk actions.Billing Runs:
/billing-runs. Create and manage billing runs to generate invoices from approved charges.
Dashboard Widgets
The Billing module provides two dashboard widgets:
Invoice Stats Widget
Shows at a glance:
Total outstanding amount (unpaid sent invoices).
Total overdue amount (past due date).
Total paid this month.
Count of draft invoices.
Subscription Stats Widget
Shows at a glance:
Monthly Recurring Revenue (MRR).
Active subscription count.
Trialing subscription count.
Past-due subscription count.
Canvas Workspaces
The Billing module provides a Billing Workspace canvas template, a single canvas for the complete invoicing workflow:
Left column: Contact picker (from CRM) and subscription list.
Centre: Invoice stats overview and invoice list, scoped to the selected contact.
Right column: Invoice detail panel for inline editing and workflow actions (send, mark paid, void), plus credit notes list.
Canvas panels available for custom layouts:
| Panel | Description |
|---|---|
| Invoices | Invoice list with status badges. Filters by contact/company in context. |
| Invoice Stats | Outstanding, overdue, and paid totals. |
| Invoice Detail | Full single-invoice view with inline edit and workflow buttons. |
| Subscriptions | Subscription list with status badges. Filters by contact/company. |
| Subscription Stats | Active count, MRR, and churn metrics. |
| Subscription Detail | Single subscription with inline edit and pause/resume/cancel. |
| Credit Notes | Credit note list with status and amount applied. |
| Credit Note Detail | Single credit note with inline edit and issue/apply/void. |
Currency
concorbit defaults to GBP but supports configurable currency per workspace. The currency setting is applied to all invoices, products, subscriptions, and financial displays. Currency is configured in your workspace settings.
Quoted labour billing
Billing settings include bill quoted labour. By default it is off: labour quoted on a deal is an estimate, and the actual time logged against the resulting ticket or project is what bills. Turn it on if you'd rather bill the quoted labour as a fixed charge when the deal is won, in which case the resulting ticket/project's logged time is marked non-billable so the labour isn't billed twice. Other charges on that ticket still bill normally.
Getting Started
Check your tier: Confirm your workspace is on concorbit Pro or above.
Connect Stripe: Go to Settings > Payments and connect your Stripe account (optional but recommended for online payments).
Configure tax rates: Review the default tax rates under billing settings. Add any additional rates you need.
Create products: Build your product catalogue with names, prices, and billing intervals.
Create your first invoice: Select a contact, add line items, and send.
Set up subscriptions: For recurring revenue, create client subscriptions linked to products.