Stripe Payment Automation: Integration mit Bexio für Schweizer KMU

Vollständiger Guide zur Stripe-Integration mit Bexio: Automatische Rechnungserstellung, Subscription Billing, Webhooks, Buchhaltungs-Sync, Schweizer MwSt.
Reporting by Lena Müller Team, SwissFinanceAI Redaktion
Überblick
Stripe = Weltweit führende Payment-Plattform (500+ Mio. Transaktionen/Jahr).
Verwendung in Schweiz: E-Commerce, SaaS, Subscription-Modelle (Online-Zahlungen mit Kreditkarte, SEPA, Twint, Apple Pay).
Problem: Stripe ist NICHT direkt mit Bexio integriert (keine Out-of-the-Box-Integration).
Lösung: n8n-Workflow (Automation: Stripe-Zahlung → automatische Rechnung in Bexio).
Dieser Guide zeigt:
- ✅ Stripe-Account-Setup (Schweizer MwSt.)
- ✅ Bexio-API-Integration
- ✅ n8n-Workflow (automatische Rechnungserstellung)
- ✅ Webhooks (Echtzeit-Benachrichtigungen)
- ✅ Subscription Billing (wiederkehrende Zahlungen)
- Stripe-Account erstellen
Dauer: 1 Stunde
1.1 Anmeldung
Website: https://stripe.com/ch
Angaben:
- E-Mail-Adresse
- Firmenname (z.B. "SwissFinanceAI GmbH")
- Land: Schweiz
- Unternehmenstyp: GmbH/AG/Einzelfirma
1.2 Verifizierung
Stripe benötigt (KYC-Prozess):
- Handelsregisterauszug (PDF)
- ID-Kopie der Zeichnungsberechtigten
- Geschäftskonto-IBAN (für Auszahlungen)
Dauer: 1-3 Werktage (manuelle Prüfung durch Stripe)
1.3 Preise
Stripe Schweiz-Preise (Stand 2026):
- Kreditkarte (Visa, Mastercard): 1,5% + CHF 0,30 pro Transaktion
- SEPA (Lastschrift): 0,8% pro Transaktion
- Twint: 1,8% + CHF 0,30 pro Transaktion
- Apple Pay / Google Pay: 1,5% + CHF 0,30 pro Transaktion
Keine monatlichen Fixkosten (nur Pay-per-Use).
- Schweizer MwSt. konfigurieren
Dauer: 30 Minuten
2.1 Standard-MwSt.-Sätze (Schweiz)
Ab 1. Januar 2024:
- Normal-Satz: 8,1% (Waren, Dienstleistungen)
- Reduzierter Satz: 2,6% (Lebensmittel, Bücher)
- Sonder-Satz: 3,8% (Beherbergung)
2.2 Stripe Tax konfigurieren
Navigation: Stripe Dashboard → Settings → Tax
Option A: Stripe Tax (automatisch, CHF 10/Monat)
- Stripe berechnet MwSt. automatisch (basierend auf Kundenland)
- Stripe generiert MwSt.-Berichte (für ESTV)
- Best for: Internationale Kunden (EU, USA, etc.)
Option B: Manuelle MwSt. (kostenlos)
- Sie konfigurieren MwSt.-Sätze manuell
- Best for: Nur Schweizer Kunden
Manuelle Konfiguration:
// Stripe Checkout Session mit MwSt.
const session = await stripe.checkout.sessions.create({
line_items: [{
price_data: {
currency: 'chf',
unit_amount: 10000, // CHF 100.00 (in Rappen)
product_data: {
name: 'Finance Automation Consulting',
},
tax_behavior: 'exclusive', // MwSt. wird on top berechnet
},
quantity: 1,
}],
mode: 'payment',
automatic_tax: {enabled: false}, // Manuelle MwSt.
tax_id_collection: {enabled: true}, // UID-Nummer vom Kunden erfragen
customer_update: {address: 'auto'},
success_url: 'https://swissfinanceai.com/success',
cancel_url: 'https://swissfinanceai.com/cancel',
});
3. Bexio-API-Zugang einrichten
Dauer: 30 Minuten
3.1 API-Token generieren
Navigation: Bexio → Einstellungen → Schnittstellen → API
Klick auf: "Neues API-Token erstellen"
Name: "Stripe Integration"
Berechtigungen:
- ✅
kb_invoice:write(Rechnungen erstellen) - ✅
contact:write(Kontakte erstellen) - ✅
article:read(Artikel/Produkte lesen)
Token kopieren: abcdef123456... (geheim halten!)
3.2 Bexio-API testen
Python-Beispiel:
import requests
# Bexio API-Token
api_token = "abcdef123456..." # Ihr Token
headers = {"Authorization": f"Bearer {api_token}"}
# Kontakte abrufen (Test)
response = requests.get("https://api.bexio.com/3.0/contacts", headers=headers)
contacts = response.json()
print(f"{len(contacts)} Kontakte gefunden")
4. n8n-Workflow erstellen
Dauer: 6 Stunden
n8n = Open-Source Workflow Automation (Alternative zu Zapier).
Installation: Self-Hosted (Docker) oder Cloud (https://n8n.io).
4.1 Workflow-Übersicht
Trigger: Stripe-Webhook ("payment_intent.succeeded")
Workflow-Schritte:
- Webhook empfangen (Stripe sendet Zahlungsbestätigung)
- Kunde in Bexio erstellen (falls noch nicht vorhanden)
- Rechnung in Bexio erstellen
- Rechnung als "Bezahlt" markieren
- E-Mail-Benachrichtigung (an Kunde + Buchhalter)
4.2 Node 1: Webhook (Trigger)
n8n Node: Webhook (Trigger)
Konfiguration:
- HTTP Method: POST
- Path:
/stripe-webhook - Authentication: None (Stripe-Signatur wird später validiert)
Webhook-URL: https://your-n8n-instance.com/webhook/stripe-webhook
4.3 Node 2: Stripe-Signatur validieren
n8n Node: Code (JavaScript)
Zweck: Sicherstellen, dass Webhook von Stripe kommt (nicht von Hacker).
Code:
const stripe = require('stripe')('sk_live_...'); // Ihr Stripe Secret Key
const sig = $webhookBody.headers['stripe-signature'];
const webhookSecret = 'whsec_...'; // Ihr Webhook Secret (von Stripe Dashboard)
try {
const event = stripe.webhooks.constructEvent($webhookBody.body, sig, webhookSecret);
return {json: event};
} catch (err) {
throw new Error('Invalid Stripe signature');
}
4.4 Node 3: Daten extrahieren
n8n Node: Code (JavaScript)
Code:
const event = $json;
// Stripe Payment Intent
const paymentIntent = event.data.object;
// Kunden-Daten
const customer = {
email: paymentIntent.receipt_email,
name: paymentIntent.shipping?.name || "N/A",
amount: paymentIntent.amount / 100, // Rappen → CHF
currency: paymentIntent.currency.toUpperCase(),
stripe_id: paymentIntent.id
};
return {json: customer};
4.5 Node 4: Kunde in Bexio erstellen
n8n Node: HTTP Request
Konfiguration:
- Method: POST
- URL:
https://api.bexio.com/3.0/contacts - Headers:
Authorization: Bearer {Bexio-API-Token} - Body:
{
"contact_type_id": 1, // 1 = Firma, 2 = Privatperson
"name_1": "{{$json.name}}",
"mail": "{{$json.email}}"
}
Response (Bexio):
{
"id": 12345, // Bexio Contact ID
"name_1": "Max Mustermann",
...
}
4.6 Node 5: Rechnung in Bexio erstellen
n8n Node: HTTP Request
Konfiguration:
- Method: POST
- URL:
https://api.bexio.com/3.0/kb_invoices - Body:
{
"contact_id": {{$json.id}}, // Von vorherigem Node
"title": "Stripe Payment {{$node["Node 3"].json.stripe_id}}",
"is_valid_from": "{{$now.format('YYYY-MM-DD')}}",
"is_valid_to": "{{$now.format('YYYY-MM-DD')}}",
"currency_id": 1, // 1 = CHF
"mwst_type": 0, // 0 = Inklusive, 1 = Exklusive
"positions": [
{
"amount": 1,
"unit_price": {{$node["Node 3"].json.amount}},
"tax_id": 7, // 7 = 8,1% MwSt. (Standard-Satz)
"text": "Finance Automation Consulting"
}
]
}
Response (Bexio):
{
"id": 67890, // Bexio Invoice ID
"kb_item_status_id": 1, // 1 = Entwurf
...
}
4.7 Node 6: Rechnung als "Bezahlt" markieren
n8n Node: HTTP Request
Konfiguration:
- Method: POST
- URL:
https://api.bexio.com/3.0/kb_invoices/{{$json.id}}/payments - Body:
{
"date": "{{$now.format('YYYY-MM-DD')}}",
"amount": {{$node["Node 3"].json.amount}},
"account_id": 1, // Bexio-Konto (z.B. PostFinance)
"currency_id": 1, // CHF
"title": "Stripe Payment"
}
Bexio-Status: Rechnung wird automatisch auf "Bezahlt" gesetzt.
4.8 Node 7: E-Mail-Benachrichtigung
n8n Node: Send Email
Konfiguration:
- To:
{{$node["Node 3"].json.email}}(Kunde) +buchhalter@swissfinanceai.com - Subject: "Zahlung erhalten: CHF {{$node["Node 3"].json.amount}}"
- Body:
Guten Tag {{$node["Node 3"].json.name}},
Vielen Dank für Ihre Zahlung von CHF {{$node["Node 3"].json.amount}}.
Ihre Rechnung wurde automatisch in unserem System verbucht.
Freundliche Grüsse
SwissFinanceAI Team
5. Webhooks einrichten
Dauer: 2 Stunden
5.1 Webhook in Stripe Dashboard registrieren
Navigation: Stripe Dashboard → Developers → Webhooks → Add endpoint
Angaben:
- Endpoint URL:
https://your-n8n-instance.com/webhook/stripe-webhook - Events to send:
- ✅
payment_intent.succeeded(Zahlung erfolgreich) - ✅
charge.refunded(Rückerstattung) - ✅
invoice.payment_succeeded(Subscription-Rechnung bezahlt)
- ✅
Webhook Secret: whsec_abc123... (für Signatur-Validierung, siehe 4.3)
5.2 Webhook testen
Stripe CLI (lokal testen):
# Stripe CLI installieren
brew install stripe/stripe-cli/stripe
# Login
stripe login
# Webhook-Events an n8n senden (lokal)
stripe listen --forward-to localhost:5678/webhook/stripe-webhook
# Testzahlung triggern
stripe trigger payment_intent.succeeded
Erwartetes Verhalten:
- Stripe sendet
payment_intent.succeededEvent - n8n empfängt Webhook
- n8n erstellt Kunde in Bexio
- n8n erstellt Rechnung in Bexio
- n8n markiert Rechnung als "Bezahlt"
- n8n sendet E-Mail
6. Subscription Billing
Dauer: 3 Stunden
Use Case: SaaS (monatliche/jährliche Abos, z.B. "Bexio Professional CHF 30/Monat").
6.1 Stripe-Produkt erstellen
Navigation: Stripe Dashboard → Products → Add product
Angaben:
- Name: "Finance Automation Consulting"
- Pricing: CHF 850/Monat (wiederkehrend)
- Billing Period: Monatlich
Price ID: price_abc123... (für API-Calls)
6.2 Subscription erstellen (API)
Python-Beispiel:
import stripe
stripe.api_key = "sk_live_..."
# Kunde erstellen
customer = stripe.Customer.create(
email="kunde@example.com",
name="Max Mustermann"
)
# Subscription erstellen
subscription = stripe.Subscription.create(
customer=customer.id,
items=[{"price": "price_abc123..."}], # CHF 850/Monat
payment_behavior="default_incomplete", # Zahlung beim Start
payment_settings={"payment_method_types": ["card", "sepa_debit"]},
expand=["latest_invoice.payment_intent"]
)
# Client Secret (für Frontend-Integration)
client_secret = subscription.latest_invoice.payment_intent.client_secret
print(f"Client Secret: {client_secret}")
6.3 n8n-Workflow erweitern (Subscription)
Neuer Trigger: invoice.payment_succeeded (monatliche Rechnung bezahlt)
Workflow:
- Webhook empfangen (
invoice.payment_succeeded) - Rechnung in Bexio erstellen (monatliche Rechnung)
- Rechnung als "Bezahlt" markieren
- E-Mail: "Monatliche Zahlung erhalten"
7. ROI-Kalkulation
Szenario: E-Commerce-Shop mit 200 Bestellungen/Monat.
Manuelle Buchhaltung (OHNE Automation)
Aufwand pro Bestellung:
- Stripe-Zahlung checken (1 Min)
- Rechnung in Bexio erstellen (3 Min)
- Rechnung als "Bezahlt" markieren (1 Min)
- GESAMT: 5 Min/Bestellung
Monatlich: 200 × 5 Min = 1.000 Min = 16,7 Stunden
Jährlich: 16,7h × 12 = 200 Stunden
Kosten: 200h × CHF 85/h = CHF 17.000/Jahr
Automatisierte Buchhaltung (MIT n8n-Workflow)
Aufwand pro Bestellung: 0 Min (vollständig automatisch)
Kosten (1 Jahr):
- Stripe-Gebühren: 200 × CHF 1,50 × 12 = CHF 3.600 (unverändert)
- n8n Cloud: CHF 20/Monat × 12 = CHF 240
- Bexio Professional: CHF 30/Monat × 12 = CHF 360
- Einmalige Entwicklung (12h × CHF 150/h): CHF 1.800
- GESAMT Jahr 1: CHF 6.000
- GESAMT ab Jahr 2: CHF 4.200 (nur laufende Kosten)
Einsparung: CHF 17.000 - CHF 6.000 = CHF 11.000 Gewinn (183% ROI) 🚀
Häufige Fragen
F: Kann ich Stripe ohne n8n nutzen? A: Ja, mit Zapier (einfacher, aber teurer: CHF 50/Monat). n8n ist Open-Source (kostenlos self-hosted).
F: Unterstützt Stripe Twint? A: Ja, seit 2024. Kosten: 1,8% + CHF 0,30 pro Transaktion.
F: Kann ich Stripe-Zahlungen in PostFinance-Konto auszahlen lassen? A: Ja. Stripe → PostFinance CHF-Konto (SEPA-Transfer, 1-2 Werktage).
F: Wie sicher ist Stripe? A: Sehr sicher. PCI DSS Level 1 zertifiziert (höchster Sicherheitsstandard).
F: Kann ich Stripe für B2B-Rechnungen nutzen? A: Ja, aber QR-Rechnung (PostFinance) ist verbreiteter in Schweiz (99% Akzeptanz).
Nächste Schritte
Option 1: Stripe-Bexio-Integration-Service (CHF 1.800, 12h)
- Wir richten n8n-Workflow für Sie ein
- Inklusive: Stripe-Setup, Bexio-API, Webhooks, Tests
Option 2: Kostenlose Beratung (60 Min)
- Wir analysieren Ihren Use Case (E-Commerce, SaaS, etc.)
- Empfehlung: Stripe vs. PostFinance vs. Hybrid
Veröffentlicht: 27. Januar 2026 Autor: SwissFinanceAI Team Kategorie: Payment Automation
Haftungsausschluss: Dieser Artikel dient ausschliesslich zu Informationszwecken und stellt keine Finanzberatung dar. Konsultieren Sie einen zugelassenen Finanzberater, bevor Sie Anlageentscheide treffen.
Weiterführende Artikel
Haftungsausschluss
Dieser Artikel dient ausschliesslich zu Informationszwecken und stellt keine Finanz-, Rechts- oder Steuerberatung dar. SwissFinanceAI ist kein lizenzierter Finanzdienstleister. Konsultieren Sie immer eine qualifizierte Fachperson, bevor Sie finanzielle Entscheidungen treffen.

Schweizer Märkte & Makroökonomie
Lena Müller analysiert täglich die Schweizer und europäischen Finanzmärkte — von SMI-Bewegungen über SNB-Entscheide bis zu geopolitischen Risiken. Ihr Fokus liegt auf datengestützter Analyse, die Schweizer KMU-Finanzprofis direkt verwertbare Einblicke liefert.
KI-redaktioneller Agent, spezialisiert auf Schweizer Finanzmarktanalyse. Erstellt durch das SwissFinanceAI-Redaktionssystem.
Schweizer KI & Finanzen — direkt ins Postfach
Wöchentliche Zusammenfassung der wichtigsten Nachrichten für Schweizer Finanzprofis. Kein Spam.
Mit der Anmeldung stimmen Sie unserer Datenschutzerklärung zu. Jederzeit abmeldbar.
References
- [1]"Stripe API Documentation."
- [2]"Bexio API Documentation."
- [3]"n8n Stripe Integration."
Transparency Notice: This article may contain AI-assisted content. All citations link to verified sources. We comply with EU AI Act (Article 50) and FTC guidelines for transparent AI disclosure.
Originalquelle
Dieser Artikel basiert auf Stripe API Documentation
Dieser Artikel basiert auf Bexio API Documentation
Dieser Artikel basiert auf n8n Stripe Integration
![Revolut Business vs UBS & PostFinance [Vergleich 2026]](/images/blog/revolut-business-vs-swiss-banks.webp)

