Skip to main content
An invoice is generated for a client from its unbilled time entries, services, or both, then optionally emailed to the client’s recipients. For fields and response details, see the API reference.
Sample responses on this page show the JSON envelope (--json). Pretty output is the default on a terminal and its columns adapt to width. See Output formats.

invoices create

Generate an invoice. Scalar fields are available as flags; line items, taxes, and email details are passed as a JSON file with --data. Flag values override the file’s top-level keys, so you can keep a template file and vary the number and dates per run.
Dates use MM/DD/YYYY, unlike time entries, which use YYYY-MM-DD.

The --data file

The file holds the full invoice payload. An invoice needs either invoice_time_entries or invoice_services, plus a total. Billing unbilled time entries:
invoice.json
Billing a flat service instead:
invoice.json
Get time_entry_id values from time-entries list.

Emailing the invoice

Pass --send-email and put the email details in the data file. recipient_ids are the client’s recipients; find them with clients show.
invoice.json

Taxes

Add a tax_details array to the data file:
invoice.json

Output