CLI
Invoices
Create, list, update, and delete invoices, templates, and recurring series
List invoices with optional filters.
expensicat invoice list
expensicat invoice list --status overdue --limit 20
expensicat invoice list --json | jq '.data[] | .id'
| Flag | Description |
|---|
--status <string> | Filter by status (draft, unpaid, paid, overdue, cancelled) |
--cursor <string> | Pagination cursor |
--limit <number> | Page size |
Get a single invoice by ID.
expensicat invoice show inv_abc123
| Arg | Description |
|---|
<id> | Invoice ID |
Create a new invoice. Interactive by default — select a customer, pick a template, add line items, and confirm before submission.
# Interactive
expensicat invoice create
# Fully non-interactive
expensicat invoice create \
--customer-id cust_123 \
--template-id tpl_default \
--due-date 2026-05-01 \
--items '[{"name":"Consulting","quantity":10,"price":150}]' \
--notes "Thanks!"
| Flag | Description |
|---|
--customer-id <string> | Customer to invoice (prompts with a selector if missing) |
--template-id <string> | Invoice template (provides prefix, currency, tax rate, branding) |
--due-date <string> | Due date (YYYY-MM-DD); defaults to today + 30 days when prompted |
--items <json> | Line items as JSON array: [{ name, quantity, price }] |
--notes <string> | Notes shown on the invoice |
When prompted, line items are collected one at a time with a running subtotal, then previewed for confirmation.
Update fields on an existing invoice.
expensicat invoice update inv_abc123 --status paid
expensicat invoice update inv_abc123 --due-date 2026-06-01 --notes "Extended"
| Arg | Description |
|---|
<id> | Invoice ID |
| Flag | Description |
|---|
--status <string> | New status |
--due-date <string> | New due date |
--notes <string> | Updated notes |
Delete an invoice. Only draft or cancelled invoices can be deleted. Prompts for confirmation in a terminal; pass --yes to skip.
expensicat invoice delete inv_abc123
expensicat invoice rm inv_abc123 --yes # alias + skip prompt
| Arg | Description |
|---|
<id> | Invoice ID |
| Flag | Description |
|---|
-y, --yes | Skip the confirmation prompt (required for non-interactive use) |
List available invoice templates for the current organization.
expensicat invoice template list
expensicat invoice template list --json
| Flag | Description |
|---|
--json | Output as JSON |
List recurring invoice series.
expensicat invoice recurring list
| Flag | Description |
|---|
--cursor <string> | Pagination cursor |
--limit <number> | Page size |
Get a recurring series by ID.
expensicat invoice recurring show rec_abc123
| Arg | Description |
|---|
<id> | Recurring series ID |
Create a recurring invoice series.
expensicat invoice recurring create --customer-id cust_123 --frequency monthly --amount 5000
| Flag | Description |
|---|
--customer-id <string> | Customer to bill (required) |
--frequency <string> | weekly, monthly, quarterly, yearly (required) |
--amount <number> | Amount per run |
Update an existing recurring series.
expensicat invoice recurring update rec_abc123 --amount 6000
| Arg | Description |
|---|
<id> | Recurring series ID |
| Flag | Description |
|---|
--frequency <string> | New frequency |
--amount <number> | New amount |
Stop and remove a recurring series.
expensicat invoice recurring delete rec_abc123
| Arg | Description |
|---|
<id> | Recurring series ID |