Invoices
Invoices track what you bill customers and what they owe. Create invoices, send them for payment, and monitor outstanding balances — all connected to the jobs and customers they belong to.
Open Invoices from the main navigation.
When to use Invoices
Use Invoices when you need to:
- Bill a customer for completed work or materials.
- Track what has been paid and what is still outstanding.
- Send payment links so customers can pay online.
- See overdue balances at a glance.
Before you start
- At least one customer must exist in ToolbagCRM before you can create an invoice. Each invoice requires a customer.
- Stripe connection — connect Stripe from Settings → Integrations → Stripe if you want to create online pay links or charge cards. You can still print or deliver invoices, mark them as sent, and record cash or check payments without Stripe.
- Verified email — the account owner's email must be verified before online pay links can be created or shared. It is not required to mark an invoice as sent.
- If you plan to tie invoices to jobs, make sure the job and customer are already in the system.
The invoice list
The invoice list shows invoice number, customer, issued date, due date, amount, balance, and status. Use the status tabs and search field to narrow the full invoice list.
Receivables aging
The Receivables aging panel groups current unpaid balances by due-date age. Use it to prioritize collection work before filtering the invoice list.
The panel includes:
- Outstanding — total current balance and invoice count.
- Past due — balance and count for invoices due before today.
- Due date needed — balances that cannot be placed in a dated aging band until the invoice terms are reviewed.
- Aging bands — switch between 30-day and 15-day groupings.
- Currency — review each currency separately; ToolbagCRM does not combine unlike currencies into one total.
Select a populated aging band to review its matching invoices. The detail view shows each invoice, customer, property or work location, due date, and balance. Use Only this customer or Only this property to narrow the selected band, then open the linked invoice, job, or customer record for follow-up.
The 30-day view groups balances into Not due yet, Due today / 1–30 days past due, 31–60 days past due, 61–90 days past due, Over 90 days past due, and Due date needed. The 15-day view provides narrower collection intervals.
Receivables aging requires read access to Invoices and Payments plus access to all Jobs. Opening the matching invoice rows also requires Customers read access. Ask an account owner to update your role if the totals or drill-down are unavailable.
Older invoices may show a legacy-derived due date. Review those invoice terms before contacting the customer.
Status tabs
Filter by status: All, Draft, Sent, Paid, or Overdue. Each tab shows a count badge. "Overdue" is a derived status — unpaid invoices past their due date, excluding drafts and voided invoices.
Search and pagination
Search across invoices by invoice number, customer name, or job title. Status tabs also filter the full matching set before ToolbagCRM returns a page of up to 100 invoices. Use the pagination controls to move through additional results.
Search, status filters, and pagination do not change the Receivables aging totals. Those totals come from the full current receivables ledger for the selected currency and aging interval.
What each row shows
- Invoice number in monospaced font.
- Customer name — clickable link to the customer detail.
- Issued date
- Due date — shown in red if overdue.
- Amount — the invoice total.
- Balance — remaining amount due, shown in red if overdue.
- Status badge
Create a new invoice
- Click New Invoice.
- Select a Customer (required).
- Optionally select a Linked job — the dropdown lists only jobs that belong to the selected customer, and it stays disabled until a customer is chosen. Leave it on "No job attached" for a customer-only invoice.
- Enter a Description (required).
- Enter the Amount in USD (required).
- Optionally set a Due Date.
- Save the invoice.
New invoices default to Draft status. The form creates a single line item with quantity 1 at the entered amount.
You can also start a new invoice from a job's detail page: click New Invoice in the job's Linked invoices section, and ToolbagCRM pre-fills the job's customer plus the current job. The customer field stays locked to that job's account, while Linked job can stay selected or be changed to No job attached before you create the draft.
Invoice detail view
Click any invoice row to open the full detail. The detail view includes:
Action bar
- Print — Opens the browser print dialog for a print-friendly invoice card. Navigation, action buttons, flow graph, and internal history are hidden from the printed copy so customers only see the invoice details, your company's name and contact information, bill-to information, line items, totals, and balance due. If the printed invoice is missing your company details, go to Settings → Company and fill in your phone, website, and address.
- Edit — Correct descriptions, quantities, unit prices, or units on a Draft or Sent invoice. Saving keeps its customer, linked job, payment terms, and due date unchanged. The action is unavailable after the invoice is Paid or Voided.
- Mark as sent — Use this after you have delivered the invoice through your chosen channel. It moves the open balance into Receivables Aging based on the configured terms and due date; it does not email the customer or require Stripe.
- Copy Pay Link — Generates a public payment URL you can share with the customer. Requires Stripe.
- Open Pay Link — Opens the customer-facing payment page in a new browser tab so you can preview what the customer sees. Requires Stripe.
- Charge Card — Charges the customer's card on file for the balance due. Available on sent invoices to staff with card-payment access and requires Stripe.
- Record payment — Records a full or partial cash or check payment collected outside Stripe. Available on unpaid, non-voided invoices to staff with Payments write access.
- Void — Cancels the invoice and excludes it from receivables. Requires a reason (e.g., "duplicate invoice" or "customer disputed charge"). An invoice with completed payments cannot be voided until those payments are reversed or refunded. Voided invoices cannot be sent or paid.
Header
- Invoice number and status badge with an inline status dropdown for manual status changes.
- Issued date and due date.
- Total amount and balance due (or "Paid in full" in green).
From section
Your company logo (or initials if no logo is set), company name, phone, website, and address pulled from your Settings → Company profile. If no contact info is configured yet, an on-screen link guides admins to fill it in.
Bill to section
Customer avatar, name (linked), email, phone, and address.
Linked job
If the invoice is tied to a job, the job title, status, and a link to the job detail are shown.
Line items table
| Column | Content |
|---|---|
| Description | What was billed |
| Qty | Quantity |
| Unit Price | Price per unit |
| Total | Quantity times unit price |
Totals footer
- Subtotal
- Total
- Paid — any payments already applied (shown in green)
- Balance Due — what is still owed (shown in red if overdue)
Status history
Every status change with timestamps and who made the change.
Payment history
After an invoice has a payment, this table shows each payment's date, amount, method, and check number when applicable. Its summary shows the amount paid and the balance remaining.
ToolbagCRM shows Loading payment history… while it retrieves those records. If the payment records cannot load, the invoice stays available and the page shows Couldn't load payment history with a retry action instead of treating the history as empty.
Flow card
The Flow card shows the invoice's current status, previous status changes, related activity, and planned next transitions. Use its Advance to... action to move the invoice one normal step forward, such as Draft → Sent → Paid. A Paid invoice has no normal advance action, but Void invoice remains available until the invoice is already Voided and always asks for a reason before saving.
Activity history
A chronological record of sends, payments, status changes, and other events on the invoice.
Delivery and payment
Mark an invoice as sent
- Deliver the invoice through your chosen channel, such as a printed copy or an email you send separately.
- Select Mark as sent on the invoice detail page.
- Review the confirmation, then select Mark as sent again.
ToolbagCRM changes the invoice to Sent and tracks its open balance in Receivables Aging using the configured payment terms and due date. This action does not email the customer or create a pay link.
When Auto-Charge becomes available, an eligible saved payment method may be charged when the invoice becomes due. Review the invoice and customer billing setup before confirming.
Online pay links
- Mark the delivered invoice as sent.
- Select Copy Pay Link and share the secure link with the customer, or use Open Pay Link to preview it first.
- The customer opens the link and pays by card through Stripe.
- ToolbagCRM records the payment automatically and updates the invoice to Paid when the balance is settled.
In the ToolbagCRM demo, the public invoice shows Demo payment instead of a card form. Select Simulate payment to preview the paid receipt and update that invoice in the current demo session. No card is charged.
Outside the demo, creating an online pay link requires a connected Stripe account and a verified owner email. If Stripe is not connected, ToolbagCRM prompts an authorized user to open Settings → Integrations → Stripe; other team members can ask an administrator to connect it.
Manual payments
For cash or check payments collected outside Stripe:
- Open the invoice detail.
- Click Record payment.
- Choose Cash or Check and enter any positive amount up to the remaining balance.
- For a check, enter the check number and type the amount again in Confirm amount (USD).
- Click Record payment.
The payment appears in the invoice's Payment history and the Payments ledger. A partial payment leaves the invoice open with the reduced balance; paying the full remaining balance changes the invoice to Paid.
Invoice statuses
- Draft — Created but not yet sent. Editable.
- Sent — Delivered to the customer. Awaiting payment.
- Paid — Payment received in full.
- Voided — Cancelled and excluded from receivables. Requires a reason when voiding.
- Overdue — Unpaid and past the due date (derived status). Voided invoices are excluded from overdue calculations.
Tips
- Use Print from the invoice detail when a customer needs a PDF or paper copy; the printed layout removes internal navigation, action controls, and activity history so the document stays customer-facing.
- Use the Flow card when you want a guided status change with confirmation and status-history context; use Void invoice there only when the invoice should be cancelled and excluded from receivables.
- Search by invoice number, customer name, or job title, then use the status tabs and pagination controls to narrow the full matching set.
- Set due dates so overdue invoices are flagged automatically.
- Use Receivables aging to find the oldest unpaid balances, then select a populated band to review the matching invoices.
- Link invoices to jobs so the financial picture stays connected to the work.
- Check the invoice history to see the full record when investigating a payment question.
Troubleshooting
"Online payments require Stripe"
ToolbagCRM requires a connected Stripe account to create an online pay link or charge a card. An authorized user can go to Settings → Integrations → Stripe and complete the connection. You can still print or deliver the invoice, mark it as sent, and record cash or check payments without Stripe.
"Verify your email for online payments"
The account owner's email must be verified before you can create or share an online pay link. Check your email for a verification link or re-send it from your account settings. You can still mark the invoice as sent and record offline payments.
Mark as sent did not email the customer
Mark as sent records that you delivered the invoice through your chosen channel; ToolbagCRM does not send an email as part of that action. Deliver the invoice separately, or create and share an online pay link after Stripe is connected.
Invoice total exceeds the $1,000,000 limit
Individual invoices are capped at $1,000,000. Split large amounts across multiple invoices if needed.
Line item values are rejected
Each line item must have a positive quantity, and the overall invoice total cannot be negative. Check that quantity is above zero and that any applied credits do not reduce the invoice below $0.
Receivables aging is unavailable
The aging summary requires read access to Invoices and Payments plus access to all Jobs. Its invoice drill-down also requires Customers read access. Ask an account owner to review your role if the invoice list is visible but aging totals or matching rows are not.
An invoice appears under Due date needed
Review and save the invoice's due date or terms before collection follow-up. Older records may use a legacy-derived due date; verify those terms even when ToolbagCRM can place the balance in a dated band.
"Linked job must belong to the selected customer"
Invoices can only be linked to a job that belongs to the same customer. If you change the customer after selecting a job, the job field resets — pick the job again from the filtered list, or leave it unlinked for a customer-only invoice.
"This invoice is managed by the quote or job it came from and can't be edited here."
Invoices created and controlled by a quote or completed-job workflow cannot be edited directly from the invoice detail. Return to the source quote or job to correct the underlying work instead.
The Flow card does not show every invoice status as a button
The Flow card offers the next normal status as the main action, so a Draft invoice advances to Sent before Paid. After an invoice reaches Paid, there is no normal advance action; Void invoice remains available as a separate action, but ToolbagCRM will not void an invoice while completed payments are still applied.
"Reverse or refund completed payments before voiding this invoice"
ToolbagCRM will not cancel an invoice while completed payments are still applied. For a completed Stripe payment, select Refund from the invoice payment history or the Payments page, review the matched charge in Settings → Integrations → Stripe, and confirm the full refund. Once ToolbagCRM receives the refund update, it marks the payment Refunded and reopens a Paid invoice to Sent. Then return to the invoice and use Void invoice. Offline cash and check payments cannot be reversed from the Payments page, so ask ToolbagCRM support for help with those records. Deposit invoices use the same safeguard and may say to reverse or refund the deposit payment.
Cannot share a Draft invoice
Pay links can only be generated for invoices that have been marked as sent. Select Mark as sent on the invoice detail first, then use Copy Pay Link.
Customer cannot find the payment link
If the customer reports a broken payment link, the invoice may have been voided or the link may have expired. Generate a fresh link from the invoice detail.
