Expensicat
CLI

Invoices

Create, list, update, and delete invoices, templates, and recurring series

invoice list

List invoices with optional filters.

expensicat invoice list
expensicat invoice list --status overdue --limit 20
expensicat invoice list --json | jq '.data[] | .id'
FlagDescription
--status <string>Filter by status (draft, unpaid, paid, overdue, cancelled)
--cursor <string>Pagination cursor
--limit <number>Page size

invoice show

Get a single invoice by ID.

expensicat invoice show inv_abc123
ArgDescription
<id>Invoice ID

invoice create

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!"
FlagDescription
--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.

invoice update

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"
ArgDescription
<id>Invoice ID
FlagDescription
--status <string>New status
--due-date <string>New due date
--notes <string>Updated notes

invoice delete

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
ArgDescription
<id>Invoice ID
FlagDescription
-y, --yesSkip the confirmation prompt (required for non-interactive use)

invoice template list

List available invoice templates for the current organization.

expensicat invoice template list
expensicat invoice template list --json
FlagDescription
--jsonOutput as JSON

invoice recurring list

List recurring invoice series.

expensicat invoice recurring list
FlagDescription
--cursor <string>Pagination cursor
--limit <number>Page size

invoice recurring show

Get a recurring series by ID.

expensicat invoice recurring show rec_abc123
ArgDescription
<id>Recurring series ID

invoice recurring create

Create a recurring invoice series.

expensicat invoice recurring create --customer-id cust_123 --frequency monthly --amount 5000
FlagDescription
--customer-id <string>Customer to bill (required)
--frequency <string>weekly, monthly, quarterly, yearly (required)
--amount <number>Amount per run

invoice recurring update

Update an existing recurring series.

expensicat invoice recurring update rec_abc123 --amount 6000
ArgDescription
<id>Recurring series ID
FlagDescription
--frequency <string>New frequency
--amount <number>New amount

invoice recurring delete

Stop and remove a recurring series.

expensicat invoice recurring delete rec_abc123
ArgDescription
<id>Recurring series ID

On this page