Invoice Ninja automation · runs weekly
Create Invoice Ninja invoices from a billing list
The hours differ for every client each month, so a recurring invoice does not fit, and you retype the same list into one invoice form per client.
Cotlet does it in your own Invoice Ninja account with list_clients, list_products, create_invoice and send_invoice, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Invoice Ninja do this on its own?
Invoice Ninja bills fixed lines on a schedule with Recurring Invoices, and invoices can bill tasks from tracked time and expenses (checked 14 Oct 2026). Hours or amounts that come from a list in an email or spreadsheet are typed into one invoice per client. The REST API can create invoices, on Pro and above, and Invoice Ninja has no official MCP server.
How you do it in Invoice Ninja today
- Open Invoices and create a new invoice, then pick the client. The client drives the currency, tax rules, language, payment terms and email templates.
- Add one line per item with Product, Description, Unit Cost and Quantity. Quantity takes up to six decimals, so 12.5 hours works.
- Set the Invoice Date and the Due Date, then save. The invoice stays a draft: the client cannot see it and the client balance does not change.
- Choose More Actions > Email Invoice to send it to the contacts checked to receive it. Contacts with Add to Invoices enabled on the client are pre-selected.
- Repeat for every client on the list. Invoice Ninja bills the same lines every cycle with a Recurring Invoice, but nothing fills in hours that change each month.
How to create Invoice Ninja invoices from a billing list
Here is the billing list: client, hours and rate. Create one draft invoice per client in Invoice Ninja, show me the totals, and send them after I say OK. Stop on any client name that matches nothing or two clients. - 01
Match every name to a client
Your agent looks each name up with list_clients. A name that matches no client or two clients stops the run for that line and is reported, so no duplicate client is created and no invoice goes to the wrong one.
- 02
Take prices from the right place
When a line names a product, list_products supplies its description and price, as the invoice form does. The rate in your list wins over the product price, and the agent says which one it used.
- 03
Create the drafts
create_invoice builds one draft per client with the invoice date and a due date from your terms, and returns the invoice number. Drafts reach nobody, so this step needs no OK.
- 04
Check every total
The agent adds up quantity times unit cost per line and compares the sum to the amount Invoice Ninja returned and to the total on your list. Any difference is shown before anything is sent.
- 05
Send after your OK
send_invoice emails each invoice and moves it from Draft to Sent, which raises the client balance and starts the reminder schedule. Each send waits for your OK by default.
What you get back
Billing list: 5 clients
Created 4 drafts, total 4,635.00 USD, none sent yet:
- INV-0043 Northwind Studio, 1,050.00 (10 h design sprint at 90.00, hosting setup 150.00)
- INV-0044 Brightwave Ltd, 1,700.00 (20 h at 85.00)
- INV-0045 Kestrel Labs, 1,125.00 (12.5 h at 90.00)
- INV-0046 Orchard & Finch, 760.00 (8 h at 95.00)
Needs you: "Fenwick" matches Fenwick Ltd and Fenwick Group Other ways to ask
- Bill the billable tasks of last month for each client on this list, one invoice per client, and show me the totals before sending.
- Create the drafts and email me only the ones above 1,000.00; send the rest without asking.
- Add a 20 percent deposit as the Partial/Deposit amount on every invoice over 2,000.00.
- Create the invoices with a PO number from the third column of my list.
What Invoice Ninja allows, and what to know first
- Invoice Ninja keeps a draft invisible to the client and out of the client balance until it is emailed, marked as sent or marked as paid.
- Once an invoice is emailed or marked as sent it cannot go back to draft, so a mistake is fixed by cloning the invoice and cancelling or deleting the original.
- Invoice Ninja numbers invoices from the pattern set under Settings > Generated Numbers, so the agent reads the number back instead of choosing one.
- The client record sets the invoice currency, so a client billed in another currency gets the totals in that currency.
- The Free plan allows up to 5 clients with unlimited invoices, and Ninja Pro and above remove the client limit.
send_invoice asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.
Sources: Invoice Ninja Docs: Invoices · Invoice Ninja Docs: Recurring Invoices · Invoice Ninja Docs: Clients · Invoice Ninja: Pricing and plan comparison
Call create_invoice from a script
curl -X POST https://cotlet.dev/api/v1/invoice-ninja/clients/Wp3xq8Rnd5/invoices \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"product":"Design sprint","description":"Design sprint, 10 hours","unit_cost":90,"quantity":10},{"product":"Hosting setup","description":"Hosting setup","unit_cost":150,"quantity":1}],"invoice_date":"2026-10-14","due_date":"2026-11-13"}' {
"invoice_number": "INV-0043",
"client": "Northwind Studio",
"status": "draft",
"invoice_date": "2026-10-14",
"due_date": "2026-11-13",
"currency": "USD",
"items": [
{
"product": "Design sprint",
"description": "Design sprint, 10 hours",
"unit_cost": 90,
"quantity": 10,
"line_total": 900
},
{
"product": "Hosting setup",
"description": "Hosting setup",
"unit_cost": 150,
"quantity": 1,
"line_total": 150
}
],
"amount": 1050,
"balance": 1050
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is invoice_ninja_write → create_invoice. Example data.
Schedule it in n8n, Make, Zapier or cronInvoice Ninja tools this automation uses
| Tool | Parameters |
|---|---|
| list_clients | company, search, limit, cursor |
| list_products | company, search, limit, cursor |
| create_invoice | company, client_id, items, invoice_date, due_date, po_number, public_notes |
| send_invoice | company, invoice_number, template |
Frequently asked questions
Is it safe to connect Invoice Ninja to Cotlet?
Yes. You sign in to Invoice Ninja yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Invoice Ninja once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.
Give your agent access to Invoice Ninja.
Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Invoice Ninja.