Invoices and Payments
Create invoices, send pay links, and collect split payments with a shared payment ledger.
Invoices and Payments
CleanEstimate Pro handles invoicing from creation through collection. You can send Stripe pay links, charge a card from the office, or record offline tender like cash, check, and bank transfer without leaving the invoice workflow.
Navigate to Admin > Invoices to view all invoices.
Invoice List
The invoice list shows both the original invoice total and the remaining balance. This makes partial and split payments visible at a glance.
Invoices load 25 at a time by default. Use the footer to switch between 25, 50, and 100 rows and move between pages while keeping the current search, status, tag, and date filters.
| Status | Meaning |
|---|---|
| Draft | Invoice exists but has not been sent yet. |
| Sent | Invoice was sent to the customer. |
| Viewed | Customer opened the invoice or payment page. |
| Partial | Some money has been collected, but a balance remains. |
| Paid | The balance is fully collected. |
| Overdue | The due date passed and money is still owed. |
| Void | The invoice was closed without collection. |
Use Collect from the list for fast payment entry, or click the invoice number to open the full invoice page.
The invoice list also supports the shared Filter by tag dropdown used in leads, jobs, and estimates. Tags are color coded and can be created from the dropdown so the same tag set stays consistent across the office views.
That tag filter now resolves against the linked client tags inside the invoice list query itself, so larger workspaces do not need to load every matching client id into the app server before the filtered list can render.
The list now includes the same shared date-range control as the rest of the admin workspace. You can keep a quick preset like Last 30 days or open the custom picker to isolate invoices created inside an exact date window.
Invoice detail loads now fail less often on older workspaces too. CE Pro no longer depends on a removed invoice customer-phone column just to open the page, so existing invoice records keep opening normally and the payment drawer stays reachable.
The pagination footer shows the exact matching invoice total and the visible row range. Only the selected page is sent to the browser, which keeps invoice list loads fast for larger workspaces.
Invoice Detail Page
Each invoice has a compact detail workspace with:
- status, total, paid amount, remaining balance, and due date in the header
- customer context and shortcuts to the linked client, estimate, or job
- one editable billing strip for the due date, assigned sales rep, internal office notes, and allowed status changes
- a dense line-item table with totals
- the full payment ledger beside the invoice instead of several screens below it
- supporting files and tasks or activity in collapsed sections
Make the billing changes you need, then select Save changes once. Partial and paid statuses still come from the payment ledger; changing a dropdown cannot bypass the recorded transactions.
Line items remain tied to the source estimate or job in this view. Use the linked source record when billed services or prices need to be revised. Teammates with view-only billing access can inspect the invoice and payment history but do not see send, collect, edit, upload, or delete actions.
Collecting Payments
You can collect money directly on the invoice, or from the linked job, estimate, or lead. All of those entry points write to the same ledger and keep balances in sync.
When you create an invoice from a job that already has a deposit or split payment on file, the invoice now carries that collected amount forward automatically. The invoice balance starts at the true remaining amount due instead of resetting to the full job total.
Supported collection methods include:
- Credit card keyed in through Stripe
- Stripe pay link for online payment
- Tap to pay / reader payments recorded by the office
- Cash
- Check
- Bank transfer / ACH
- External card processor entries
- Other custom payment types
On mobile, the payment screen keeps Card, Cash, and Check in the standard view. Other expands to the alternate methods enabled under Settings > Payment Collection, including choices such as Zelle, financing, ACH, or bank transfer. Owners and managers can change that list without releasing a new mobile build. The back control always returns to the invoice detail page, including when the payment screen was opened from a nested mobile workspace route.
The customer tip handoff on mobile shows the workspace's three configured tip choices plus No tip. Each choice can be a percentage of the invoice taxable amount or a flat dollar amount. See Payment Collection settings for setup.
Split Payments
Split payments are supported automatically. Example:
- Invoice total:
$800 - First payment:
$600credit card - Second payment:
$200cash
After the first payment, the invoice moves to Partial and shows a $200 balance. After the second payment, the invoice moves to Paid.
The collection dialog is designed for this flow. Enter any portion of the balance, save it, and keep adding payments until the balance reaches $0.00.
The payment modal now uses a wider office layout with:
- totals across the top
- a full-width method picker that stays readable
- a wider dialog frame tuned for laptop screens instead of a cramped narrow popup
- a fixed modal frame with an internal scroll area so no payment content bleeds outside the window
- payment history visible in the same workflow while you collect money, with the payment setup on the left and the running ledger on the right on desktop and larger laptop layouts
- clearer section headers for setup, collection method, and ledger review
- credit-card sub-method warnings render below the button grid with clear spacing instead of overlapping the controls
- keyed-card entry stays mounted after it is prepared; if the amount changes, the office gets a clear Refresh Card Amount prompt instead of losing the entered card data
- invoice detail now gives the sales-rep and billing-owner block enough width so the payment workspace is not squeezed by a tiny side panel
- long invoice labels, customer names, and receipt emails now wrap inside the modal instead of pushing content outside the dialog frame
- long customer names and emails now also wrap safely on the invoice detail page itself, so the customer header does not break the side-by-side billing-owner layout
- invoice Collect Payment now keeps the keyed-card action stable while the dialog refreshes payment data, which removes the intermittent office-side crash some staff saw when opening the payment workspace on invoice detail
- invoice collect-payment and pay-link actions now reuse the stored invoice link when one already exists, so older invoices can still open or retry payment flows without forcing a fresh customer-token setup path
Payment History
Every invoice keeps a payment history showing:
- Amount
- Method
- Status
- Date and time
- Reference number
- Notes
- Stripe link or charge details when applicable
This history is the source of truth for invoice payment reporting. CleanEstimate Pro does not rely on a manual "mark paid" shortcut for partial or full payment collection.
Refund actions now create the internal adjustment record before Stripe is asked to move money. If a follow-up save or sync step needs to retry, the office ledger still has a durable refund trail instead of leaving the invoice with no matching record, and failed Stripe refunds now mark that pending adjustment as failed instead of leaving it stuck in limbo.
Sending an Invoice
The customer link opens a hosted invoice viewer before checkout. It shows the company and invoice details, bill-to and service-location information, itemized scope, totals, payment history, remaining balance, and the applicable terms. From that page the customer can pay, view the PDF, download it, or print it.
The generated invoice PDF follows the same compact standard as the reference estimate format: company information at the upper left, invoice facts at the upper right, Bill To and Service Location directly below, then one rule above the scope. Full invoice terms are included in a separate readable appendix with document identity and page numbering. Recorded payments show only safe details such as date, method, amount, and a non-sensitive reference.
Invoices do not use the estimate-approval signature. The printable invoice has an optional paper acknowledgment area for customers who want a signed hard copy, without treating that acknowledgment as a new sale approval.
Invoices can be sent from the invoice page or the job page.
- Open the invoice.
- Click Send Invoice.
- Review the recipient, subject, and email message in the send dialog.
- CleanEstimate Pro emails the customer a direct invoice link and moves it to Sent.
The send dialog also shows the customer-facing invoice page and any available pay link so the office can preview or copy them before sending.
If a Stripe payment link is available, the email includes that payment path automatically. If not, the customer can still open the hosted invoice page and review the billed work.
If secure invoice-link signing is not configured yet, the invoice detail page still opens and the office can keep reviewing billing details. In that state, Create Pay Link still returns a clear setup message instead of a generic server error unless the invoice already has a stored link that can be reused. Send Invoice now still delivers the invoice email, but it omits the online pay button when a fresh secure link cannot be generated yet.
When the customer opens the invoice email, Resend now feeds that email-open activity back into the outbound email row inside Messages with the tracked open time, total opens, and latest tracked link click. When the customer opens the hosted invoice page itself, CleanEstimate Pro logs a separate Invoice viewed system event and raises a live admin popup plus bell alert that links back to the invoice record.
Sales Rep Tracking
Invoices inherit the assigned sales rep from the linked job whenever one exists. If you create an invoice directly from an estimate, the estimate's sales rep also carries forward.
Office staff can change the rep from the invoice detail page at any time without affecting the payment ledger.
The same invoice header now exposes View Client, View Estimate, and View Job actions together when those linked records exist, so billing staff can move between the customer, sales, and production records without backing out to list pages first.
Bulk Invoices From Bulk-Scheduled Jobs
Jobs created through Bulk Schedule are invoice-ready from the moment they are created.
Each job stores:
- line items
- subtotal
- tax amount
- total
Because the billing fields live on the job, you can create draft invoices for the newly created batch directly from the bulk scheduler without opening each job one by one.
The bulk invoice action lets you:
- choose which created jobs to invoice
- generate draft invoices in one step
- skip jobs that already have an invoice instead of duplicating billing
Attachments
Invoices now support a shared Attachments section on the detail page.
Use it to store:
- Jobsite photos tied to billing questions
- Signed approvals or change orders
- Purchase orders
- Permit documents
- Supporting PDFs and office files
Attachments stay on the invoice record so the office can review the full billing package in one place.
Supported attachment types are images, PDFs, TXT and CSV files, plus common Word, Excel, and PowerPoint documents. CleanEstimate Pro now verifies the uploaded file before saving it. If the extension or real file type does not match, the upload is rejected with a plain-language message instead of being stored anyway.
Stripe Payments
When a customer pays through Stripe:
- The payment lands in the ledger automatically
- The invoice balance updates
- The invoice status changes to Partial or Paid
- The linked job stays in sync
If a payment fails or remains pending, the ledger reflects that status instead of falsely settling the invoice.
Every successful office-collected payment can also send a receipt email to the customer using the receipt email field in the collection dialog.
Keyed-card preparation no longer creates a pending payment row by itself. The ledger records the payment only after Stripe confirms the charge and CE Pro syncs the intent, which keeps payment history cleaner when staff changes their mind mid-entry.
Offline Payments
Use the payment dialog to record offline tender the moment you receive it. This keeps the invoice, job, estimate, and lead records aligned without having to reconcile them later.
Recommended uses:
- Cash collected by the crew on site
- Check received by the office
- ACH or bank transfer confirmed by accounting
- Card run through an external terminal or another processor
Next Steps
- Learn how jobs connect to invoice collection.
- Connect Stripe in Settings > Stripe for keyed cards and hosted pay links.
Related articles
Was this article helpful?
Still need help? Contact support