Invoices Overview

The Invoices feature is ClientCove's built-in billing system — line-item invoices with tax and discount, branded PDF generation, automated email delivery, Stripe-powered card payments, recurring billing schedules, and an audit trail of every status change.

What Invoices Is

A complete invoice workflow that handles:

  • Creating invoices with line items, quantities, unit prices, taxable flags, tax rate, discounts, and currency
  • Generating PDFs with your company branding, logo, payment instructions
  • Sending emails with the invoice HTML inline + PDF attached
  • Collecting payments via Stripe (one-off card payments or recurring subscriptions)
  • Tracking status through Draft → Sent → Viewed → Paid (or Overdue / Cancelled)
  • Automating recurrence — set monthly / quarterly / annual schedules, ClientCove generates the next invoice automatically
  • Linking to portal records — orders, projects, contracts, products

Quick Glossary

TermWhat it means
InvoiceA invoice custom post type — line items + totals + status
Line ItemOne row on the invoice — description, details, quantity, unit price, taxable flag
SubtotalSum of line items before tax and discount
Tax RatePercentage applied to taxable line items
Tax AmountCalculated tax (auto-derived from rate + taxable subtotal)
DiscountFixed dollar amount subtracted from subtotal
Total AmountSubtotal + Tax − Discount
Balance DueTotal Amount − payments received
Issue DateWhen the invoice was issued
Due DateWhen payment is expected
StatusLifecycle state (Draft / Sent / Viewed / Paid / Overdue / Cancelled)
RecurringAuto-generates invoices on a schedule (monthly / quarterly / annual)
Payment IntentStripe object representing a payment in progress
WebhookEndpoint Stripe calls to notify ClientCove of payment events

The Invoices Page

Open Invoices from the left sidebar (/invoices/). The page is a Vue.js app with these regions:

Top toolbar

  • Page title with receipt icon
  • Breadcrumb (Home → Invoices)
  • Export CSV button (admin/editor) — exports the current filtered list
  • Create Invoice button (admin/editor) — opens the create modal

Filters card

  • Search — matches invoice number, client name, line-item description
  • Status filter — All / Draft / Sent / Viewed / Paid / Overdue / Cancelled
  • Client filter (admin only) — dropdown of clients
  • Date range filter (issue date / due date)
  • Sort — by invoice number, date, amount, due date, status

Table

Columns: Invoice #, Client, Issue Date, Due Date, Total, Status, Actions

Each row links to the single-invoice view. Bulk actions (mark paid, send, delete) appear when rows are selected.

Stats summary (admin)

At the top, summary cards show:

  • Total invoiced this month
  • Total paid this month
  • Total outstanding
  • Overdue count

Invoice Statuses

Statuses describe where an invoice is in its lifecycle:

StatusColorWhen it applies
DraftGrayCreated but not sent
SentBlueEmail sent to client
ViewedLight blueClient opened the invoice page (auto-detected)
PaidGreenFull payment received
OverdueRedPast due date, unpaid
CancelledDarkVoided — no longer collectible

Status changes are logged with timestamp + actor.

Auto-detection

Two transitions happen automatically:

  • Sent → Viewed when the client first opens the invoice URL
  • Sent → Overdue when the due date passes (via daily cron)

Other transitions (Draft → Sent, Sent → Paid, any → Cancelled) are explicit actions taken by admin/editor or triggered by Stripe webhook events.

The Invoice Lifecycle

Most invoices move through these stages:

  1. Create — admin builds the invoice: client, line items, tax, discount, due date, notes
  2. (Optional) Save as Draft — flag for revisions before sending
  3. Generate PDF — server-side rendering of the branded invoice
  4. Send — email with HTML body + PDF attachment to the client's billing contact
  5. View — client opens the invoice in the portal; status flips to Viewed
  6. Pay — client clicks Pay, enters card details, Stripe processes the payment
  7. Webhook — Stripe calls back, ClientCove marks invoice Paid, sends payment confirmation email
  8. (Optional) Recurring — for recurring invoices, the next occurrence is scheduled

If payment doesn't arrive by the due date, the daily cron flips the status to Overdue and (optionally) sends a reminder email.

For recurring invoices, the cycle repeats on the configured schedule — admin sets it up once, ClientCove handles the rest.

How It Connects to Other Features

Invoices integrate with several other portal features:

FeatureConnection
ClientsEvery invoice is bound to a client — visible in the Client Workspace's Invoices tab
Billing ContactThe client's designated billing contact receives invoice emails (see Contacts & Billing)
OrdersInvoices can be generated from a client order via the related_order field
Projects / ContractsLinkable as related items for context
Email DesignerInvoice notification emails respect your custom email template if configured
StripePayment processing — see Stripe Checkout & Payments

Permissions Snapshot

CapabilityWho
View Invoices page (admin)Administrator, Editor — sees all invoices
View own invoices (client)Client users with client_billing role or designated billing contact
Create invoicesAdministrator, Editor
Edit invoices (Draft only)Administrator, Editor
Edit invoices (Sent and beyond)Restricted — most fields locked once sent
Send invoice emailsAdministrator, Editor
Mark as Paid (manual)Administrator, Editor
Cancel invoiceAdministrator, Editor
Pay invoiceAny client user with view access to the invoice
Configure StripeAdministrator only
Set up recurring scheduleAdministrator, Editor

Subscriber-level users have no invoice access. Client users see only their client's invoices, scoped via the assign_to_client field.

Was this page helpful?