Resources · n8n integration

Invoice Ninja n8n integrationAutomate Invoice Ninja with n8n.

Every invoice, payment and expense sitting in Invoice Ninja can become a step in a workflow. The Invoice Ninja n8n integration ships a node with 31 operations across 7 objects, plus a trigger that listens to 5 creation events over a webhook. Made for finance and ops teams who already run billing there.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the Invoice Ninja n8n integration actually do?

Two building blocks, one credential. The Invoice Ninja node reads and writes the objects you bill with, clients, invoices, payments, expenses, bank transactions, quotes and tasks, for 31 operations in all. The Invoice Ninja Trigger sits at the other end and starts a workflow the moment a record is created in the app. A credential is the stored login n8n keeps for you, and it is set up once for both nodes.

Start with the money coming in. The trigger fires on create_payment, the workflow pulls the record back with Get a payment and its Include option on Client, and a message lands in Slack before anyone thinks to refresh a dashboard. Same shape on create_invoice, with Email an invoice chained behind it so the document leaves without a manual click.

Second pattern, the Monday receivables list. Get many invoices with Client Status on Unpaid and Return All switched on walks every page of the API instead of stopping at the first batch. The rows go to Google Sheets, the summary goes out through Gmail, and nobody rebuilds the same filter every week.

Third pattern, bank reconciliation. Get many bank transactions lists what the feed brought in, then Match payment to a bank transaction ties a line to a payment that already exists in Invoice Ninja. Teams collecting through Stripe tend to chain those two in a single run.

Expenses follow the same logic. Create an expense accepts an Amount, a Vendor Name or ID and a Category Name or ID, so a receipt captured anywhere ends up booked against the right vendor, with Billable ticked when it is meant to land back on a client invoice.

When an endpoint of the Invoice Ninja API is not part of the node, the HTTP Request node calls it directly and reuses the same credential through its predefined authentication. That fills the gap without a second set of keys and without leaving the workflow.

Two things worth knowing before you build. The credential needs an Invoice Ninja account on a plan that supports API integrations, which means Pro or Enterprise. And every operation carries an API Version option, v4 or v5, that has to match the instance behind the URL. If the platform choice itself is still open, the n8n review goes through it in detail.

Connect

How do you connect Invoice Ninja to n8n?

  1. 01

    Generate an API token

    Open Invoice Ninja and head to Settings > Account Management > API Tokens, then generate a token. API integrations run on the Pro and Enterprise plans, so check which plan the account sits on before anything else. Copy the token as soon as it appears. It is the single value the credential uses to prove who is calling the API.

  2. 02

    Create the credential in n8n

    In n8n, open the Credentials menu and add an Invoice Ninja API credential. Three fields matter. URL takes one of the default URLs when Invoice Ninja hosts the installation, or the address of your own instance when you self-host. API Token takes the value you just copied. Secret is optional and only available for v5 API users.

  3. 03

    Pick a resource and run it

    Drop the Invoice Ninja node on the canvas and select the credential from the dropdown. Choose a resource, then an operation, say Client and Get many clients. Set API Version to the version your instance runs, v4 or v5. Execute the step once on its own: real records coming back mean the token, the URL and the version all agree.

Triggers

What starts an Invoice Ninja workflow?

Invoice Ninja Trigger is the node that starts a workflow when something happens in Invoice Ninja. It listens to 5 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Invoice Ninja account.

What you see in n8n

Every event, by family

One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.

create_client.*1
  • create_client.
    • create_client
create_invoice.*1
  • create_invoice.
    • create_invoice
create_payment.*1
  • create_payment.
    • create_payment
create_quote.*1
  • create_quote.
    • create_quote
create_vendor.*1
  • create_vendor.
    • create_vendor

Configuration notes

01Set up the Invoice Ninja TriggerThe trigger node is version 2 and runs over a webhook, meaning a URL that n8n registers with Invoice Ninja when the workflow is activated. Each event then reaches the workflow within seconds, with no polling loop in between.

The trigger node is version 2 and runs over a webhook, meaning a URL that n8n registers with Invoice Ninja when the workflow is activated. Each event then reaches the workflow within seconds, with no polling loop in between.

Key parameters

  • Event: the record creation the workflow listens to, chosen among the 5 values the node offers.
  • API Version: v4 or v5, set to the same version as the credential's instance.
When to use it
any time the workflow should start from the billing app rather than from a schedule. A quote accepted at midnight, an expense entered by a colleague on a Sunday, a payment recorded while the team is offline: the run happens anyway. Activate the workflow first, then create a test record in Invoice Ninja to see the payload come through.
02Invoice CreatedSet Event to Invoice Created and the workflow starts each time a new invoice appears in Invoice Ninja, whether it was typed by hand, generated from a recurring setup or pushed by another automation.

Set Event to Invoice Created and the workflow starts each time a new invoice appears in Invoice Ninja, whether it was typed by hand, generated from a recurring setup or pushed by another automation.

Key parameters

  • Event: create_invoice, the only value needed for this branch.
Use cases
chain Email an invoice straight after the trigger so a fresh document goes out on its own. Or read it back with Get an invoice and its Include option on Client, then file a copy wherever accounting keeps its archive. The billing side stays the source of truth, the workflow only carries the consequences.
When to use it
pick this event when the document itself is the signal you care about, rather than the money behind it. A recurring invoice issued overnight reaches the workflow the same way a hand typed one does, so a single branch handles both without anyone checking a list in the morning.
03Payment CreatedPayment Created reacts to a payment recorded in Invoice Ninja. The value is create_payment, and it is the branch that closes the loop on an invoice sent days earlier.

Payment Created reacts to a payment recorded in Invoice Ninja. The value is create_payment, and it is the branch that closes the loop on an invoice sent days earlier.

Key parameters

  • Event: create_payment, fired on the creation of the payment record itself.
  • API Version: keep it aligned with the node that runs after the trigger.
Use cases
post a short line to the team channel so sales stops chasing a client who already paid. Or follow with Get a payment and Include on Client to get the account details in the same run, then write the amount into the cash log the finance lead actually reads.
When to use it
pick this event whenever a downstream system has to know about cash before month end, and keep the branch short. One lookup, one write, one message is usually enough.
04Quote CreatedQuote Created starts a workflow the moment a new quote is saved in Invoice Ninja, whatever the deal behind it looks like.

Quote Created starts a workflow the moment a new quote is saved in Invoice Ninja, whatever the deal behind it looks like.

Key parameters

  • Event: create_quote, the only value this branch listens to.
Use cases
read the record back with Get a quote, add client to Include when the account matters, and post the summary to the channel where the sales team tracks new deals. A shorter path chains Email a quote right after the trigger, once an approval step has cleared the numbers.
When to use it
pick this event when a fresh quote is what the rest of the workflow reacts to, not a status change on an existing one. Pairing it with an approval gate keeps a draft from reaching the client before someone has actually checked it.
05Client Created and Vendor CreatedThese two watch the directory rather than the documents. Client Created fires on create_client, Vendor Created on create_vendor, each on a separate trigger node when a workflow needs both.

These two watch the directory rather than the documents. Client Created fires on create_client, Vendor Created on create_vendor, each on a separate trigger node when a workflow needs both.

Key parameters

  • Event: create_client or create_vendor, depending on which side of the ledger the record belongs to.
Use cases
on a new client, run Get a client with Include on Invoices to see straight away whether anything is already open against the account. On a new vendor, prepare the ground for Create an expense, whose Vendor Name or ID field expects that vendor to exist first. Both keep the CRM and the billing app pointing at the same list of names.
When to use it
reach for these two when duplicate records are the real problem. A directory that drifts costs more time later than the five minutes spent wiring the branch today.
Actions

What can the Invoice Ninja node do?

The Invoice Ninja node exposes 31 operations across 7 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceCreateGetGet ManyDeleteEmailMatch Payment
Bank Transaction✓✓✓✓✓
Client✓✓✓✓
Expense✓✓✓✓
Invoice✓✓✓✓✓
Payment✓✓✓✓
Quote✓✓✓✓✓
Task✓✓✓✓

Bank Transaction

5 operations
01

Create a bank transaction

bank_transaction.create

What you see in n8n

Notes & use cases

This writes a line into the bank transactions of Invoice Ninja, useful when the movement comes from somewhere other than a bank connector. Nothing is required, everything sits in Additional Fields.

Key parameters

  • Amount: the value of the movement, often pulled from the step before with {{ $json.field }}.
  • Base Type: CREDIT for a deposit, DEBIT for a withdrawal.
  • Bank Integration Name or ID: the account the line belongs to, picked from the list or given as an ID through an expression.
  • Date and Description: when it happened, and the wording that appears on the statement.
Use cases
replay a statement exported as rows into Invoice Ninja, one line per row, before anyone starts reconciling.
02

Delete a bank transaction

bank_transaction.delete

What you see in n8n

Notes & use cases

Removing a line takes a single value. The operation deletes the bank transaction whose identifier you hand it, and nothing else.

Key parameters

  • Bank Transaction ID: required, the identifier of the line to drop, usually carried over from a listing step as {{ $json.field }}.
  • API Version: v4 or v5, matching the instance the credential points at.
Use cases
an import that ran twice leaves the same movement in the list twice. Put this operation behind the step that spots the duplicate, so the feed stays clean without anyone opening the app.
03

Get a bank transaction

bank_transaction.get

What you see in n8n

Notes & use cases

One identifier in, one bank transaction out. The operation retrieves the data of a single line so the rest of the workflow can decide what to do with it.

Key parameters

  • Bank Transaction ID: required, the identifier of the line to read.
  • API Version: v4 or v5, kept consistent across every Invoice Ninja node of the workflow.
Use cases
before matching a line to a payment, read it back and let an IF node check the amount and the description. A movement that looks wrong stops there instead of landing on a customer record.
04

Get many bank transactions

bank_transaction.getAll

What you see in n8n

Notes & use cases

Listing the bank feed comes with the usual pair of switches, and they decide how much of it the workflow actually sees.

Key parameters

  • Return All: on, n8n chains the API pages and brings back every bank transaction; off, it stops at Limit.
  • Limit: the maximum number of transactions returned when Return All stays off, handy while you are still testing.
Use cases
a monthly run that pulls the whole feed, groups the lines by account and drops the result into a sheet the accountant opens at closing time.
05

Match payment to a bank transaction

bank_transaction.matchPayment

What you see in n8n

Notes & use cases

Reconciliation lives in this operation: it links a bank transaction to a payment, so the movement stops being an orphan line in the feed.

Key parameters

  • Bank Transaction ID: required, the line to match.
  • Payment Name or ID: the payment to tie it to, chosen from the list or supplied as an ID through an expression.
Use cases
after Get many bank transactions, a Code step pairs each incoming movement with the payment it corresponds to, then this operation applies the pairing one item at a time.

Client

4 operations
06

Create a client

client.create

What you see in n8n

Notes & use cases

A new client record gets built from optional blocks rather than a fixed form, which is why nothing here is mandatory.

Key parameters

  • Contacts: a repeatable block where First Name, Last Name, Email and Phone describe the people to bill.
  • Billing Address and Shipping Address: the two address blocks, with Street Address, City, Postal Code and Country Code Name or ID.
  • Additional Fields: Client Name, VAT Number, Website, Private Notes and the rest of the profile.
Use cases
a signed deal in the CRM creates the account in Invoice Ninja, contact included, so the first invoice does not wait on a manual entry.
07

Delete a client

client.delete

What you see in n8n

Notes & use cases

The account disappears from Invoice Ninja once this runs, so it belongs behind a step that is sure of its target.

Key parameters

  • Client ID: required, the identifier of the account to remove.
  • API Version: v4 or v5, the same value used everywhere else in the workflow.
Use cases
the test accounts everyone creates while wiring the credential. A cleanup workflow lists them, filters on a naming convention, and this operation removes them in one pass instead of a dozen clicks.
08

Get a client

client.get

What you see in n8n

Notes & use cases

Reading one account gives the workflow the details the trigger payload does not carry on its own, and it can bring the billing history along.

Key parameters

  • Client ID: required, the identifier of the account to read.
  • Include: set to Invoices, the response also carries the client's invoices, which saves a second call.
Use cases
before a dunning email goes out, pull the account with Include on Invoices and let the workflow check what is still open. A client with nothing outstanding drops out of the sequence.
09

Get many clients

client.getAll

What you see in n8n

Notes & use cases

The client directory comes back as a list you can narrow before it ever reaches the next node.

Key parameters

  • Return All: on, every client comes through page after page; off, the run stops at Limit.
  • Status: Active, Archived or Deleted, to keep a sync on live accounts only.
  • Created At and Updated At: date filters for an incremental run rather than a full reload.
Use cases
a nightly sync that reads clients updated since yesterday and pushes the changes to the CRM, instead of walking the whole book every time.

Expense

4 operations
10

Create an expense

expense.create

What you see in n8n

Notes & use cases

Booking a cost takes one call, and the 17 fields of Additional Fields decide how much detail lands in the books.

Key parameters

  • Amount: what was spent.
  • Vendor Name or ID and Category Name or ID: who was paid and under which heading, from the list or as an ID through an expression.
  • Billable: on when the cost is meant to be passed back to a client.
  • Expense Date, Payment Type and Transaction Reference: when, how, and under which reference it was settled.
Use cases
a receipt parsed from an inbox becomes an expense with its vendor and category already set.
11

Delete an expense

expense.delete

What you see in n8n

Notes & use cases

An expense that should never have been booked leaves the ledger here, one record per execution.

Key parameters

  • Expense ID: required, the identifier of the cost to remove.
  • API Version: v4 or v5, aligned with the instance behind the credential.
Use cases
a receipt inbox that forwards the same email twice ends up creating the cost twice. A deduplication branch keeps the first record and sends the second one through this operation, so the month closes on the right total.
12

Get an expense

expense.get

What you see in n8n

Notes & use cases

Pulling a single cost back gives the workflow something to quote, attach or compare later on.

Key parameters

  • Expense ID: required, the identifier of the expense to read, commonly supplied as {{ $json.field }} from the step before.
  • API Version: v4 or v5, matching the rest of the workflow.
Use cases
a monthly report builder loops over a list of identifiers, reads each expense one by one, and assembles the detail lines behind the totals that go to management.
13

Get many expenses

expense.getAll

What you see in n8n

Notes & use cases

Costs come back as a list, and the two switches below decide whether that list is complete or just a sample.

Key parameters

  • Return All: on, n8n follows the API pages until every expense is in; off, it stops at Limit.
  • Limit: the maximum number of expenses to bring back, which is the sane setting while a workflow is being built.
Use cases
an end-of-month run that reads all expenses, sums them per category in a Code node, and sends the breakdown before the accountant asks for it.

Invoice

5 operations
14

Create an invoice

invoice.create

What you see in n8n

Notes & use cases

Here is where a document actually comes into existence, with its lines and its 23 optional fields.

Key parameters

  • Invoice Items: the repeatable block of lines, each with Description, Cost, Hours and Service.
  • Client Name or ID: the account being billed, from the list or as an ID through an expression.
  • Invoice Status: 1 for Draft, 2 for Sent.
  • Due Date, Tax Name 1 and Tax Rate 1: the terms and the tax line carried on the document.
  • Email Invoice: on, the document is emailed as part of the same call.
Use cases
turn a won deal into a draft invoice a human reviews before it leaves.
15

Delete an invoice

invoice.delete

What you see in n8n

Notes & use cases

One identifier, one invoice gone from Invoice Ninja. Straightforward, and worth guarding with a condition upstream.

Key parameters

  • Invoice ID: required, the identifier of the document to remove.
  • API Version: v4 or v5, consistent with the credential's instance.
Use cases
an automation that misfired and created a run of draft invoices against the wrong account. Filter the list on Created At through Get many invoices, then send only those identifiers here.
16

Email an invoice

invoice.email

What you see in n8n

Notes & use cases

Sending is its own operation, separate from creation, which means a document can be reviewed first and mailed later by another workflow.

Key parameters

  • Invoice ID: required, the identifier of the invoice to send.
  • API Version: v4 or v5, matching the instance.
Use cases
a Monday workflow reads the invoices still sitting as drafts, waits for an approval in a chat tool, then walks the approved identifiers through this operation. Nothing leaves without someone saying yes, and nobody opens the app to click send.
17

Get an invoice

invoice.get

What you see in n8n

Notes & use cases

Reading one document is what turns a trigger payload into something the next steps can use, especially when the client details matter.

Key parameters

  • Invoice ID: required, the identifier of the invoice to read.
  • Include: set to Client, the response carries the client alongside the invoice.
Use cases
right after the trigger fires on create_invoice, read the document with Include on Client so the notification names the account instead of showing a bare identifier.
18

Get many invoices

invoice.getAll

What you see in n8n

Notes & use cases

The receivables workhorse. Its 7 options let the list arrive already filtered instead of sorted after the fact.

Key parameters

  • Client Status: All, Paid, Unpaid or Overdue.
  • Return All: switched on, every matching invoice comes back page after page, one API call chained to the next until nothing is left to fetch; switched off, the run stops as soon as it hits Limit.
  • Invoice Number and Status: to target one document, or to keep Archived and Deleted records out.
Use cases
an Overdue run every Monday groups invoices by client and prepares one reminder per account rather than one per document, so nobody sends the same customer three separate emails.

Payment

4 operations
19

Create a payment

payment.create

What you see in n8n

Notes & use cases

Recording cash against a document is what moves an invoice out of the chasing list, and this operation does it in one step.

Key parameters

  • Invoice Name or ID: the document being paid, from the list or as an ID through an expression.
  • Amount: the sum received, which can differ from the invoice total on a partial settlement.
  • Payment Type: Bank Transfer, Cash, SEPA and the rest of the list.
  • Transfer Reference: the bank reference, so the line can be found again later.
Use cases
a payout notification from a gateway becomes a payment on the right invoice.
20

Delete a payment

payment.delete

What you see in n8n

Notes & use cases

Cash entered against the wrong invoice is corrected here, by removing the payment record itself.

Key parameters

  • Payment ID: required, the identifier of the payment to remove.
  • API Version: v4 or v5, the same version the rest of the workflow uses.
Use cases
an import that credited an invoice twice leaves one invoice short and another over. Remove the wrong record with this operation, then rebuild the correct one with Create a payment in the same run.
21

Get a payment

payment.get

What you see in n8n

Notes & use cases

A single payment comes back with its detail, and optionally with the account it belongs to.

Key parameters

  • Payment ID: required, the identifier of the payment to read.
  • Include: set to Client, the client travels back with the payment in the same response.
Use cases
a thank-you message that names the client and the amount, built straight after the create_payment event without a second lookup on the account.
22

Get many payments

payment.getAll

What you see in n8n

Notes & use cases

Cash-in history arrives as a list, filtered on dates or on the state of the records.

Key parameters

  • Return All: on, n8n pages through every payment rather than stopping at the first batch that comes back; off, Limit decides where it stops.
  • Created At and Updated At: the pair of date filters that turns a full reload into a short, incremental daily or weekly run instead.
  • Include: set to Client, each payment carries its account, which saves a lookup per row.
Use cases
a daily cash report listing yesterday's payments with the client on each line, sent to the finance lead before the morning stand-up.

Quote

5 operations
23

Create a quote

quote.create

What you see in n8n

Notes & use cases

A quote lands in Invoice Ninja with its line items already filled in, and the created record comes back into the workflow.

Key parameters

  • Invoice Items: the repeating collection that holds the quote lines, one entry per Add Invoice Item.
  • Client Name or ID: choose the client from the list, or pass an identifier through an expression, a snippet like {{ $json.field }} that reads a value from the incoming item.
  • Quote Status: two values are offered, 1 (Draft) and 2 (Sent).
  • Due Date: a date-time value, set in Additional Fields.
Use cases
a sales form fills the line items and creates the quote as a draft, so somebody reads it before it reaches the client.
24

Delete a quote

quote.delete

What you see in n8n

Notes & use cases

Removing a quote from Invoice Ninja takes one identifier and nothing else. The call hits a single record, so most workflows put a check step in front of it.

Key parameters

  • Quote ID: the required identifier of the quote to remove. A required field left empty stops the node before it runs, so feed it from an expression such as {{ $json.field }} rather than typing it by hand.
  • API Version: pick v4 or v5 to match the Invoice Ninja instance behind the credential.
Use cases
quotes generated during a test run get cleared out in one pass, instead of being archived by hand in the Invoice Ninja interface.
25

Email a quote

quote.email

What you see in n8n

Notes & use cases

Sending a quote out is its own operation: the workflow points at one quote and Invoice Ninja sends it by email. No template step and no mail node sit in between.

Key parameters

  • Quote ID: the required identifier of the quote to send, typically carried over from the node that created or fetched it, for example {{ $json.field }}.
  • API Version: the same v4 or v5 choice as the rest of the node.
Use cases
a quote created at the start of the workflow goes straight to the client once an approval step returns a green light.
26

Get a quote

quote.get

What you see in n8n

Notes & use cases

One quote, read by its identifier, with the data Invoice Ninja returns for that record. Useful whenever a later branch needs the quote itself and not just its number.

Key parameters

  • Quote ID: required, the identifier of the quote to read.
  • Include: the Options collection offers one value, client.
Use cases
a Quote Created event arrives, the workflow reads the quote back with client included, and posts the details to the channel where the sales team follows new deals.
27

Get many quotes

quote.getAll

What you see in n8n

Notes & use cases

This one reads several quotes in a single node, which is what reporting and export workflows run on.

Key parameters

  • Return All: switched on, n8n walks through the API pages and brings back every quote; switched off, Limit caps how many items come out.
  • Status: three values, active, archived and deleted.
  • Quote Number: a text value in the Options collection, for narrowing the read down.
  • Created At and Updated At: date-time values in the same collection.
Use cases
a weekly run pulls the active quotes with Return All on and writes them to a sheet the commercial team already reads.

Task

4 operations
28

Create a task

task.create

What you see in n8n

Notes & use cases

Billable time gets a home here: the operation writes a task into Invoice Ninja, with or without the hours already logged against it.

Key parameters

  • Time Logs: the repeating collection for the logged periods, one entry per Add Time Log.
  • Client Name or ID and Project Name or ID: both come from a dropdown, and both accept an identifier through an expression when the value arrives from an earlier node.
  • Duration (Hours): a number, set in Additional Fields.
Use cases
a finished ticket in the support tool creates the matching task, with the project filled in, so the hours are ready when the invoice is prepared.
29

Delete a task

task.delete

What you see in n8n

Notes & use cases

Tasks pile up fast when a workflow creates them automatically. This operation removes one of them, identified by its own ID.

Key parameters

  • Task ID: required. It is the Invoice Ninja identifier of the task, not its description, and an empty value stops the node before the call goes out.
  • API Version: v4 or v5, matching the instance the credential points at.
Use cases
a duplicate task detected by a comparison step gets removed right away, so the hours are counted once when the client is billed.
30

Get a task

task.get

What you see in n8n

Notes & use cases

Reading a single task gives the workflow what Invoice Ninja holds on it, which is the usual first step before a branch decides what to do next.

Key parameters

  • Task ID: required, the identifier of the task to read, often passed as {{ $json.field }} from the node before it.
  • Include: one value here too, client.
Use cases
before a task is turned into a billing line, the workflow reads it back with client included and checks the values against what the project manager entered.
31

Get many tasks

task.getAll

What you see in n8n

Notes & use cases

Bulk reading of tasks, for the workflows that count hours rather than handle them one by one.

Key parameters

  • Return All: on, n8n follows the API pages until every task has been read; off, Limit sets the maximum number of tasks returned.
  • Include: the Options collection offers client.
  • API Version: v4 or v5.
Use cases
at the end of the month, the workflow reads every task with Return All on, groups the hours by client, and hands the totals to the node that prepares the billing run.
Need help

Need help automating Invoice Ninja with n8n?

A person reads every message.

FAQ

Invoice Ninja and n8n, the questions that come up

01Is the Invoice Ninja n8n integration free?
Yes on the n8n side. The Invoice Ninja node and the Invoice Ninja Trigger ship with n8n, so there is nothing to install and nothing extra to pay, whether the workflows run on n8n Cloud or on a self-hosted instance under the Community Edition and its Sustainable Use licence. A workflow behaves the same way in both places. The Invoice Ninja side is a different question: API integrations are available on the Pro and Enterprise plans, so an account on a lower plan will not be able to issue the token the credential needs. Check the plan first, then build.
02What credentials do you need to connect Invoice Ninja to n8n?
One credential, based on an API key, and it covers both the node and the trigger. It holds three things. A URL, which is one of the default addresses when Invoice Ninja hosts the installation, or the address of your own server when you self-host. An API Token, generated in Settings, then Account Management, then API Tokens. And an optional Secret, a field available only for v5 API users. Once saved in the Credentials menu, the same credential appears in the dropdown of every Invoice Ninja node you add afterwards, so there is no second setup to do per workflow.
03What are the limits of the Invoice Ninja node in n8n?
The node exposes 31 operations spread over 7 objects, which covers the everyday billing cycle. Two limits are worth planning for. Pagination first: on any listing operation, Return All has to be switched on for n8n to walk every page of the API, otherwise the run stops at the number set in Limit. Second, when an endpoint of the Invoice Ninja API is not among those 31 operations, the HTTP Request node calls it directly and reuses the same credential through its predefined authentication, so no second token is needed. Last point, every operation carries an API Version option, v4 or v5, that must match the instance.
04Does the Invoice Ninja Trigger react in real time?
Yes. The trigger works over a webhook, which is a URL that n8n registers with Invoice Ninja when the workflow is activated. Invoice Ninja then calls that URL on each event, so the run starts within seconds and there is no polling, meaning no repeated checks on a timer. Five events are available, one per record creation: Client Created, Invoice Created, Payment Created, Quote Created and Vendor Created. The Event parameter names the one a given trigger node listens to. The trigger node is version 2 and carries the same API Version option as the main node, so keep both on the same value.
05n8n or Make for Invoice Ninja?
It depends on where the workflows should live and how you want to pay for them. Make is a hosted automation platform with no self-hosting option, billed per operation, which suits a team that wants nothing to run. n8n can be self-hosted with Docker or npm, or used on n8n Cloud, and the workflow is identical either way. For billing data, that hosting choice usually decides it: an invoice ledger that has to stay on your own server points to a self-hosted n8n. The visual logic differs too, so the honest answer is to build the same short workflow on both and keep the one your team reads faster.