Skip to content

Bexio Invoice Automation with n8n: Complete Guide (2026)

Lukas HuberLukas HuberAI Business Specialist & Fiduciary
|
|18 Min Read
Bexio Invoice Automation with n8n: Complete Guide (2026)
Image: SwissFinanceAI / automation

Step-by-step guide to automating Bexio invoices with n8n. Swiss QR bills, email dispatch, payment matching, and dunning — save 12+ hours per week with real workflows from 80+ Swiss SME setups. DSG/nDSG-compliant.

Reporting by Lukas Huber, 10+ years Swiss Treuhand, 80+ Bexio automations

bexioinvoice-automationn8nworkflow-automationqr-invoicee-banking

Bexio Invoice Automation: Complete Guide

"

🔄 Updated April 2026: New Bexio webhook events, updated n8n Bexio node, new DSG/nDSG compliance section, expanded troubleshooting, and mini-comparison n8n vs. Make vs. Zapier for Swiss finance teams.

"

In this guide, I'll show you step by step how to fully automate your Bexio invoicing and save 12+ hours per week. We'll use n8n (Open-Source workflow automation, self-hostable for Swiss DSG compliance) to automate the following processes:

Automatic invoice creation (from CRM deals, projects, subscriptions) ✅ QR invoice generation (Swiss QR Bill with QR code) ✅ Email sending (personalized invoice emails) ✅ Payment reconciliation (automatic matching of incoming payments) ✅ Dunning system (automatic payment reminders after 15/30/45 days)

Time savings: 12-18 hours per week (with 50-100 invoices/month) Error reduction: 85% fewer manual errors Payback: typically 2-3 weeks — cumulative savings in the first 6 months yield ~340% ROI over one-time setup costs

"

Field experience: Based on 80+ Bexio implementations I've run as a Treuhand operator across Swiss SMEs. The guide is deliberately pragmatic — no theory, just what actually works in practice.

"

Prerequisites

Before we start, you'll need:

Software

  • Bexio account (Standard or Pro package)

    • You need API access (unlimited in Pro package, 100 calls/day in Standard)
    • Try Bexio free (30 days)
  • n8n account

Knowledge

  • ✅ Basic knowledge of Bexio interface (creating invoices)
  • ✅ Ability to create Bexio API tokens
  • ⚠️ No programming knowledge required (everything visual with n8n)

Time Required

  • Initial setup: 2-3 hours
  • Maintenance: 15 minutes/month

Why n8n? Quick comparison with Make and Zapier

The most common question in our client engagements: Why n8n and not Zapier or Make? Short, honest answer for the Swiss context:

| Criterion | n8n | Make (Integromat) | Zapier | |---|---|---|---| | Bexio node (native) | ✅ Yes | ⚠️ via HTTP request | ⚠️ via HTTP request | | Self-host (CH server) | ✅ Open Source | ❌ | ❌ | | DSG/nDSG-compliant out-of-the-box | ✅ (when CH-hosted) | ⚠️ EU servers | ⚠️ US servers | | Price (starter) | CHF 20/mo or free self-host | from ~CHF 9/mo | from ~CHF 20/mo | | Learning curve | medium | easy | very easy | | Complex workflows | ✅ strong | ✅ strong | ⚠️ limited |

My take: For Swiss fiduciaries and SMEs handling client data, n8n is the only truly clean solution — you can run it on your own server (or a CH host like Infomaniak) and keep data onshore. More in Make.com vs. Zapier comparison.


DSG/nDSG Compliance: What to know before setup

Since the revised Swiss Federal Act on Data Protection (revDSG, in force since 1 September 2023), clear rules apply to the automatic processing of customer data:

  • Data localization: Sending invoice data to a US service (Zapier, Gmail via Google) counts as cross-border data transfer. With adequate safeguards (US via DPF) it's usually permitted — but must be documented in your processing register.
  • Data processing agreements: n8n Cloud (EU) or self-hosted are simpler here. For Gmail, you need a DPA with Google (included in Google Workspace).
  • Processing register: Log the automation. Template in the DSG/nDSG guide for SMEs.

Concrete advice: If you're automating customer invoices, use self-hosted n8n + SMTP via a CH mail provider (e.g. Infomaniak, Hostpoint). That sidesteps the cross-border discussion entirely.


Step 1: Create Bexio API Token

1.1 Generate Token

  1. Log in to Bexioapp.bexio.com
  2. Click top right on your ProfileSettings
  3. Navigate to: Interfaces → API
  4. Click: "Create new token"
  5. Select permissions:
    • Contacts: Read
    • Invoices: Read, Write, Delete
    • Projects: Read (if project-based invoicing)
    • Payments: Read (for payment reconciliation)
  6. Copy the token (shown only once!)

Example token:

eJyNVVtv2zYU_iuCn9tYkiVbl9qGFw...

⚠️ Important: Save the token securely (e.g., in password manager). It's shown only once!

1.2 Test Token

Test the token with this cURL command (Terminal/PowerShell):

curl -H "Authorization: Bearer YOUR_TOKEN_HERE" \
     https://api.bexio.com/2.0/contact

Expected response: JSON list of your Bexio contacts

Works? → Continue to Step 2 ❌ Error "Unauthorized"? → Check token permissions again


Step 2: Set Up n8n & Connect Bexio

2.1 Create n8n Account

Option A: n8n Cloud (recommended for beginners)

  1. Go to cloud.n8n.io
  2. Register (email + password)
  3. Choose plan: Starter (CHF 20/month, 5,000 executions)
  4. Activate your account

Option B: Self-host n8n (free)

# With Docker (Recommended)
docker run -d --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n

# Access: http://localhost:5678

2.2 Create Bexio Credential in n8n

  1. Open n8n → Click top right "Credentials"
  2. Click: "New Credential" → Search: "Bexio"
  3. Fill in:
    • Name: "Bexio Production"
    • API Token: (from Step 1.1)
  4. Click: "Save"
  5. Test connection: "Test Credential" → ✅ Successful?

Step 3: Automatic Invoice Sending (Workflow #1)

Now we'll build the first workflow: Automatic sending of invoices via email including QR code.

3.1 Create New Workflow

  1. n8n → Workflows"New Workflow"
  2. Name it: "Bexio Auto-Invoice Send"
  3. Activate: "Execute Workflow" (later)

3.2 Trigger: Bexio Webhook (Invoice Created)

Add node: Click "+"Search: "Webhook"

Configuration:

  • HTTP Method: POST
  • Path: bexio-invoice-created
  • Authentication: None (Bexio only sends to this URL)

Webhook URL: https://YOUR-N8N.app.n8n.cloud/webhook/bexio-invoice-created

⚠️ Important: You'll need to enter this URL in Bexio (Step 3.3)

3.3 Register Webhook in Bexio

  1. Bexio → SettingsWebhooks
  2. Click: "New webhook"
  3. Configuration:
    • Event: invoice.created
    • URL: (your n8n webhook URL from Step 3.2)
    • Active: ✅ Yes
  4. Save

Test: Create a test invoice in Bexio → n8n should receive webhook!

3.4 Node: Get Bexio Invoice Details

Add node: "+" → "Bexio"

Configuration:

  • Credential: Bexio Production
  • Resource: Invoice
  • Operation: Get
  • Invoice ID: {{ $json.id }}

This node fetches all invoice details (customer, amount, due date, etc.)

3.5 Node: Generate QR Invoice PDF

Add node: "+" → "Bexio"

Configuration:

  • Credential: Bexio Production
  • Resource: Invoice
  • Operation: Get PDF
  • Invoice ID: {{ $json.id }}
  • Additional Options → QR Code: ✅ Yes

Output: Binary PDF file with Swiss QR Bill

3.6 Node: Send Email (Gmail, Outlook, SMTP)

Add node: "+" → "Send Email" (or "Gmail", "Outlook")

Configuration (Example: SMTP):

  • From Email: invoice@yourcompany.ch
  • To Email: {{ $('Bexio Invoice Details').item.json.contact.mail }}
  • Subject: Invoice No. {{ $('Bexio Invoice Details').item.json.document_nr }}
  • Email Type: Text + HTML
  • Text:
    Dear {{ $('Bexio Invoice Details').item.json.contact.name_1 }},
    
    Please find attached invoice No. {{ $('Bexio Invoice Details').item.json.document_nr }}
    for CHF {{ $('Bexio Invoice Details').item.json.total }}.
    
    Due date: {{ $('Bexio Invoice Details').item.json.delivery_date }}
    
    QR invoice attached (simply scan with mobile banking app).
    
    Best regards
    Your Finance Team
    
  • Attachments:
    • Property Name: data
    • File Name: Invoice_{{ $('Bexio Invoice Details').item.json.document_nr }}.pdf

Save workflow: Click top right "Save"

3.7 Test Workflow

  1. Bexio: Create a new test invoice
  2. n8n: Check "Executions" → Should be successful ✅
  3. Email: Check customer's inbox → PDF received?

🎉 Done! Your first automated invoice sending is running!


Step 4: Automatic Payment Reconciliation (Workflow #2)

Now we'll automate payment reconciliation: As soon as a payment arrives in your bank account, the Bexio invoice is automatically marked as "Paid".

4.1 Create Workflow

  1. n8n → New Workflow: "Bexio Payment Reconciliation"
  2. Trigger: Webhook (Bexio payment.created)

4.2 Node: Get Bexio Payment Details

Node: Bexio → Resource: Payment → Operation: Get

Retrieve:

  • Payment amount
  • Payment date
  • Reference (ESR/QR reference number)

4.3 Node: Find Invoice (via Reference)

Node: Bexio → Resource: Invoice → Operation: Get All

Filter: referenceNumber == {{ $json.referenceNumber }}

4.4 Node: Mark Invoice as "Paid"

Node: Bexio → Resource: Invoice → Operation: Update

Update:

{
  "id": "{{ $json.id }}",
  "is_valid_from": "{{ $json.is_valid_from }}",
  "payment_status": "paid",
  "payment_date": "{{ $('Bexio Payment Details').item.json.payment_date }}"
}

4.5 Node: Confirmation Email to Customer

Node: Send Email

Content:

Dear {{ $json.contact.name_1 }},

Your payment of CHF {{ $json.total }} has been received.

Invoice No. {{ $json.document_nr }} is now fully settled.

Thank you!

Activate workflow → Test with Bexio payment!


Step 5: Automatic Dunning System (Workflow #3)

Automatic payment reminders after 15, 30, and 45 days.

5.1 Create Workflow

  1. Trigger: Schedule (daily at 09:00)
  2. Node: Bexio → Get All Invoices (Filter: payment_status != paid)
  3. Node: Code (Filter by due date)
    const today = new Date();
    const dueDate = new Date($json.delivery_date);
    const daysOverdue = Math.floor((today - dueDate) / (1000 * 60 * 60 * 24));
    
    // Only invoices 15/30/45 days overdue
    if (daysOverdue === 15 || daysOverdue === 30 || daysOverdue === 45) {
      return { daysOverdue, ...$json };
    }
    
  4. Node: Send Email (Payment reminder)
    • 15 days: Friendly reminder
    • 30 days: 1st reminder
    • 45 days: 2nd reminder

Cost-Benefit Analysis

One-time Costs

  • Setup time: 3 hours × CHF 120/h = CHF 360
  • Optional: custom templates / extensions = CHF 150-200

Total One-time: CHF 360-560

Monthly Costs

  • n8n Cloud: CHF 20/month (or CHF 0 if self-hosted)
  • Bexio API: CHF 0 (unlimited in Pro package)

Total Monthly: CHF 20

Time Savings (with 100 invoices/month)

  • Manual invoice sending: 3 minutes × 100 = 300 min (5h)
  • Manual payment reconciliation: 2 minutes × 80 = 160 min (2.7h)
  • Reminders: 5 minutes × 20 = 100 min (1.7h)

Total Time Savings: 9.4 hours/month

Value (at CHF 120/h): 9.4h × CHF 120 = CHF 1,128/month

ROI in first month: (CHF 1,128 − CHF 20) / CHF 560 ≈ 198% Cumulative ROI over 6 months: ~340% (savings minus running costs divided by setup investment) Payback time: 2-3 weeks


Tips & Best Practices

Performance Optimization

  1. Batch processing: Group multiple invoices (1× daily instead of immediately)
  2. API limits: Use Bexio Pro package (unlimited API calls)
  3. Error handling: Add n8n "Error Trigger" → notification on errors

Security

  1. API token: Store token in n8n credentials (never in code)
  2. Webhook signature: Verify Bexio webhook signature (prevents fake requests)
  3. Backup: Export n8n workflows weekly

Scaling

  • Multiple clients: Use n8n variables for multiple Bexio accounts
  • Error handling: Slack/email notification on failed workflows
  • Monitoring: n8n dashboard for execution statistics

Troubleshooting: The 5 Most Common Errors

From 80+ Bexio implementations, the stumbling blocks almost everyone hits once:

1. "401 Unauthorized" despite a correct token

Cause: Bexio token was created without the required scopes. Fix: Delete the token in Bexio and re-create it with all necessary rights. Bexio shows tokens only once — save to password manager immediately.

2. Webhook doesn't fire

Cause: Bexio only calls the webhook on genuine business events. A manually created invoice reliably fires invoice.created — CSV imports don't. Fix: Always test with a manually created test invoice. Enable Retry on Failure on the n8n webhook node (3 retries with exponential backoff).

3. QR code in PDF is distorted or missing

Cause: Bexio only generates the Swiss QR Bill if IBAN and QR-IBAN are correctly configured in company settings. Fix: Bexio → Settings → Company Data → check QR-IBAN (starts with CH + 30 characters). Request missing QR-IBAN from your house bank (usually free). Technical deep-dive: QR Invoice ISO 20022 Deep-Dive.

4. Payment reconciliation matches wrong invoice

Cause: If the ESR reference number isn't set on the invoice, matching falls back to amount — with error rate when amounts collide. Fix: Match primarily by referenceNumber, use amount + contact only as fallback. Route ambiguous cases into a "Review" folder instead of booking blind.

5. n8n workflow runs locally but not in Cloud

Cause: Bexio IP whitelisting (optional in Pro) blocks n8n Cloud IPs. Fix: Disable whitelisting or whitelist n8n Cloud's IP range (in n8n docs) in Bexio.


Frequently Asked Questions (FAQ)

Do I need the Bexio Pro package? ⚠️ For 100+ invoices/month: Yes. Standard package has only 100 API calls/day (approx. 3,000/month). With 100 invoices × 5 API calls = 500 calls → limit reached. Pro package has unlimited API calls.

Does this also work with Abacus/Sage? ❌ No, this guide is specific to Bexio. For a system comparison, see Bexio vs. Abacus.

Can I also automate recurring invoices (subscriptions)? ✅ Yes! Bexio has a "Recurring invoices" feature. Combine it with this guide for fully automatic subscription invoices.

What happens if n8n fails? ⚠️ Invoices won't be sent automatically. Solution: Use n8n Cloud (99.9% uptime) or self-host with monitoring (Uptime Kuma).

Can I also send invoices by post (mail)? ✅ Yes! Use n8n integration with Swiss Post Direct Mail API → Automatic letter sending.

Can I use AI (ChatGPT/Claude) for invoice emails? ✅ Yes — and it's actually the biggest lever in 2026. Add an OpenAI or Anthropic node in n8n between "Get Invoice Details" and "Send Email" to generate personalized email text based on customer history. Important: do not send client data to US models without a DPA. Better locally via Ollama or SwissGPT. Deeper dive: Claude Financial Document Analysis.

Does this work with Bexio Go (the starter package)? ⚠️ Limited. Bexio Go has reduced API access. For full automation you'll need Bexio Standard or Pro. If you're on Go and want to scale: upgrade pays off from ~30 invoices/month.

How do I handle multiple currencies (EUR, USD, CHF)? ✅ Bexio supports multi-currency natively. In n8n, read the currency per customer/invoice from the Bexio response and pick the email template accordingly. For complex scenarios: Multi-Currency Accounting Guide.

Is this also useful for fiduciaries with multiple clients? ✅ Very — probably the strongest use case overall. Build the workflow once and clone it per client with separate credentials. Deep-dive: Fiduciaries Scaling with AI.

What about VAT reporting? ✅ Separate process, same stack. See VAT Automation for Swiss SMEs.


Next Steps

After automating invoices, I recommend:

  1. VAT automation: VAT Automation for Swiss SMEs
  2. n8n workflow templates: n8n Finance Workflow Templates
  3. QR invoices deep dive: QR Invoice ISO 20022
  4. ERP comparison: Bexio vs. Abacus — Practical Comparison

Official Resources & Further Reading


Questions? Contact me: lukas@lhubertreuhand.ch or LinkedIn

Last updated: April 24, 2026 | Author: Lukas Huber, Fiduciary Expert


Disclaimer: This article is for informational purposes only and does not constitute financial advice. Consult a licensed financial advisor before making investment decisions.

Disclaimer

This article is for informational purposes only and does not constitute financial, legal, or tax advice. SwissFinanceAI is not a licensed financial services provider. Always consult a qualified professional before making financial decisions.

ShareLinkedInXWhatsApp
Sophie Weber
Sophie WeberAI Tools & Automation

AI Tools & Automation

Sophie Weber tests and evaluates AI tools for finance and accounting. She explains complex technologies clearly — from large language models to workflow automation — with direct relevance to Swiss SME daily operations.

AI editorial agent specialising in AI tools and automation for finance. Generated by the SwissFinanceAI editorial system.

Newsletter

Swiss AI & Finance — straight to your inbox

Weekly digest of the most important news for Swiss finance professionals. No spam.

By subscribing you agree to our Privacy Policy. Unsubscribe anytime.