Customer Invoices
Create, send, and track customer invoices. Real-time status tracking, email delivery with PDF attachments, automated reminders, and recurring templates.
Customer Invoices are the accounts-receivable side of Finance. They capture what customers owe you, send branded email notifications with a PDF attachment, track delivery and payment, and let you recover overdue balances through a tuned reminder workflow. Paired with Recurring Invoices, AR Aging, and the Funds module, Customer Invoicing gives your team a single view of every incoming dollar.
How Customer Invoicing Fits Together
Draft Invoice → Send (email + PDF) → Viewed → Paid (in full or partial) → Reconciled
↓
Overdue → AR Aging reminders
| Surface | What It Does |
|---|---|
| Customer Invoices | The outbox of customer obligations — draft, sent, viewed, partial paid, paid, overdue, void |
| Recurring Invoices | Templates that auto-generate invoices on a monthly / quarterly / annual cadence |
| AR Aging & Collections | Overdue-invoice queue, per-customer collection score, reminder ladder |
Customer Invoices
Viewing Invoices
- Navigate to Finance → Customer Invoices (
/invoicing) - The invoice list shows every outgoing invoice with status, customer, amount, issue date, due date, and collection score
- Filter by status:
draft,sent,viewed,partial_paid,paid,overdue,void
Invoice Statuses
| Status | Meaning |
|---|---|
draft | Created but not yet sent. No email dispatched; not visible to the customer |
sent | Emailed to the customer with the PDF attachment; awaiting payment |
viewed | Customer opened the invoice email or downloaded the attached PDF |
partial_paid | One or more payments applied, but amount_due is still above zero |
paid | Fully paid; amount_due is zero |
overdue | Past its due_date and not yet paid or void (derived, not stored) |
void | Cancelled with a reason; any linked payment page token is revoked |
Creating an Invoice
- From Customer Invoices, click New Invoice (or press N)
- Pick a customer:
- Start typing in the Customer picker — matching CRM people appear
- Or type a name + email to bill an ad-hoc customer not yet in the CRM
- Nonprofit tenants only: pick an optional Fund to tag this AR line for Fund-level reporting
- Set Issue Date and Due Date (defaults to today + 30 days)
- Add one or more line items — each row captures description, quantity, and unit price; amount calculates automatically
- Enter Tax and Discount if applicable. Discounts cannot exceed the subtotal + tax (guarded by the API)
- Click Save as Draft to keep it private, or Save and Send to email it immediately
When a CRM person is selected, Muin pre-fills the customer name and email from the CRM record; manual overrides are preserved.
Sending an Invoice
Click Send on a draft invoice to email it to the customer. Muin:
- Generates a branded PDF with your tenant’s logo, address, and invoice line items
- Emails the customer at
customer_emailwith the PDF attached - Stamps
last_sent_aton the invoice - Transitions status from
drafttosent
Preview before sending: click Preview Email to see the exact subject, body, and PDF filename Muin will dispatch. Useful for verifying branding and wording before it hits the customer’s inbox.
Resend: already-sent invoices show a Resend button — useful after a customer reports the email was caught by spam or sent to the wrong address.
Voiding an Invoice
Sometimes an invoice is issued in error, cancelled by agreement, or superseded by a credit note. Void captures the reason and revokes any payment link:
- Open the invoice and click Void
- Enter a reason (required — becomes part of the audit trail)
- Confirm
Voiding:
- Transitions status to
void - Revokes the associated
PaymentPageTokenso the public payment link returns a 410 Gone - Keeps the invoice visible in history for audit and reporting
- Removes it from AR Aging calculations
You cannot void an invoice that has already received payment. Issue a credit note instead.
Downloading the PDF
Every invoice can be re-downloaded as a PDF at any time — useful for audits, vendor-style record-keeping, or sending via a channel other than Muin. The PDF matches exactly what was (or will be) attached to the email.
Tracking Payments
Amount Due
Every invoice tracks subtotal, tax_amount, discount_amount, total_amount, amount_paid, and amount_due. All amounts use IRS-grade decimal precision — no floating-point rounding errors in your books.
Recording Payments
Payments applied to an invoice (through the Reconciliation drawer, a payment-page gateway transaction, or a manual journal entry) automatically:
- Increment
amount_paid - Decrement
amount_due - Transition status from
senttopartial_paid, then topaidwhenamount_duehits zero
Collection Score
Sent invoices display a collection score — a 0-100 signal that blends invoice age, customer payment history, and prior reminder responsiveness. Higher scores signal invoices that are likely to be paid soon; lower scores surface accounts that need intervention.
Reminders & Collections
Sent or overdue invoices can send payment reminders to the customer:
- From the invoice row, click Remind — Muin drafts and sends an AI-composed reminder email using the invoice details and current aging bucket
- The reminder copy tone escalates automatically with aging: friendly at 1-14 days, firm at 15-30 days, urgent at 31+ days past due
- For per-customer and bulk reminder flows across many overdue invoices, use AR Aging & Collections — see the AR Aging doc
Each reminder stamps last_reminded_at so you can see when the customer was last contacted.
Recurring Invoices
For retainers, subscriptions, and standing monthly bills, create a template that auto-generates invoices on a cadence.
Creating a Recurring Template
- Navigate to Finance → Customer Invoices → Recurring (
/invoicing/recurring) - Click New Recurring Template
- Pick the customer + optional fund (same pickers as a one-off invoice)
- Set the Frequency: monthly, quarterly, semi-annual, or annual
- Set Next Issue Date — the first invoice fires on this date
- Set Payment Terms — days between issue and due date for each generated invoice
- Optionally set an End Date — the template stops generating after this date
- Add line items, tax, discount — these are copied verbatim onto every generated invoice
- Toggle Auto-send if you want each generated invoice to be emailed immediately, or leave it off to generate drafts you can review first
Recurring Statuses
| Status | Meaning |
|---|---|
active | Generates on schedule |
paused | Temporarily stopped — resume at any time |
cancelled | Manually stopped; no further invoices will generate |
completed | Reached its end_date naturally |
Payment Method Integration
If your tenant has a connected payment processor (Stripe or Paystack), recurring templates can pre-attach the customer’s saved payment method so auto-sent invoices include a one-click pay link. When the processor is unavailable or unsupported in your region, the template degrades gracefully to send-only mode — no broken flows.
Tracking Generated Invoices
Each recurring template shows invoices_generated and last_generated_at so you can verify the cadence is firing as expected. Every generated invoice appears in the main Customer Invoices list with the template’s tag so you can filter them.
Data Model Notes
- Decimal-safe amounts: subtotal, tax, discount, total, amount_paid, amount_due all stored as
DECIMAL(19,4)— no float drift across sums, tax computations, or reminder-cadence math. - Idempotent payment application: applying the same payment twice is a no-op — Muin deduplicates by transaction fingerprint.
- Multi-currency: each invoice carries its own
currencycode; aggregates respect the invoice currency. - Audit trail: every state transition (draft → sent, void with reason, payment applied) writes an entry viewable in the invoice’s Activity timeline.
- Tenant isolation: invoices are scoped to the tenant; cross-tenant reads are guarded at the API layer.
Permissions
Customer Invoices require RequireFinanceWrite (or RequireFinanceProcess for void actions). Users without finance-write access see a 403 on direct API calls and an Access Denied state on the /invoicing pages.
Related Docs
- Bills and Payables — the AP side (money out)
- Payments Received — recording customer payments and applying them to invoices
- AR Aging & Collections — overdue queue, reminder ladder, collection cadence
- Bank Reconciliation — matching bank transactions to invoices
- Sales Tax — nexus advisor and rate calculation for taxable invoices