Invoices and Payments

Create invoices, send pay links, and collect split payments with a shared payment ledger.

Beginnerownermanagersales repcrew leadUpdated 2026-04-18

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.

Screenshot placeholder
Invoices list page showing invoice number, customer, total, balance due, status, and actions

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.

StatusMeaning
DraftInvoice exists but has not been sent yet.
SentInvoice was sent to the customer.
ViewedCustomer opened the invoice or payment page.
PartialSome money has been collected, but a balance remains.
PaidThe balance is fully collected.
OverdueThe due date passed and money is still owed.
VoidThe 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.

Invoice Detail Page

Each invoice has its own detail page with:

  • Invoice status, total, paid amount, and remaining balance
  • Customer information
  • A direct View Client action when the invoice is linked to a CRM client
  • Assigned sales rep with an editable selector on the invoice detail page
  • Stored line items
  • Office notes
  • A customer-facing invoice page you can open before sending
  • Invoice attachments for photos, PDFs, permits, and supporting files
  • A full payment ledger
Screenshot placeholder
Invoice detail page showing totals on top, line items in the center, and the payments card on the right

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

Split Payments

Split payments are supported automatically. Example:

  • Invoice total: $800
  • First payment: $600 credit card
  • Second payment: $200 cash

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

Invoices can be sent from the invoice page or the job page.

  1. Open the invoice.
  2. Click Send Invoice.
  3. Review the recipient, subject, and email message in the send dialog.
  4. 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.

Screenshot placeholder
Invoice action bar showing Send Invoice, Open Pay Link, and linked job/estimate actions

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.

Was this article helpful?

Still need help? Contact support