How to generate an invoice from the command line?

Wouldn’t it be awesome if you write a command with some arguments and it generates an invoice for you instantly? Here’s how to do it!

Generate invoice from command line

Introducing Invoice CLI

Generate invoices from the command line using this CLI tool


Install with Go:

go install

Or download a binary from the releases.

Command Line Interface

invoice generate --from "Company A, Inc." --to "Company B, Inc." \ --item "Laptop" --quantity 2 --rate 500 \ --tax 0.1 --discount 0.15 \ --note "Paid via online transfer"
generate invoice from command line

The PDF would be generated in the same folder in which you are running the command. You can customize the output location with --output.

Sample output

Here’s an example of the generated PDF after running the above command

Generated PDF sample


Save repeated information with environment variables:

export INVOICE_LOGO=/path/to/image.png
export INVOICE_FROM="Dream, Inc."
export INVOICE_TO="Imagine, Inc."
export INVOICE_TAX=0.13
export INVOICE_RATE=25

Generate new invoice:

invoice generate \
    --item "Yellow Rubber Duck" --quantity 5 \
    --item "Special Edition Plaid Rubber Duck" --quantity 1 \
    --note "For debugging purposes." \
    --output duck-invoice.pdf

Configuration File

Or, save repeated information with JSON / YAML:

    "logo": "/path/to/image.png",
    "from": "Dream, Inc.",
    "to": "Imagine, Inc.",
    "tax": 0.13,
    "items": ["Yellow Rubber Duck", "Special Edition Plaid Rubber Duck"],
    "quantities": [5, 1],
    "rates": [25, 25],

Generate a new invoice by importing the configuration file:

invoice generate --import path/to/data.json \
    --output duck-invoice.pdf

Custom Templates

Unfortunately, The CLI doesn’t allow custom invoice templates. If you would like a custom invoice template for your business or company, please reach out to the author via:

Also, Read Machine Learning for beginners, a Free curriculum from Microsoft

0 0 votes
Article Rating
Notify of

Inline Feedbacks
View all comments