Invoicing
Create, send, track, and write off invoices — with server-side PDF and optional online payment capture.
Creating an Invoice
- Navigate to Finance → Invoices
- Click New Invoice
- Select or create a client
- Add line items (products, services, or custom entries)
- Set payment terms, due date, and tax rates
- Preview the invoice with your chosen template
- Save as draft or send immediately
Starting From Existing Work
The New Invoice menu can also start from operational records that already exist in Workestra:
| Starting point | What gets pre-filled |
|---|---|
| Recurring schedule | Customer, currency, notes, and recurring line items |
| Product or material | Catalog description, SKU, unit price, unit, and tax rate |
| Approved reimbursable expense | Vendor or expense description, amount, tax, project link, and expense reference |
When an invoice is created from an approved expense, Workestra links the expense to the invoice after saving so finance can see which costs have already been billed back to the customer.
Invoice List
The invoices page shows:
- Stats bar — Outstanding, overdue, paid, and draft totals at the top
- AR Aging buckets — Real 0–30 / 31–60 / 61–90 / 90+ day aging computed from sent + overdue invoices, so you can see exactly how old your outstanding receivables are at a glance
- Status tabs — Filter by All, Draft, Sent, Overdue, Paid, Written off, Cancelled
- Sortable columns — Invoice number, client, amount, status, due date
- AI Insights panel — Collapsible side panel with AI-flagged anomalies (revenue variance, slow-paying customers, pipeline gaps)
- CSV Export — Download filtered invoice data as CSV
Invoice Statuses
| Status | Description |
|---|---|
| Draft | Not yet sent to client |
| Sent | Delivered to client |
| Viewed | Client opened the invoice |
| Partial | Some payment received; balance outstanding |
| Paid | Fully settled |
| Overdue | Past due date, unpaid |
| Written off | Declared uncollectable (full or partial amount) — excluded from outstanding AR |
| Cancelled | Voided invoice |
Invoice Detail View
The invoice detail page provides:
- Full invoice preview with the selected template design
- Send Invoice — Email the invoice to the client with the PDF attached and (if Payments is configured) a "Pay online" button
- Pay link — Generate a shareable checkout URL for the outstanding balance
- Digital Signature — Request or apply a digital signature
- Server-side PDF — Download the rendered PDF via
/api/finance/invoices/[id]/pdfor use the print preview at/print/invoice/[id] - Create Credit Note — Issue a credit against this invoice
- Write off — Mark an uncollectable amount and keep AR reports honest
- Entity AI Panel — AI summary, suggested actions, similar invoices, and Ask AI input scoped to this invoice
- Status management — Mark as paid, sent, cancelled
When a payment lands (online or via reconciliation), the invoice creator gets an in-app notification automatically — no manual checking of the payments dashboard required.
Sending Invoices
Click the Send button on any invoice to:
- Preview the email that will be sent
- Customize the message
- Send to the client's email address
The outbound email carries:
- The rendered invoice as a PDF attachment (server-generated by Puppeteer)
- The amount due and due date up front in the body
- A prominent Pay online button when a payment provider is configured — see Payments
Invoice status automatically updates to Sent on first send. sent_count increments on every resend.
Accepting online payments
When a payment provider (Stripe today, Mollie soon) is configured, every sent invoice exposes a Pay link button. Click it to:
- Generate a hosted checkout URL
- Copy the link to paste into a message or email
- Open it in a new tab to verify the customer flow
The same link is automatically included in the Send-email flow. When the customer pays, the invoice automatically flips to Paid (or Partial) within a second or two of the payment provider's webhook — no manual "Mark paid" step.
See Payments for full setup.
Writing off an invoice
When an invoice is genuinely uncollectable — customer bankruptcy, dispute abandoned, long-overdue write-off policy — use Write off instead of leaving it stuck at Overdue forever.
- Open the invoice
- Click Write off (available on Sent / Overdue / Partial invoices)
- Enter a reason (required — it appears in AR reports)
- Optionally check Partial write-off and enter a smaller amount
- Confirm
The invoice:
- Flips to the Written off status (orange chip)
- Records the uncollectable amount + reason + timestamp
- Disappears from outstanding AR — totals stay honest
- Remains in the system for audit — nothing is deleted
To undo, use Reverse write-off — the invoice returns to Overdue / Sent / Partial depending on its payment state.
Digital Signatures
Invoices support digital signatures:
- Open an invoice
- Click the Signature button
- The client can sign via a secure link
- Signed status is tracked on the invoice
Templates
Invoices use the unified Templates Hub at Finance → Settings → Templates (/finance/settings/templates) — pick the Invoices tab. 20+ designs across 5 categories (Classic, Modern, Minimal, Bold, Creative), 8 color variants, custom hex.
See Templates for the full catalog.
Credit Notes
Issue credit notes for partial or full refunds:
- Open the original invoice
- Click Create Credit Note
- Specify the amount and reason
- The credit is linked to the original invoice
Credit notes now have a full lifecycle (draft / issued / applied / partially applied / voided) and can be applied across multiple invoices. See Credit Notes for details.
Recurring Invoices
Set up invoices that automatically repeat:
- Navigate to Finance → Recurring (
/finance/recurring) - Create a recurring invoice with frequency, line items, and schedule
- The system creates invoices automatically on schedule
See Recurring Invoices for details.
Print / PDF
Two options:
- Download PDF — server-side rendering via
/api/finance/invoices/[id]/pdf. Pixel-stable, matches exactly what customers receive by email. Best for archival and email forwarding. - Print preview —
/print/invoice/[id]opens the template in the browser and triggerswindow.print()for quick printing or ad-hoc PDF saving.
Both use the same 20 invoice templates (see Templates) — the choice is just whether you want the rendering done by Workestra's servers (consistent) or your browser (quick).
Next Steps
- Payments — Accept card payments on sent invoices
- Quotations — Generate quotes and convert to invoices
- Credit Notes — Issue refunds and apply to outstanding invoices
- Templates — Choose invoice designs
- Recurring — Set up automated billing