Description
@invoicing-builder/n8n-nodes-invoicing-builder


An n8n community node for InvoicingBuilder. Create invoices from workflow data or Google Sheets, manage clients, update payment status, send payment reminders, download rendered invoices, and pull financial reports, all from your n8n workflows.
n8n is a fair-code licensed workflow automation platform.
> Before you automate: several operations are hard to undo (deleting records, emailing clients, changing payment status). Read Operations with side effects and test against non-production data first.
Table of contents
- Installation
- Quick start
- Credentials
- Compatibility
- Operations
- Operations with side effects
- Limits
- Using the node as an AI Agent tool
- Example workflows
- Troubleshooting
- Resources
- License
Installation
Follow the n8n community nodes installation guide.
Self-hosted n8n (UI): open Settings → Community Nodes → Install, enter @invoicing-builder/n8n-nodes-invoicing-builder, accept the risk notice, and install.
Self-hosted n8n (manual): install into your n8n custom nodes directory, then restart n8n.
npm install @invoicing-builder/n8n-nodes-invoicing-builder
Docker and queue-mode setups differ. Make sure the package is installed where every n8n process that runs workflows can load it. See the manual installation guide.
n8n Cloud: community nodes are available on Cloud only after n8n has verified them. If this node does not appear in the nodes panel, verified community nodes may be disabled by your instance owner, or this package may not be verified yet.
Community nodes run with the same access as n8n itself. Install only packages whose source you trust.
Quick start
1. Create an InvoicingBuilder API credential (see Credentials).
2. Add the InvoicingBuilder node to a workflow and select the credential.
3. Run a read-only operation first, such as Invoice → Get an Invoice, and confirm the output.
4. Only then enable operations that send email, change payment status, or delete data.
Credentials
Create an InvoicingBuilder API credential with:
| Field | Required | Description |
| ——- | ——– | ———————————————————————————————————————– |
| API Key | Yes | Generate it under API Keys in your InvoicingBuilder account. Keys start with ib_. |
Credential safety:
Compatibility
| Item | Value |
| ——————- | —— |
| Minimum n8n version | 1.86.4 |
| Tested n8n versions | 1.86.4 |
| Node.js | 24.x |
Operations
The InvoicingBuilder node has three resources.
| Resource | Operations |
| ———– | ———————————————————— |
| Invoice | Create, Download, Get, Mark as Paid, Delete |
| Client | Create, Update, Get, Get Many, Delete, Send Payment Reminder |
| Report | Summary, Analyse Trends |
Invoice
#### Create
Common parameters:
| Parameter | Description |
| ———– | ————————————————- |
| Template | Template from your account. |
| Data Source | Direct Input / Workflow Data or Google Sheet. |
| Format | PDF (default) or PNG. |
| Options | Send to Client (emails the rendered invoice to the client. See side effects). |
Data Source: Direct Input / Workflow Data
Build the invoice from data in your workflow.
| Parameter | Description |
| —————– | ——————————————————————– |
| Client | Select a client from your client list. |
| Line Items | See below. |
| Additional Fields | Optional fields including Invoice Number, PO Number, Invoice Date, Due Date, and more (see below). |
Line item fields:
| Field | Description |
| ———— | ———————————————– |
| Description | Required. |
| Quantity | Default 1. |
| Rate / Price | Price per unit. |
| Tax (%) | Optional percentage, for example 10 or 10%. |
If you add no line items, incoming items that contain a lineItems or items array are mapped automatically.
Additional fields: Invoice Number, PO Number, Invoice Date, Due Date, Amount Paid, Notes, Terms & Conditions, Payment Terms (for example Net 30), Logo (URL or Base64), Signature (URL or Base64), and Custom Fields (JSON) for template-specific values.
Data Source: Google Sheet
Reads rows from a worksheet, groups rows into invoices, and renders them.
| Parameter | Description |
| —————— | ———————————————- |
| Google Spreadsheet | Google Spreadsheet URL or Spreadsheet ID. |
| Worksheet | Worksheet name. Defaults to Sheet1. |
> Note – Google Sheet Permissions:
> To allow the node to read rows directly without requiring separate Google OAuth credentials, the spreadsheet must be shared via a public link:
>
> 1. Open the spreadsheet in Google Sheets and click Share (top-right corner).
> 2. Under General access, change the setting to Anyone with the link and set the role to Viewer.
> 3. Click Copy link and paste it into the Google Spreadsheet field.
>
> Security consideration: Anyone with the link will be able to read the spreadsheet contents. Please ensure this complies with your organization’s data privacy policies.
How rows are mapped:
Invoice Number, Order ID, or Customer Name. Consecutive rows with the same identifier become line items of one invoice and inherit its header values.Invoice Number, Date, Due Date, PO Number, Payment Terms, Ship To, Bill To, Notes, Terms, Description, Quantity, Rate, Tax, Amount.> A sample sheet is in
See Limits for the two-invoice cap per execution. #### Download Downloads a saved invoice as a binary file. | Parameter | Description | Output: binary property #### Get Returns an invoice’s data, line items, totals (subtotal, taxes, balance due), and payment status ( | Parameter | Description | #### Mark as Paid Sets an invoice’s payment status. | Parameter | Description | Example output: #### Delete Deletes an invoice and its associated reminders from your InvoicingBuilder history. | Parameter | Description | Output: | Operation | Parameters | Notes | Reports group results by currency. Currencies are never summed together. #### Summary | Parameter | Description | Output: totals and zero-filled monthly breakdowns per currency. Summary returns aggregates, not a list of invoices or clients. #### Analyse Trends | Parameter | Description | Output: per-period revenue and invoice count, with period-over-period absolute and percentage change, per currency. | Operation | Effect | Recommendation | If you enable n8n’s Retry On Fail for any of these, make sure a repeated call is safe. A failed HTTP response does not always mean the action did not happen. The InvoicingBuilder API renders at most 2 invoices per request. How to handle larger volumes: Receive an order, create an invoice from workflow data, and email it to the client. 1. Webhook receives Run it once with Send to Client off and inspect the output before enabling email. Handles up to two invoices per run. See Limits. 1. Schedule Trigger runs weekly or on demand. 1. Webhook receives the payment provider’s event. Your payment event must carry the InvoicingBuilder invoice ID, for example in Verify the webhook signature before this step (for example, with Stripe’s signing secret). Otherwise anyone who finds the webhook URL can mark invoices as paid. The node has no operation that lists overdue invoices. Report → Summary with Status 1. Schedule Trigger runs daily. Record which reminders you sent, so a rerun does not email the same client twice. | Symptom | What to check | With Continue On Fail enabled, a failed item returns an error object and the workflow continues. A successful execution does not prove every item succeeded, so inspect the output. See CHANGELOG.md or the GitHub releases page.
| ————— | —————————————- |
| Invoice | Select an invoice or pass an invoice ID. |
| Download Format | PDF (default) or PNG. |data plus success, invoiceId, format, and fileName.isPaid).
| ——— | —————————————- |
| Invoice | Select an invoice or pass an invoice ID. |
| ——— | —————————————- |
| Invoice | Select an invoice or pass an invoice ID. |
| Status | Paid (default) or Unpaid. |{
"success": true,
"message": "Invoice marked as paid successfully.",
"invoiceId": "inv_987654321",
"isPaid": true,
"balanceDue": "0.00"
}
| ——— | —————————————- |
| Invoice | Select an invoice or pass an invoice ID. |success, message, invoiceId.Client
| ————————- | —————————————————————- | —————————————————————————– |
| Create | Name; Additional Fields (Bill To, Email, Ship To) | |
| Update | Client; fields to change (Name, Email, Bill To, Ship To) | Only the fields you set are sent. Other fields are left unchanged. |
| Get | Client | |
| Get Many | Return All, Limit (default 50) | |
| Delete | Client | See side effects. |
| Send Payment Reminder | Client, Invoice | The Invoice picker lists only the selected client’s invoices. Sends an email. |Report
| ——— | ————————————————————————————————————————– |
| Filters | Optional filters: From / To (UTC dates YYYY-MM-DD, From <= To), and Status (All, Paid, Unpaid, Overdue). |
| Options | Send to User (emails the report to the account owner). |
| ——— | —————————————————————————————————————————————————– |
| Period | Monthly (default), Quarterly, or Yearly. Required. |
| Options | End Date (optional anchor date), Number of Periods (2 to 36; defaults: 12 monthly, 8 quarterly, 5 yearly), Send to User (emails account owner). |Operations with side effects
| —————————————- | ————————————————– | —————————————————————————————– |
| Invoice → Delete | Permanently removes the invoice and its reminders. | Do not automate without a confirmation step. |
| Client → Delete | Permanently removes the client record. | Same as above. |
| Invoice → Mark as Paid | Changes payment status and balance due. | Verify the payment event before calling it (for example, validate the webhook signature). |
| Client → Send Payment Reminder | Emails the client. | Do not blindly retry. A retry can send a duplicate email. |
| Invoice → Create with Send to Client | Emails the invoice to the client. | Test with a client record that uses your own email address. |
| Report with Send to User | Emails the account owner. | |Limits
invoices.zip.invoiceCount in the output rather than assuming every input was invoiced.2.Example workflows
A. Order webhook to client invoice
graph LR
A[Webhook] --> B[InvoicingBuilder: Create Invoice]
B --> C[Slack]
{ "orderId": "ORD-99", "clientId": "cl_123", "items": [...] }.
2. InvoicingBuilder with Resource Invoice, Operation Create, Data Source Direct Input / Workflow Data:
– Client (ID mode): {{ $json.body.clientId }}
– Invoice Number: {{ $json.body.orderId }}
– Send to Client: true
3. Slack posts a confirmation.B. Create invoices from a Google Sheet and email the PDF
graph LR
A[Schedule Trigger] --> B[InvoicingBuilder: Create from Sheet]
B --> C[Gmail: attach binary data]
2. InvoicingBuilder with Resource Invoice, Operation Create, Data Source Google Sheet, your spreadsheet URL (shared as “Anyone with the link can view”), Worksheet Sheet1, Format PDF.
3. Gmail (or any email node) sends the message with binary property data attached.C. Payment webhook to Mark as Paid
graph LR
A[Payment webhook] --> B[Filter: payment succeeded]
B --> C[InvoicingBuilder: Mark as Paid]
C --> D[Notify]
metadata.invoiceId.
2. If/Filter continues only for successful payments, for example Stripe payment_intent.succeeded.
3. InvoicingBuilder with Resource Invoice, Operation Mark as Paid:
– Invoice (ID mode): {{ $json.body.data.object.metadata.invoiceId }}
– Status: Paid
4. Notify your finance team.D. Scheduled payment reminders
Overdue returns totals, not client or invoice IDs, so it cannot feed Send Payment Reminder directly. Take the overdue list from a system that already holds it.graph LR
A[Schedule Trigger] --> B[Your overdue-invoice source]
B --> C[InvoicingBuilder: Send Payment Reminder]
2. Your source: a database, spreadsheet, or CRM node that returns clientId and invoiceId for each overdue invoice.
3. InvoicingBuilder with Resource Client, Operation Send Payment Reminder:
– Client (ID mode): {{ $json.clientId }}
– Invoice (ID mode): {{ $json.invoiceId }}Troubleshooting
| —————————- | ——————————————————————————————————————————————————————— |
| 401 Unauthorized | The API key is wrong, revoked, or not in the selected credential. |
| 400 validation error | Required fields, date format (YYYY-MM-DD), line item values, IDs, and the message returned by the API. |
| 404 Not Found | The client or invoice ID exists in the account tied to this API key. |
| 429 rate limit | Lower request frequency or batch size. The node reads the server’s retryAfter value when provided. Be careful with automatic retries on operations that send email. |
| Node missing after install | Check the install succeeded, check n8n logs, confirm the package is in the environment that runs n8n, and restart n8n. |
| Fewer invoices than expected | The two-invoice cap. See Limits. |
| Email not sent | Recipient address, the Send to Client / Send to User option, and your InvoicingBuilder email and template settings. | |Resources
Version history
License


