API Integrations-Anleitung

Bexio API: Der komplette 2025 Guide für Schweizer Freelancer

Verbinden Sie die beliebteste Schweizer Buchhaltungssoftware mit praktisch jedem Tool. OAuth 2.0 Setup, Code-Beispiele und die wichtige 2025 Authentifizierungs-Migration erklärt.

API Integration Illustration

Schluss mit manueller Dateneingabe.
Automatisieren Sie alles.

Sie verbringen Stunden mit manueller Dateneingabe zwischen Ihren Tools. Ihre Rechnungssoftware kommuniziert nicht mit Ihrem CRM. Ihr Online-Shop erfordert das Kopieren von Bestellungen in die Buchhaltung. Die Bexio API löst das—sie verbindet 40'000+ Schweizer Unternehmen mit praktisch jedem anderen Tool.

5+ Stunden wöchentlichVerloren durch manuelle Dateneingabe
🔗
Isolierte ToolsApps, die nicht miteinander kommunizieren
📋
Copy-Paste-ChaosBestellungen manuell in die Buchhaltung übertragen

Was ist die Bexio API?

Eine API (Application Programming Interface) ermöglicht verschiedenen Softwaresystemen den automatischen Datenaustausch. Die Bexio API ist eine RESTful-Schnittstelle, die Bexios Kernfunktionen—Kontakte, Rechnungen, Buchhaltung, Inventar—für externe Anwendungen zugänglich macht.

In der Praxis: Statt nach Projektabschluss manuell eine Rechnung in Bexio zu erstellen, kann Ihr Projektmanagement-Tool automatisch eine Rechnung generieren. Statt Kundendaten aus Ihrem Webshop zu kopieren, fliessen Bestellungen direkt in Bexio.

Die API verwendet HTTPS und JSON-Format und ist damit mit jeder Programmiersprache kompatibel. Bexio bietet aktuell die API-Version 3.0.0 an.

Was Sie automatisieren können

FunktionAPI-Möglichkeiten
KontakteKunden und Lieferanten erstellen, aktualisieren, auflisten
RechnungenGenerieren, versenden, Zahlungsstatus verfolgen
BestellungenAus externen Systemen erstellen, Status aktualisieren
ProdukteInventar synchronisieren, Lagerbestände aktualisieren
BuchhaltungKonten abrufen, Buchungen erfassen
ProjekteErstellen, zuweisen, Zeit erfassen
⚠️ Wichtiges Update

2025 Authentifizierungs-Migration

Wenn Sie bestehende Bexio API-Integrationen haben, lesen Sie dies zuerst.

Bexio stellt idp.bexio.com am 31. März 2025 ein. Alle Anwendungen müssen zum neuen Identity Provider migrieren:

Alt: https://idp.bexio.com
Neu: https://auth.bexio.com/realms/bexio

Für die meisten Anwendungen erfordert die Migration nur das Aktualisieren der Authorization- und Token-Endpoint-URLs. Wenn Sie jedoch nicht bis zum Stichtag migriert haben, wird Ihre Integration nicht mehr funktionieren.

Migrations-Checkliste:

  1. Authorization-URL in Ihrer App-Konfiguration aktualisieren
  2. Token-Endpoint-URL aktualisieren
  3. Den kompletten OAuth-Flow vor März 2025 testen
  4. Bexios Statusseite unter bexio-status.com auf Ankündigungen überwachen

Beliebte Zapier-Automatisierungen für Freelancer

  1. Shopify → Bexio: Neue Bestellung erstellt automatisch Rechnung
  2. Toggl → Bexio: Erfasste Zeiteinträge mit Projekt synchronisieren
  3. HubSpot → Bexio: Neuer CRM-Kontakt erstellt Bexio-Kontakt
  4. Gmail → Bexio: E-Mail-Anhang erstellt Spesenbeleg
Entwickler-Setup

Erste Schritte mit der Bexio API

Alles, was Sie für Ihre erste Integration wissen müssen

Voraussetzungen

  1. Bexio-Konto: Jeder kostenpflichtige Plan (Starter CHF 45/Monat, Pro CHF 75/Monat, Pro+ CHF 125/Monat). API-Zugang ist inklusive.
  2. Developer Portal Zugang: Besuchen Sie das Bexio Developer Portal und melden Sie sich mit Ihren Bexio-Zugangsdaten an.

API-Zugangsdaten erstellen

  1. Navigieren Sie zu "My Apps" im Developer Portal
  2. Klicken Sie auf "Create New App"
  3. Legen Sie eine Redirect URL fest (erforderlich für OAuth-Flow)
  4. Speichern Sie Client ID und Client Secret sofort—das Secret wird nicht erneut angezeigt

🔒 Sicherheitshinweis: Committen Sie Zugangsdaten niemals in die Versionskontrolle. Verwenden Sie Umgebungsvariablen oder einen Secrets Manager.

Authentifizierung im Detail

Bexio verwendet OAuth 2.0, den Industriestandard für API-Autorisierung. Das Verständnis des dualen Autorisierungssystems ist entscheidend.

Zwei Ebenen der Autorisierung

Ebene 1: Anwendungs-Scopes Wenn Benutzer Ihre App verbinden, gewähren sie bestimmte Berechtigungen (Scopes). Fordern Sie nur an, was Sie benötigen—Benutzer sehen diese Berechtigungen im Zustimmungsbildschirm.

Verfügbare Scope-Kategorien:

  • contact_show, contact_edit — Kontaktverwaltung
  • kb_invoice_show, kb_invoice_edit — Rechnungszugriff
  • accounting_show — Buchhaltungsdaten lesen
  • article_show, article_edit — Produktverwaltung

Ebene 2: Benutzerrechte API-Anfragen werden mit den Berechtigungen des Benutzers ausgeführt, der die Verbindung autorisiert hat. Wenn dieser Benutzer in Bexio keine Berechtigung zum Löschen von Rechnungen hat, kann Ihre API auch keine Rechnungen löschen.

OAuth 2.0 Flow

1. Ihre App leitet den Benutzer weiter zu:
   https://auth.bexio.com/realms/bexio/protocol/openid-connect/auth
   ?client_id=YOUR_CLIENT_ID
   &redirect_uri=YOUR_REDIRECT_URL
   &response_type=code
   &scope=contact_show kb_invoice_edit

2. Benutzer meldet sich an und genehmigt Berechtigungen

3. Bexio leitet zu Ihrer URL mit Autorisierungscode weiter

4. Code gegen Tokens tauschen bei:
   https://auth.bexio.com/realms/bexio/protocol/openid-connect/token

5. Access Token für API-Anfragen verwenden

Token-Management:

  • Access Tokens sind kurzlebig (typischerweise 1 Stunde)
  • Refresh Tokens holen neue Access Tokens ohne Benutzerinteraktion
  • Speichern Sie Refresh Tokens sicher und implementieren Sie automatische Token-Erneuerung
Code-Beispiele

Implementierung in mehreren Sprachen

Sofort einsetzbare Code-Snippets für Python, JavaScript und PHP

Python

Python ist bei Schweizer Freelancern beliebt für Automatisierungsskripte. Obwohl keine offizielle Bibliothek existiert, bietet der von der Community gepflegte bexio-api-python-client einen Startpunkt.

import requests

BASE_URL = "https://api.bexio.com/2.0"
ACCESS_TOKEN = "your_access_token"

headers = {
    "Authorization": f"Bearer {ACCESS_TOKEN}",
    "Accept": "application/json"
}

# Alle Kontakte abrufen
response = requests.get(f"{BASE_URL}/contact", headers=headers)
contacts = response.json()

for contact in contacts:
    print(f"{contact['id']}: {contact['name_1']}")

# Neue Rechnung erstellen
invoice_data = {
    "contact_id": 1,
    "title": "Projektarbeit - Januar 2025",
    "positions": [
        {
            "type": "KbPositionCustom",
            "text": "Beratungsleistungen",
            "unit_price": "150.00",
            "amount": "10"
        }
    ]
}

response = requests.post(
    f"{BASE_URL}/kb_invoice",
    headers=headers,
    json=invoice_data
)
print(response.json())

JavaScript (Node.js)

const axios = require('axios');

const BASE_URL = 'https://api.bexio.com/2.0';
const ACCESS_TOKEN = process.env.BEXIO_TOKEN;

const api = axios.create({
  baseURL: BASE_URL,
  headers: {
    'Authorization': `Bearer ${ACCESS_TOKEN}`,
    'Accept': 'application/json'
  }
});

// Kontakte abrufen
async function getContacts() {
  const response = await api.get('/contact');
  return response.data;
}

// Kontakt erstellen
async function createContact(contactData) {
  const response = await api.post('/contact', {
    contact_type_id: 1, // 1 = Firma, 2 = Person
    name_1: contactData.company,
    name_2: contactData.name,
    mail: contactData.email,
    country_id: 1 // Schweiz
  });
  return response.data;
}

getContacts().then(contacts => console.log(contacts));

PHP

Die onlime/bexio-api-client Bibliothek auf GitHub bietet PHP-Integration:

<?php
require 'vendor/autoload.php';

use Bexio\Client;

$client = new Client([
    'clientId' => 'your_client_id',
    'clientSecret' => 'your_client_secret',
]);

$client->setAccessToken('your_access_token');

// Alle Kontakte abrufen
$contacts = $client->getContacts();

// Rechnung erstellen
$invoice = $client->createInvoice([
    'contact_id' => 1,
    'title' => 'Webentwicklung Dienstleistungen',
    'positions' => [
        [
            'type' => 'KbPositionCustom',
            'text' => 'Frontend-Entwicklung',
            'unit_price' => '120.00',
            'amount' => '20'
        ]
    ]
]);

Hinweis: Sowohl Python- als auch PHP-Community-Bibliotheken decken nur einen Teil der API-Methoden ab. Für vollständige Funktionalität sind möglicherweise direkte HTTP-Aufrufe erforderlich.

Praxisbeispiele für Integrationen

E-Commerce: Shopify + Bexio

Die Shopware-Bexio-Integration zeigt, was möglich ist:

  • Automatische Rechnungserstellung basierend auf Zahlungsmethode
  • Kontakterstellung aus Kundenkonten
  • Bestellstatus-Synchronisierung
  • Inventaraktualisierung über Plattformen hinweg

Für Shopify nutzen Sie Zapier oder erstellen Sie eine benutzerdefinierte Integration, die:

  1. Auf neue Shopify-Bestellungen lauscht (Webhook oder Polling)
  2. Bexio-Kontakt aus Kundendaten erstellt/aktualisiert
  3. Rechnung mit Positionen generiert
  4. Optional die Rechnung automatisch versendet

Zeiterfassung: Toggl + Bexio

Verknüpfen Sie Ihre Zeiterfassung mit der Rechnungsstellung:

  1. Erstellen Sie entsprechende Projekte in beiden Systemen
  2. Wenn Zeit in Toggl erfasst wird, zum Bexio-Projekt synchronisieren
  3. Rechnung aus gesammelten Zeiteinträgen generieren
  4. Detaillierte Zeitaufstellung auf der Rechnung inkludieren

CRM: HubSpot + Bexio

Halten Sie Vertrieb und Buchhaltung synchron:

  • Neuer HubSpot-Deal abgeschlossen → Bexio-Rechnung erstellen
  • HubSpot-Kontakt aktualisiert → Mit Bexio-Kontakt synchronisieren
  • Bexio-Rechnung bezahlt → HubSpot-Deal-Status aktualisieren

API-Einschränkungen
& Workarounds

Transparenz über die Grenzen der API spart Ihnen Stunden an Frustration. Die Bexio API hat Einschränkungen—aber wenn Sie diese kennen, können Sie besser planen.

🔔
Keine nativen WebhooksPolling oder Zapier als Workaround nutzen
🚦
Undokumentierte Rate LimitsBackoff und Caching implementieren
🧪
Keine Sandbox-UmgebungMit echten Daten vorsichtig testen

Workarounds für fehlende Webhooks

  • Polling: Regelmässig auf Änderungen prüfen (alle 5-15 Minuten)
  • Zapier: Nutzt Polling, übernimmt aber die Infrastruktur
  • Drittanbieter-Webhook-Dienste: Einige Integrationsplattformen bieten Pseudo-Webhook-Funktionalität

Umgang mit Rate Limits

Basierend auf Community-Erfahrungen:

  • Exponentielles Backoff bei 429-Fehlern implementieren
  • Antworten wo möglich cachen
  • Anfragen bündeln, wenn die API dies unterstützt
  • Unnötig häufiges Polling vermeiden

Begrenzte Client-Bibliotheken

Offizielle SDKs existieren nicht. Community-Bibliotheken sind unvollständig. Für Produktionsanwendungen müssen Sie mit eigenem Code rechnen.

Preise

Bexio Pläne & API-Zugang

Aktuelle Pläne Stand 2025—alle inkludieren API-Zugang

FunktionStarterProPro+
PreisCHF 45/MonatCHF 75/MonatCHF 125/Monat
Benutzer1 BenutzerBis zu 3Bis zu 25
API-Zugang Inklusive Inklusive Inklusive
bexio Go App Nein Inklusive Inklusive
Gratis-Test30 Tage30 Tage30 Tage (Pro+ Funktionen)
Einfachere Alternative

Wenn die Bexio API Overkill ist

Nicht jeder Schweizer Freelancer braucht API-Integration. Wenn Sie weniger als 10 Rechnungen monatlich versenden, nicht mehrere Business-Tools nutzen oder OAuth 2.0 einschüchternd finden—ziehen Sie einfachere Alternativen in Betracht. Magic Heidi bietet unkomplizierte Rechnungsstellung für Schweizer Freelancer ab CHF 30/Monat. Ohne API-Komplexität.

Magic Heidi Rechnungsliste
FAQ

Häufig gestellte Fragen

Ist die Bexio API kostenlos?

Ja, API-Zugang ist bei allen kostenpflichtigen Bexio-Plänen inklusive (ab CHF 45/Monat).

Welche Programmiersprachen funktionieren mit der API?

Jede Sprache, die HTTP-Anfragen machen kann—Python, JavaScript, PHP, C#, Ruby, Go, etc.

Kann ich die API ohne Programmieren nutzen?

Ja. Zapier und Make.com bieten No-Code-Automatisierung mit Bexio.

Unterstützt Bexio Webhooks?

Nicht nativ. Nutzen Sie Polling oder Zapier als Workarounds.

Was sind die API-Rate-Limits?

Nicht öffentlich dokumentiert. Implementieren Sie Backoff und Caching als Vorsichtsmassnahme.

Gibt es eine Test-/Sandbox-Umgebung?

Nein. Testen Sie vorsichtig mit echten Daten.

Bis wann muss ich die Authentifizierung migrieren?

Vor dem 31. März 2025. Der alte idp.bexio.com Endpoint wird dann nicht mehr funktionieren.

Einfachere Schweizer Rechnungsstellung gesucht?

Magic Heidi erledigt QR-Rechnungen, Spesen und MWST—auf jeder Plattform verfügbar. Ohne API-Komplexität.