Invoicing

Generate and send professional PDF invoices with company presets, logos, and custom email templates.

Overview

Pontius can generate professional PDF invoices and email them to clients. Set up company presets with logos, payment terms, and custom email templates for a polished invoicing workflow.

Quick Start

Set up a company and generate your first invoice:

# Set up a company (interactive wizard)
$ pontius invoice setup
# Generate an invoice
$ pontius invoice [email protected] "Consulting Services" 500 --company mycompany
# Generate and send immediately
$ pontius invoice [email protected] "Consulting Services" 500 --company mycompany --send

Company Setup

The invoice setup command walks you through creating a company preset:

$ pontius invoice setup
Invoice Setup
=============
Create a new company preset for invoicing.
Company name: ACME Corp
Associated account (for sending):
2. [email protected] (Personal)
> 1
Company Details
---------------
Legal/business name [ACME Corp]:
Address (blank line to finish):
> 123 Business St
> New York, NY 10001
>
Website (optional): https://acme.com
Invoice Settings
----------------
Invoice number prefix (e.g., INV-, ACME-) []: ACME-
Starting invoice number [1001]:
Default currency [USD]:
Payment terms [Due on receipt]: Net 30
Logo
----
Add company logo? (y/n): y
Path to logo: ~/Downloads/acme-logo.png
✓ Logo saved
✓ Company "ACME Corp" created!
Generate an invoice:
pontius invoice [email protected] "Product" 99.00 --company acme-corp

Company Management

Manage your company presets:

# List all company presets
$ pontius invoice company list
ID NAME ACCOUNT CURRENCY PREFIX
acme-corp ACME Corp [email protected] USD ACME-
consulting Consulting LLC [email protected] USD CON-
# Add a new company (non-interactive)
$ pontius invoice company add "New Company" \
--account Work \
--email-subject "Invoice #{invoice_num} - {product}" \
--email-body "Hi {customer_name},\n\nPlease find attached.\n\nBest,\n{sender_name}"
# Edit company details
$ pontius invoice company edit acme-corp
# Remove a company
$ pontius invoice company remove acme-corp

Logo Management

Add logos to your invoices:

# Set a logo
$ pontius invoice logo acme-corp ~/Downloads/logo.png
✓ Logo saved for acme-corp
# Remove a logo
$ pontius invoice logo acme-corp --remove
✓ Logo removed for acme-corp

Logos are stored in ~/.config/pontius/knowledge/invoices/logos/. Recommended size: 200x60px. Supported formats: PNG, JPG.

Generating Invoices

$ pontius invoice [email protected] "Consulting Services" 500 --company acme-corp
Generated invoice #ACME-1001: ~/Downloads/Invoice-ACME-1001.pdf

Options

OptionDescriptionDefault
--companyCompany preset IDFirst company for account
--nameCustomer name on invoiceEmail username
--currencyCurrency code (USD, EUR, etc.)Company default
--dateInvoice date (YYYY-MM-DD)Today
--sendEmail invoice immediatelyfalse

Custom Email Templates

Each company can have custom email subject and body templates with placeholders:

PlaceholderValue
{invoice_num}Invoice number (e.g., ACME-1001)
{company_name}Your company name
{customer_name}Customer name
{product}Product/service description
{amount}Invoice amount
{currency}Currency code
{sender_name}Sender's name

Defaults:

Subject: Invoice #{invoice_num} from {company_name}
Body: Please find attached invoice #{invoice_num} for your purchase.
Thank you for your business!
Best regards,
{sender_name}

Invoice History

View and manage your invoice history:

# List all invoices
$ pontius invoice list
NUM COMPANY TO PRODUCT AMOUNT STATUS
ACME-1001 acme-corp [email protected] Consulting Services $500.00 sent
ACME-1002 acme-corp [email protected] Annual License $999.00 draft
# Filter by company
$ pontius invoice list --company acme-corp
# Show invoice details
$ pontius invoice show ACME-1001
Invoice #ACME-1001
------------------
Company: ACME Corp
Product: Consulting Services
Amount: $500.00 USD
Status: sent
Created: 2026-01-06
Sent: 2026-01-06 10:30am
File: ~/Downloads/Invoice-ACME-1001.pdf

Sending Invoices

# Generate and send in one command
$ pontius invoice [email protected] "Product" 99 --company acme-corp --send
Generated invoice #ACME-1002: ~/Downloads/Invoice-ACME-1002.pdf
Invoice sent to [email protected]
# Send an existing invoice
$ pontius invoice send ACME-1001
Invoice #ACME-1001 sent to [email protected]
# Send with custom message
$ pontius invoice send ACME-1001 "Hi John, please find your invoice attached."
Invoice #ACME-1001 sent to [email protected]
Send From Alias
Set the send_from field in your company preset to send invoices from a specific alias (e.g., [email protected] instead of your primary email).

Data Location

Company presets and invoice history are stored in the knowledge base:

~/.config/pontius/knowledge/invoices/
├── README.md # Setup guide
├── companies.json # Company presets & invoice history
└── logos/ # Company logos
├── acme-corp.png
└── consulting.png

Generated PDFs are saved to your Downloads folder:

~/Downloads/
├── Invoice-ACME-1001.pdf
├── Invoice-ACME-1002.pdf
└── ...

Backup

Invoice data is included in pontius sync export. Your company presets, logos, and invoice history all sync to new devices.

$ pontius sync export ~/backup.sync
Contains: 2 companies, 15 invoices, 2 logos

Tips

  • Multiple companies: Create separate presets for different businesses or brands, each with their own logo and numbering.
  • Invoice numbers: Each company has its own numbering sequence with a custom prefix (e.g., ACME-1001, CON-2001).
  • Multiple currencies: Override the company default with--currency for international clients.
  • AI workflow: Your AI assistant can generate and send invoices with a single command using the company preset.