API bexio : Le Guide Complet 2026 pour Indépendants Suisses
Connectez le logiciel de gestion le plus populaire de Suisse à pratiquement tous vos outils. Configuration OAuth 2.0, exemples de code et une alternative API de facturation plus simple en comparaison.

Stop à la Saisie Manuelle.
Automatisez Tout.
Vous passez des heures à saisir manuellement des données entre vos outils. Votre logiciel de facturation ne communique pas avec votre CRM. Votre boutique en ligne nécessite de copier-coller les commandes dans la comptabilité. L'API bexio résout ce problème — connectant 40 000+ entreprises suisses à pratiquement n'importe quel autre outil.
5+ Heures par Semaine
Perdues en saisie manuelleOutils Déconnectés
Des apps qui ne communiquent pasCopier-Coller Chaotique
Commandes saisies manuellement dans la comptabilitéQu'est-ce que l'API bexio ?
Une API (Application Programming Interface) permet à différents logiciels d'échanger des données automatiquement. L'API bexio est une interface RESTful qui expose les fonctionnalités principales de bexio — contacts, factures, comptabilité, inventaire — aux applications externes.
Concrètement : Au lieu de créer manuellement une facture dans bexio après avoir terminé un projet, votre outil de gestion de projet peut déclencher la création automatique de factures. Au lieu de copier les coordonnées clients depuis votre boutique en ligne, les commandes arrivent directement dans bexio.
L'API utilise HTTPS et le format JSON, ce qui la rend compatible avec tout langage de programmation. bexio propose actuellement la version 3.0.0 de l'API.
Ce que vous pouvez automatiser
| Fonction | Capacité API |
|---|---|
| Contacts | Créer, modifier, lister clients et fournisseurs |
| Factures | Générer, envoyer, suivre le statut des paiements |
| Commandes | Créer depuis des systèmes externes, mettre à jour le statut |
| Produits | Synchroniser l'inventaire, mettre à jour les niveaux de stock |
| Comptabilité | Récupérer les comptes, enregistrer les transactions |
| Projets | Créer, assigner, suivre le temps |
Migration de l'authentification 2025
Si vous avez des intégrations API bexio existantes, lisez ceci d'abord.
bexio a désactivé idp.bexio.com le 31 mars 2025. Toutes les applications doivent utiliser le nouveau fournisseur d'identité :
Ancien : https://idp.bexio.com
Nouveau : https://auth.bexio.com/realms/bexio
Pour la plupart des applications, la migration nécessitait uniquement la mise à jour des URLs d'autorisation et de token. Si vous n'avez pas encore migré, votre intégration ne fonctionne plus.
Checklist de migration :
- Mettre à jour l'URL d'autorisation dans la configuration de votre app
- Mettre à jour l'URL du endpoint token
- Tester le flux OAuth complet
- Surveiller la page de statut bexio sur bexio-status.com pour les annonces
Intégration No-Code
Pour Non-Développeurs
Vous ne voulez pas coder ? Vous avez des options. bexio se connecte à 8 000+ apps via Zapier seul.
Intégration Zapier
Le chemin le plus rapide vers l'automatisation sans programmation. Connectez-vous à 8 000+ apps instantanément.
- Déclencheurs Nouvelle/Mise à jour Entreprise
- Déclencheurs Nouvelle/Mise à jour Commande
- Déclencheurs Nouveau Produit
- Déclencheurs Nouveau/Mise à jour Devis
Make.com (Integromat)
Workflows multi-étapes plus complexes que Zapier avec logique conditionnelle.
- Modèles de facture différents par type de client
- Routage conditionnel selon la valeur de commande
- Éditeur visuel de workflows
- Transformations de données avancées
Pipedream
Construction visuelle avec flexibilité code pour développeurs qui veulent les deux.
- Connecteurs bexio pré-construits
- Étapes JavaScript/Python personnalisées
- Pont entre no-code et développement complet
- Traitement d'événements en temps réel
Automatisations Zapier populaires pour indépendants
- Shopify → bexio : Nouvelle commande crée une facture automatiquement
- Toggl → bexio : Entrées de temps synchronisées au projet
- HubSpot → bexio : Nouveau contact CRM crée un contact bexio
- Gmail → bexio : Pièce jointe email crée une entrée de dépense
Démarrer avec l'API bexio
Tout ce qu'il faut savoir pour votre première intégration
Prérequis
- Compte bexio : Tout abonnement payant (Starter CHF 45/mois, Pro CHF 75/mois, Pro+ CHF 125/mois). L'accès API est inclus.
- Accès au Portail Développeur : Visitez le Portail Développeur bexio et connectez-vous avec vos identifiants bexio.
Créer vos identifiants API
- Naviguez vers "My Apps" dans le portail développeur
- Cliquez sur "Create New App"
- Définissez une URL de redirection (requise pour le flux OAuth)
- Sauvegardez votre Client ID et Client Secret immédiatement — vous ne reverrez plus le secret
Authentification en détail
bexio utilise OAuth 2.0, le standard de l'industrie pour l'autorisation API. Comprendre le système de double autorisation est crucial.
Deux niveaux d'autorisation
Niveau 1 : Scopes de l'application Quand les utilisateurs connectent votre app, ils accordent des permissions spécifiques (scopes). Ne demandez que ce dont vous avez besoin — les utilisateurs voient ces permissions sur l'écran de consentement.
Catégories de scopes disponibles :
contact_show,contact_edit— Gestion des contactskb_invoice_show,kb_invoice_edit— Accès aux facturesaccounting_show— Lecture des données comptablesarticle_show,article_edit— Gestion des produits
Niveau 2 : Droits utilisateur Les requêtes API s'exécutent avec les permissions de l'utilisateur qui a autorisé la connexion. Si cet utilisateur n'a pas le droit de supprimer des factures dans bexio, votre API ne peut pas supprimer de factures non plus.
Flux OAuth 2.0
1. Votre app redirige l'utilisateur vers :
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. L'utilisateur se connecte et approuve les permissions
3. bexio redirige vers votre URL avec le code d'autorisation
4. Échangez le code contre des tokens à :
https://auth.bexio.com/realms/bexio/protocol/openid-connect/token
5. Utilisez l'access token pour les requêtes API
Gestion des tokens :
- Les access tokens ont une durée de vie courte (généralement 1 heure)
- Les refresh tokens obtiennent de nouveaux access tokens sans interaction utilisateur
- Stockez les refresh tokens de manière sécurisée et implémentez le rafraîchissement automatique
API bexio en Python & JavaScript
Extraits de code prêts à l'emploi pour les cas d'utilisation les plus courants
Python
import requests
BASE_URL = "https://api.bexio.com/2.0"
ACCESS_TOKEN = "your_access_token"
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Accept": "application/json"
}
# Fetch all contacts
response = requests.get(f"{BASE_URL}/contact", headers=headers)
contacts = response.json()
for contact in contacts:
print(f"{contact['id']}: {contact['name_1']}")
# Create new invoice
invoice_data = {
"contact_id": 1,
"title": "Project Work - January 2026",
"positions": [
{
"type": "KbPositionCustom",
"text": "Consulting Services",
"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'
}
});
// Fetch contacts
async function getContacts() {
const response = await api.get('/contact');
return response.data;
}
// Create contact
async function createContact(contactData) {
const response = await api.post('/contact', {
contact_type_id: 1, // 1 = Company, 2 = Person
name_1: contactData.company,
name_2: contactData.name,
mail: contactData.email,
country_id: 1 // Switzerland
});
return response.data;
}
getContacts().then(contacts => console.log(contacts));
Note : Des bibliothèques communautaires existent pour PHP et Python, mais elles ne couvrent qu'une partie des méthodes API. Pour une fonctionnalité complète, des appels HTTP directs peuvent être nécessaires.
E-Commerce
Shopify/Shopware → bexio : Génération auto de factures, sync contacts, mise à jour inventaire
Suivi du Temps
Toggl → bexio : Sync temps enregistré aux projets, générer factures depuis les entrées
CRM
HubSpot → bexio : Sync deals et contacts, facturation auto à la clôture
Comptabilité
Flux bancaires → bexio : Rapprochement paiements, suivi dépenses automatique
Limitations de l'API bexio
& Solutions
Être transparent sur ce que l'API ne peut pas faire vous économise des heures de frustration. L'API bexio a des limitations — mais les connaître à l'avance vous aide à mieux planifier.
Pas de Webhooks Natifs
Utilisez le polling ou Zapier comme alternativesLimites de Débit Non Documentées
Implémentez backoff et cachePas d'Environnement Sandbox
Testez avec des données réelles prudemmentSolutions pour l'absence de Webhooks
- Polling : Vérifiez les changements périodiquement (toutes les 5-15 minutes)
- Zapier : Utilise le polling mais gère l'infrastructure
- Services webhook tiers : Certaines plateformes d'intégration offrent une fonctionnalité pseudo-webhook
Gérer les limites de débit
Basé sur l'expérience de la communauté :
- Implémentez un backoff exponentiel sur les erreurs 429
- Mettez en cache les réponses quand c'est possible
- Groupez les requêtes quand l'API le supporte
- Évitez une fréquence de polling excessive
Bibliothèques clientes limitées
Les SDK officiels n'existent pas. Les bibliothèques communautaires sont incomplètes. Pour les applications en production, attendez-vous à écrire du code personnalisé.
Vous avez juste besoin de générer des factures suisses via API ?
L'API bexio est puissante mais complexe — OAuth 2.0, scopes, gestion des tokens, pas de sandbox. Si tout ce dont vous avez besoin est de générer des factures QR suisses par programmation, l'API de facturation Magic Heidi est une option considérablement plus simple. Une requête POST. Une clé API. Un PDF de facture avec code QR suisse en retour.

API de facturation Magic Heidi
L'API Magic Heidi Swiss Invoice QR Code est une API ouverte à endpoint unique pour générer des factures suisses professionnelles avec bulletins de versement QR. Pas d'OAuth, pas de rafraîchissement de tokens, pas de scopes — juste une clé API et une requête POST.
Comment ça fonctionne
- Envoyez une requête POST avec vos données de facture (expéditeur, client, lignes d'articles)
- Recevez une URL de téléchargement PDF valide 24 heures
- C'est tout — pas de flux OAuth, pas d'inscription au portail développeur
Exemple Python
import requests
response = requests.post(
"https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d",
headers={"key": "your_api_key"},
json={
"user_details": {
"name": "Muster GmbH",
"address": "Bahnhofstrasse 1",
"zip": "8001",
"city": "Zurich",
"iban": "CH93 0076 2011 6238 5295 7"
},
"customer_details": {
"name": "Acme AG",
"address": "Bundesplatz 3",
"zip": "3011",
"city": "Bern"
},
"invoice_items": [
{
"description": "Web Development",
"quantity": 10,
"unit_price": 150
},
{
"description": "Design Review",
"quantity": 3,
"unit_price": 120
}
],
"language": "en",
"currency": "CHF",
"vat_enabled": true,
"vat_percentage": 8.1,
"vat_number": "CHE-123.456.789 MWST"
}
)
data = response.json()
print(f"Download your invoice: {data['url']}")
Exemple JavaScript (Node.js)
const axios = require('axios');
const response = await axios.post(
'https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d',
{
user_details: {
name: 'Muster GmbH',
address: 'Bahnhofstrasse 1',
zip: '8001',
city: 'Zurich',
iban: 'CH93 0076 2011 6238 5295 7'
},
customer_details: {
name: 'Acme AG',
address: 'Bundesplatz 3',
zip: '3011',
city: 'Bern'
},
invoice_items: [
{ description: 'Web Development', quantity: 10, unit_price: 150 },
{ description: 'Design Review', quantity: 3, unit_price: 120 }
],
language: 'en',
currency: 'CHF'
},
{ headers: { key: 'your_api_key' } }
);
console.log(`Download your invoice: ${response.data.url}`);
Fonctionnalités clés
- Factures QR suisses conformes aux standards de paiement suisses
- Multilingue : anglais, allemand, français, italien
- CHF et EUR pris en charge
- Gestion de la TVA avec taux configurables et numéro de TVA
- Logos personnalisés via URL
- Mode QR uniquement pour générer seulement le bulletin de versement
- Test gratuit sans clé API
- Documentation ouverte sur GitHub
API bexio vs. API de facturation Magic Heidi
Choisissez le bon outil selon votre cas d'utilisation
| Fonctionnalité | API Magic Heidi | API bexio |
|---|---|---|
| Cas d'utilisation | Génération de factures | Suite métier complète |
| Authentification | ✓ Simple clé API | Flux OAuth 2.0 |
| Configuration | Clé API uniquement | Portail développeur + app OAuth |
| Factures QR suisses | ✓ Intégré | ⚠ Configuration manuelle |
| Sandbox / Test gratuit | ✓ Oui | ✗ Non |
| Contacts & CRM | ✗ Non | ✓ Oui |
| Comptabilité | ✗ Non | ✓ Oui |
| Coût minimum | Gratuit pour tester | CHF 45/mois |
Questions Fréquentes
L'API bexio est-elle gratuite ?
Oui, l'accès API est inclus avec tous les plans bexio payants (à partir de CHF 45/mois).
Quels langages de programmation fonctionnent avec ces API ?
Tout langage capable de faire des requêtes HTTP — Python, JavaScript, PHP, C#, Ruby, Go, etc. L'API bexio et l'API Magic Heidi utilisent toutes deux le standard REST/JSON.
Puis-je utiliser l'API bexio sans coder ?
Oui. Zapier et Make.com offrent une automatisation no-code avec bexio.
bexio supporte-t-il les webhooks ?
Pas nativement. Utilisez le polling ou Zapier comme alternatives.
Quelle est la différence entre l'API bexio et l'API Magic Heidi ?
L'API bexio vous donne accès à une suite métier complète (contacts, comptabilité, factures, inventaire). L'API Magic Heidi se concentre sur une seule chose : générer des factures QR suisses avec un seul appel API. Si vous avez juste besoin de générer des factures par programmation, Magic Heidi est bien plus simple.
Puis-je tester l'API Magic Heidi gratuitement ?
Oui. Vous pouvez envoyer des requêtes sans clé API pour les tests. L'utilisation en production nécessite une clé API — contactez hello@magicheidi.ch.
Y a-t-il un environnement de test/sandbox bexio ?
Non. Vous devez tester avec des données réelles prudemment.
Besoin d'une Facturation Suisse Plus Simple ?
Magic Heidi gère les factures QR, les dépenses et la TVA — disponible sur toutes les plateformes. Utilisez l'app ou générez des factures via API.