---
title: "Invoice clients"
description: "Turn agreements and logged time into client invoices, then finalize, send, record payments, issue credit notes, void, and export for your accounting package."
url: "https://support.outpostplatform.com/msp/client-invoicing/"
product: "depot"
type: "how-to"
status: "draft"
ai_summary: "MSP plan. Outpost drafts an invoice when a client's billing day arrives. Ready to invoice, Generate now, Finalize selected, draft adjustments, Send to the client, Record a payment, Issue a credit note, Void, statuses, reminders, Unbilled time, the client Billing profile, invoicing settings, and CSV files for QuickBooks or Xero. Permissions psa:read to psa:admin."
availability:
  plans: ["msp"]
  permission: "psa:invoice"
  preview: false
source: "https://gitlab.com/outpostplatform/docs/-/edit/main/src/content/docs/msp/client-invoicing.md"
license: "CC BY 4.0"
---

# Invoice clients

Client invoicing turns each client's agreement and the billable time your
team logged into an invoice, emails it to the client, and tracks what is paid.
Outpost drafts the invoices. You check them, finalize them, and send them. This
page covers the monthly cycle, payments and corrections, the settings every
invoice is built from, and exporting invoices to your accounting package.

## Before you begin

- You are on the MSP plan, and the client has an active agreement. See
  [Client agreements](/msp/agreements/).
- Generating, finalizing, sending, and voiding invoices, recording payments,
  and issuing credit notes need `psa:invoice`. Editing a draft and a client's
  billing profile needs `psa:write`. The invoicing settings and the
  accounting export need `psa:admin`. Reading needs `psa:read`.
- Finalizing an invoice emails it to the client's billing contact. A client
  with no billing contact email is finalized without an email. See
  [Set a client's billing profile](#set-a-clients-billing-profile).

:::note
To let clients pay online, by card or bank transfer, connect a payment
provider. Every invoice email then carries a pay link. See
[Client payments](/client-payments/). Payments that arrive any other way, such
as by check, you record by hand as below.
:::

## How an invoice is drafted

On the day a client's agreement bills, Outpost drafts the invoice for the
period. The draft holds:

- The agreement's lines. Per device, per user, and per seat lines are
  counted at that moment, and a period that started part way through is
  prorated. Discounts appear as their own lines, and lines billed by peak or
  daily usage get a usage true-up for the period before. See
  [Bill seat and device changes](/msp/usage-methods/).
- The client's **Billable** time from the period, at the rate its rule named.
  Time drawn from a prepaid block is taken off the block, and only work
  beyond the block's remaining balance is billed. Covered, prepaid, and
  excluded time adds no line.

A draft has no number and can still change. Time on a draft stays off
**Unbilled time** while it is there. If you delete the draft, the time comes
back and the period can be billed again.

Accepting a quote, completing a project milestone, and approving a change
order can also create draft invoices. See
[Sales pipeline and quotes](/msp/sales-and-quotes/) and
[Projects](/msp/projects/).

## Invoice a month

1. Select **Client billing** > **Ready to invoice**. It lists the clients
   whose period has agreement charges or unbilled time in it, with the
   **Period**, the **Agreement** charges, the **Time** charges, the
   **Unbilled** minutes, and the **Total**.
2. For a client with no draft yet, select **Generate now** to draft the
   invoice without waiting for the scheduled run.
3. Select **Open the draft** and check it. See
   [Adjust a draft](#adjust-a-draft).
4. Back on **Ready to invoice**, select the clients whose drafts are right,
   then **Finalize selected**.
5. Confirm with **Finalize**. Outpost finalizes the invoices one client at a
   time, and lists each invoice number when it is done.

Finalizing emails each invoice, with its PDF attached, to the client's billing
contact. For a client with no billing contact email, no email is sent. Send
that invoice yourself. See [Send an invoice](#send-an-invoice).

### Adjust a draft

On a draft invoice, you can change each line's description, quantity, and
unit price. Select **Add an adjustment** to add a manual line. An adjustment
is the one line whose amount may be negative, which is how you write a
discount. Select **Save draft** to recompute the totals.

To throw a draft away, select **Actions** > **Delete draft**. It leaves no
number behind, and the client's period becomes billable again.

### Finalize one invoice

On a draft, select **Actions** > **Finalize** and confirm. The invoice gets
its number, its PDF, and its due date, and its lines never change again.
Outpost emails it to the client's billing contact. **Open the PDF** opens the
document the client receives.

## Send an invoice

Finalizing already emails the invoice to the client's billing contact. Send it
from the invoice when the client has no billing contact email, when it needs
to go to another address, or to send it again.

1. On the invoice, select **Actions** > **Send to the client**.
2. In **Send to**, leave the box empty to use the client's billing contact, or
   enter another address.
3. Select **Send**.

The email is queued and retried if mail delivery fails for a while. The
invoice PDF is attached.

Outpost also emails the billing contact a reminder before the due date and
again while the invoice is overdue, as set in the invoicing settings.

## Record a payment

1. On the invoice, select **Actions** > **Record a payment**.
2. In **Amount received**, enter what arrived, not what was invoiced.
3. Choose the **Method**: **Check**, **Bank transfer (ACH)**, **Card**, or
   **Other**.
4. Enter **Received on**, and a **Reference** such as a check number or a
   transaction ID so the payment can be matched to the bank later.
5. Select **Record payment**.

Recording a payment does not send the client anything. The invoice moves to
**Part paid** or **Paid**.

Do not record a payment by hand while the invoice's **Online payments** card
shows a payment in progress. If both land, the client has paid twice. See
[Send pay links and charge saved methods](/client-payments/pay-links/).

## Issue a credit note

1. On the invoice, select **Actions** > **Issue a credit note**.
2. In **Kind**, choose:
   - **Credit** when the client is owed this back against what was billed,
     such as a goodwill credit or a corrected line.
   - **Write off** when you have decided not to collect it.
3. In **Amount**, enter no more than the outstanding balance.
4. In **Reason**, enter the explanation. It is shown on the credit note the
   client receives.
5. Select **Issue credit note**.

A credit note has its own number, and the invoice keeps its number too.

## Void an invoice

1. On the invoice, select **Actions** > **Void this invoice**.
2. In **Reason**, enter why. It is kept on the record and shown on the
   document.
3. Select **Void this invoice**.

A voided invoice keeps its row and its number, so there is no gap in your
invoice numbers. Voiding frees the period, so it can be billed again, and its
time returns to **Unbilled time**. A draft cannot be voided. Delete it
instead.

## Invoice statuses

| Status | Meaning |
| --- | --- |
| **Draft** | Being built. No number, and the lines can change. |
| **Issued** | Finalized: numbered, rendered, and frozen. |
| **Sent** | The email to the client has been sent. |
| **Part paid** | Payments and credit notes cover part of the total. |
| **Paid** | Payments and credit notes cover the whole total. |
| **Past due** | Not paid by the due date. |
| **Void** | Canceled. It keeps its number. |

The balance is the total less payments and credit notes. It is worked out
every time you look, so it always agrees with the payments and credit notes
listed on the invoice.

## Review unbilled time

**Client billing** > **Unbilled time** lists logged work across every client
that no invoice holds yet, with its **Charge type**, **Outcome**, and
**Amount**. **Client** chooses whose work you see.

The page opens on the **Billable and unjudged** view. **Needs a decision**
shows the entries with no outcome. **Everything** includes covered, prepaid,
and excluded work and the entries already on a draft.

An entry marked **Unclassified** has no outcome yet, because the client had no
active agreement when the work was logged. It is classified by the agreement's
rules when the client's next invoice is drafted. See
[Client agreements](/msp/agreements/#rules).

### Reprice an entry

An entry keeps the outcome and rate it was given when it was classified. After
you change the client's agreement, select **Reprice** on an entry to price it
again with the client's current agreement rules. **Reprice** is offered on
each row of **Unbilled time**, on a ticket's **Time** tab, and on a project
task's **Time** card. It needs `psa:write`. An entry marked
**Invoiced** is on a finalized invoice and is never repriced.

## Track what is owed

**Client billing** opens on an overview with **outstanding**, **overdue**, and
**clients ready to invoice** figures, and a **Who owes what** table of each
client's balance by age, from current to over 90 days. Ages run from each
invoice's due date.

**Client billing** > **Invoices** lists every invoice. It opens on the **Open
and overdue** view. **Drafts** and **Everything** show the rest. Search
matches the invoice number and the client name.

## Set a client's billing profile

1. Open the client's workspace, then select **Client billing** > **Billing
   profile**.
2. Under **Billing contact**, enter the **Contact name**, the **Contact
   email** that invoices and reminders go to, and the **Billing address**
   printed on the invoice.
3. Under **Overrides**, enter **Payment terms in days**, **Tax rate as a
   percentage**, or **Time zone** only where this client differs from your
   practice. Leave a box empty to follow the practice setting. A typed zero is
   a real value, not the same as empty.
4. Select **Save**.

**What this client is billed on** shows the terms, tax rate, and time zone in
effect and where each comes from. New invoices for the client use the saved
details.

## Set the invoicing defaults

**Client billing** > **Settings** holds the defaults every invoice is built
from. An invoice takes its copy when it is generated, so changing a setting
never changes an invoice already issued.

| Setting | What it does |
| --- | --- |
| **Currency** | The currency of every invoice. Invoices already issued keep theirs. |
| **Time zone** | What day it is at your practice. It also decides when a quote expires. |
| **Tax rate** | The default tax rate. A client's billing profile can override it. |
| **Payment terms** | Days from the issue date to the due date. A client's billing profile can override it. |
| **Invoice prefix** | The front of every invoice number, such as `INV` in `INV-000042`. |
| **Remind before it is due** | Days before the due date to send the first reminder. Zero sends none. |
| **Chase an overdue invoice every** | Days between overdue reminders. Zero sends none. |
| **Warn when a prepaid block falls below** | Minutes left in a prepaid block before the client is told. Zero sends no warning. |
| **Remit to block** | Where the client sends payment, printed on every invoice as written. |

## Export invoices for your accounting package

On the **Client billing** overview, select **Export for QuickBooks** or
**Export for Xero**. Each downloads a CSV file in that package's column order,
holding the finalized invoices issued in the last 90 days, without void
ones. Import
the file into QuickBooks Online or Xero.

The export is a file you download and import. Outpost does not connect to
either package or keep them in step. The file holds every client's name,
address, invoice numbers, and amounts, which is why it needs `psa:admin`.

## Verify

- The finalized invoice has a number and shows **Issued**, then **Sent** once
  the email has gone.
- **Open the PDF** shows the remit-to block and the client's billing address.
- After you record a full payment, the invoice shows **Paid** and a balance of
  zero.

## Next steps

- [Client agreements](/msp/agreements/)
- [MSP reports](/msp/msp-reports/)
- [Time tracking and dispatch](/msp/time-and-dispatch/)
