@zurdai/n8n-nodes-bexio
v1.2.2
Published
n8n node for Bexio API integration
Maintainers
Readme
@zurdai/n8n-nodes-bexio
This is an n8n community node that provides comprehensive integration with the Bexio API.
Bexio is a Swiss business software solution for accounting, invoicing, contact management, and more.
n8n is a fair-code licensed workflow automation platform.
Installation
Follow the installation guide in the n8n community nodes documentation.
Community Nodes (Recommended)
- Go to Settings > Community Nodes in your n8n instance
- Select Install
- Enter
@zurdai/n8n-nodes-bexioin Enter npm package name - Agree to the risks of using community nodes
- Select Install
Manual Installation
To install this node manually in your n8n instance:
npm install @zurdai/n8n-nodes-bexioCredentials
This node uses Personal Access Token (PAT) authentication for simple and reliable API access.
Setup Steps
- Go to the Bexio Developer Portal
- Create a Personal Access Token (PAT)
- Copy the token (it will only be shown once!)
- In n8n, create a Bexio API credential
- Paste your Personal Access Token
📖 Detailed Setup Guide: See PERSONAL_ACCESS_TOKEN_SETUP.md
Available Permissions
When creating your Personal Access Token, you can select permissions for:
Contacts: View, create, edit, and delete contacts (customers and suppliers) Invoices: View, create, edit, and delete invoices Quotes: View, create, edit, and delete quotes (offers) Orders: View, create, edit, and delete orders Items/Products: View, create, edit, and delete items (products and services) Banking: View bank accounts and manage payments Company: Access company profile information
Recommended: Enable all permissions for the resources you plan to use when creating the token. You can always create a new token with different permissions if needed.
Operations
This node focuses on essential business operations with the following resources:
Contact (Customers & Suppliers)
- Create: Create a new contact (person or company)
- Delete: Delete a contact
- Get: Retrieve a single contact
- Get Many: Retrieve multiple contacts
- Search: Search contacts with criteria
- Update: Update a contact
Invoice
- Create: Create a new invoice
- Delete: Delete an invoice
- Get: Retrieve a single invoice
- Get Many: Retrieve multiple invoices with advanced filtering
- Filter by status: Draft, Pending, Paid, Partially Paid, Overdue, Cancelled
- Quick filters: Overdue Only, Unpaid Only
- Supports pagination or "Return All" option
- Get PDF: Download invoice as PDF
- Issue: Issue an invoice
- Mark as Sent: Mark invoice as sent
- Search: Search invoices with criteria
- Send: Send invoice via email
- Update: Update an invoice
Item (Products/Services)
- Create: Create a new item
- Delete: Delete an item
- Get: Retrieve a single item
- Get Many: Retrieve multiple items
- Search: Search items with criteria
- Update: Update an item
Quote (Offers)
- Create: Create a new quote
- Delete: Delete a quote
- Get: Retrieve a single quote
- Get Many: Retrieve multiple quotes
- Get PDF: Download quote as PDF
- Issue: Issue a quote
- Search: Search quotes with criteria
- Update: Update a quote
Order
- Create: Create a new order
- Delete: Delete an order
- Get: Retrieve a single order
- Get Many: Retrieve multiple orders
- Get PDF: Download order as PDF
- Search: Search orders with criteria
- Update: Update an order
Banking
- Get Bank Accounts: Retrieve bank accounts
- Get Payments: Retrieve multiple payments
- Get Payment: Retrieve a single payment
- Create Payment: Create a new payment
Trigger (Bexio Trigger node)
Bexio does not offer natively documented webhooks for status/cancellation events, so the Bexio Trigger node works by polling the API on a schedule (the poll interval is configured on the node) and starting your workflow when records appear or change. Already-seen records are never emitted twice — state is kept in the workflow's static data.
Resources: Contact, Invoice, Order, Quote, Item
Events:
- Created — emits only newly created records (detected via increasing record ID).
- Created or Updated — emits new and changed records (detected via
updated_at). This is the option to use for invoice/order status changes and cancellations. For Item it automatically falls back to created-only, since thearticleresource has noupdated_atfield.
Behaviour notes:
- On first activation the node stores a watermark and emits nothing (no historical replay). In manual/test mode ("Fetch Test Event") it returns the most recent record so you can wire up the workflow.
- Uses the same Bexio API (Personal Access Token) credentials as the action node.
Usage Examples
Example 1: Create a Contact
- Add a Bexio node to your workflow
- Select Contact as the resource
- Select Create as the operation
- Choose Contact Type (Person or Company)
- Fill in the contact details (name, email, address, etc.)
Example 2: Create and Send an Invoice
- Create an invoice using the Invoice resource with Create operation
- Add invoice positions (line items) as JSON
- Use Issue operation to finalize the invoice
- Use Send operation to email the invoice to the customer
Example 3: Create a Quote and Convert to Order
- Create a quote using the Quote resource with Create operation
- Add quote positions (line items) as JSON
- Use Issue operation to finalize the quote
- Once accepted, create an order from the same data using the Order resource
Example 4: Get All Overdue Invoices
- Add a Bexio node to your workflow
- Select Invoice as the resource
- Select Get Many as the operation
- Enable Return All to get all invoices
- Under Options, enable Overdue Only filter
- This will return all invoices with overdue status
API Documentation
For detailed information about the Bexio API, visit:
Compatibility
- Tested with n8n version 1.0.0 and above
- Uses Bexio API v2.0 and v3.0 endpoints
- All endpoints verified and tested against Bexio API documentation
Resources
Support
For issues and feature requests, please create an issue on the GitHub repository.
Custom Adjustments
If you need specific customizations or have special requirements for this integration, please contact:
- Email: [email protected]
- Phone: +41 79 127 55 54
Development
Setup
# Install dependencies
npm install
# Build the node
npm run build
# Run linter
npm run lint
# Fix linting issues
npm run lintfixProject Structure
@zurdai/n8n-nodes-bexio/
├── credentials/
│ ├── BexioApi.credentials.ts # PAT Authentication (Current)
│ └── BexioOAuth2Api.credentials.ts # OAuth2 (Deprecated)
├── nodes/
│ └── Bexio/
│ ├── Bexio.node.ts # Main node implementation
│ ├── GenericFunctions.ts # API request helpers
│ ├── OperationsHandlers.ts # Resource operation handlers
│ ├── bexio.svg # Node icon
│ └── descriptions/
│ ├── ContactDescription.ts # Contact resource fields
│ ├── InvoiceDescription.ts # Invoice resource fields
│ ├── ItemDescription.ts # Item resource fields
│ ├── QuoteDescription.ts # Quote resource fields
│ ├── OrderDescription.ts # Order resource fields
│ └── BankingDescription.ts # Banking resource fields
├── package.json
├── tsconfig.json
├── gulpfile.js
└── README.mdLicense
Author
Daniel Zurmühle ([email protected]) impulsai.ch
Version History
1.2.2 (Current) - @zurdai/n8n-nodes-bexio
- Updated author website URL to impulsai.ch
1.2.1 - @zurdai/n8n-nodes-bexio
- Updated author/contact email
1.2.0 - @zurdai/n8n-nodes-bexio
- New: Bexio Trigger node (polling) for Contact, Invoice, Order, Quote, and Item
- Events: Created (via record ID) and Created or Updated (via
updated_at, catches invoice/order status changes and cancellations) - No historical replay on activation; de-duplicated via workflow static data
- Reuses the existing Personal Access Token credentials
- Events: Created (via record ID) and Created or Updated (via
- Shared request layer (
bexioApiRequest) now also supports the polling context
1.1.0 - @zurdai/n8n-nodes-bexio
- Node Improvements: Added required fields (
user_id,owner_id) for Contact, Invoice, Quote, and Order resources - Comprehensive Test Suite: Created full test coverage for all 87 operations across 14 resources
- 85.88% success rate (73/85 tests passing)
- Automated test runner with JSON and HTML reports
- Dynamic test data fetching to adapt to any Bexio account
- API Integration Fixes: Improved error handling and field validation
- Developer Experience: Better error messages and complete test documentation
1.0.5 - @zurdai/n8n-nodes-bexio
- Security Fixes: Fixed all dependency vulnerabilities (npm audit: 0 vulnerabilities)
- Added JSON parsing error handling
- Added DoS protection with pagination limits
- Implemented missing
getLanguagesLoadOptions method
1.0.0 - @zurdai/n8n-nodes-bexio
- New Scoped Package: Republished as
@zurdai/n8n-nodes-bexiounder zurdai organization - All features from the previous package (v1.0.16) included
- Comprehensive PDF binary download support for Invoice, Quote, and Order
- 6 essential business resources: Banking, Contact, Invoice, Item, Order, Quote
- Personal Access Token (PAT) authentication
- All API endpoints verified and tested
Previous Package (n8n-nodes-bexio) - Deprecated
The package was previously published as n8n-nodes-bexio (versions 1.0.0 - 1.0.16, now deprecated).
All functionality has been migrated to the scoped package @zurdai/n8n-nodes-bexio.
For complete version history of the previous package, see CHANGELOG.md.
