@{ ViewData["Title"] = "Invoices"; }

Overview

Invoices are the formal request for payment you send to customers after their work is complete. Each job can have one invoice. The system tracks payment status in real time — you can see at a glance which customers owe money, how much, and how long the balance has been outstanding.

Invoices can be emailed to customers directly from the system (when email is configured) and downloaded as PDFs to print or send manually. Payments — whether in full or in partial installments — are logged against the invoice, and the customer's outstanding balance on their account is updated automatically with every transaction.

You can find Invoices under Operations › Invoices in the left sidebar.

Creating an Invoice

The easiest way to create an invoice is directly from the job it belongs to. This pre-fills all line items and pricing automatically.

From a Job (recommended)

  1. Open the job from Operations › Jobs and go to its Details page.
  2. Scroll to the Invoice section near the bottom of the page.
  3. Click Create Invoice. The system pre-fills all line items, the discount, tax rate, payment terms, and due date from the job and customer automatically.
  4. Review the Totals panel on the right — if a discount was applied to the job it shows as a red Discount Applied line below the subtotal. Negative line items are allowed if you need to apply a manual credit or price adjustment.
  5. Adjust anything you need, then click Save Invoice.

From the Invoices list (manual)

  1. Go to Operations › Invoices and click New Invoice.
  2. Select the customer and then select the job this invoice is for.
  3. Add or adjust line items as needed.
  4. Set the invoice date, due date, and any notes.
  5. Click Save Invoice.

Invoice numbers are generated in the format INV-YYMM-#### (for example, INV-2503-0007). Each job can only have one invoice — if an invoice already exists for a job, the Create Invoice button on the Job Details page is replaced with a link to the existing invoice.

Inline Price Editing

While an invoice is in Draft status, you can edit line item prices, quantities, and descriptions directly on the Invoice Details page — without opening the full Edit form.

  1. Click a unit price, quantity, or description cell. The cell turns into an input field.
  2. Type the new value.
  3. Press Enter or click anywhere outside the field to save. Press Esc to cancel.

The line total and the invoice grand total update immediately without reloading the page.

Invoice Statuses

Invoices move through statuses that reflect their current payment state. Each status is shown as a color-coded badge throughout the system.

Status What it means
Draft The invoice has been created but not yet sent to the customer. It can still be edited freely. It does not yet affect the customer's balance.
Sent The invoice has been delivered to the customer and a due date is set. The balance is now reflected in the customer's outstanding account.
Partially Paid At least one payment has been received but the full balance has not yet been settled.
Paid The full invoice amount has been received. The customer's balance is reduced to zero for this invoice.
Overdue The due date has passed and there is still an outstanding balance. Overdue invoices are flagged prominently in the AR Aging report.
Voided The invoice was cancelled. The balance is reversed on the customer's account. See the Voiding section below for restrictions.
Written Off The balance has been written off as bad debt. The outstanding amount is removed from the customer's account but is recorded for reporting purposes.

Sending an Invoice

Once you have saved an invoice as a Draft and reviewed it, you are ready to send it to the customer.

  1. Open the invoice from Operations › Invoices or from the job's Details page.
  2. Click Send Invoice. The status changes from Draft to Sent.
  3. If email notifications are configured, the customer receives an email with the invoice details and total due.
  4. The due date and payment terms are pre-filled from the source quote (if the job came from a quote) or the customer’s payment terms — you can always override them before saving.

You can also click Download PDF on any invoice to generate a print-ready PDF that you can email manually, attach to an existing email thread, or hand to the customer in person.

Recording a Payment

When a customer pays — whether in full or as a partial payment — you record it against the invoice. The system supports multiple partial payments on a single invoice.

  1. Open the invoice and click Record Payment.
  2. Fill in the payment details:
    • Amount — how much was received this time. Can be less than the full balance for partial payments.
    • Payment Method — Cash, Check, Credit/Debit Card, Bank Transfer / ACH, or Digital Payment.
    • Payment Date — defaults to today.
    • Reference Number — optional. Use for check numbers, transaction IDs, or wire reference numbers.
    • Notes — any additional notes about this payment.
  3. Click Save Payment.

The invoice status updates automatically — to Partially Paid if there is still a remaining balance, or Paid if the full amount has been received. The customer's outstanding balance on their account is reduced by the payment amount. All payments are shown in a payment log on the invoice Details page.

Voiding an Invoice

If an invoice was created in error — for example, against the wrong job or with incorrect line items that cannot be corrected — you can void it to remove it from the customer's outstanding balance.

  1. Open the invoice and click Void Invoice.
  2. Confirm the action in the dialog that appears.
  3. The invoice status changes to Voided and the balance is reversed on the customer's account.

Customer Balance

Every customer in the system has a running current balance that represents their total outstanding amount across all unpaid invoices. The balance is updated automatically whenever an invoice is sent, a payment is recorded, or an invoice is voided.

You can see the current balance on the Customer Details page, shown alongside the customer's credit limit.

  • When an invoice is sent, the balance increases by the invoice total.
  • When a payment is recorded, the balance decreases by the payment amount.
  • When an invoice is voided, the balance decreases by the invoice total.

If a customer's outstanding balance is approaching or has exceeded their credit limit, a warning flag is shown on their customer record, on new jobs you try to create for them, and on new invoices. This is a visual warning only — the system does not automatically block new work — but it provides a clear signal to follow up on payment.

Deposits

If a customer pays a deposit before work starts, record it from the Job Details or Quote Details page using the Record Deposit button in the Deposits card.

When you create an invoice from a job, all unapplied deposits are automatically applied as payments on the new invoice. The invoice's Amount Paid and status update accordingly — you may find the invoice is already partially or fully paid at creation time.

Each deposit generates a receipt (receipt number format: DEP-YYMM-####) that can be downloaded as a PDF immediately after recording.

Gift Certificates

Gift certificates are issued and managed at Gift Certificates in the Operations section of the sidebar.

To apply a gift certificate to an invoice, open the Invoice Details page and click Apply Gift Certificate. Enter the certificate code — the system looks up the remaining balance and applies it as a payment up to the invoice amount.

Online Payments

Customers can pay invoices online without logging in. The Online Payments page (/Invoices/OnlinePayments) lists all open invoices with a shareable payment link. Clicking the link takes the customer to a Stripe-hosted checkout page where they can pay by credit or debit card. Payment is recorded automatically and the invoice status updates to Paid or Partially Paid. Your team receives a bell notification when payment is received.

One-Time Setup: Connecting Stripe

Online payments require a Stripe Connect account linked to your company. A Company Admin completes this once:

  1. Go to Settings › Billing (/Billing).
  2. Click Connect with Stripe (or Set Up Online Payments).
  3. You are redirected to Stripe — create a new Stripe account or connect an existing one.
  4. Complete Stripe’s onboarding: enter your business details, add a bank account for payouts, and verify your identity as required by Stripe.
  5. Once Stripe approves the account, you are returned to the app and Stripe Connect status shows Active.
  6. Payment links now appear on Invoice Details and on the Online Payments page.

Sharing a Payment Link

Once Stripe Connect is active, open any Invoice Details page and use one of these options:

  • Copy Payment Link — copies the URL to your clipboard so you can paste it into an email, text, or any other message.
  • Send Payment Link — emails the payment link directly to the customer’s email address on file, with a brief message and the invoice amount.

The link is unique to each invoice and does not expire as long as the invoice remains unpaid. Voided invoices do not generate payment links.

Automated Payment Reminders

The system can automatically email customers when their invoices become overdue — without you having to remember to follow up manually. This feature is controlled from Settings › Notifications › Automated Payment Reminders.

  • Enable Payment Reminders — turn the feature on or off for your company at any time. When off, no automated emails are sent.
  • Reminder Days — a comma-separated list of day milestones past the due date at which reminders are sent. The default is 7,14,30 (one reminder at 7 days overdue, another at 14, and a final one at 30).

Each morning the system checks for overdue invoices in Sent, Partially Paid, or Overdue status and sends a reminder email if the invoice has reached one of your configured day thresholds for the first time that day. Customers who have opted out of email notifications are never contacted.

@{ await Html.RenderPartialAsync("_HelpNav"); }