Guida all'Integrazione API

API bexio: La Guida Completa 2026 per Freelancer Svizzeri

Collega il software gestionale più usato in Svizzera con praticamente qualsiasi strumento. Configurazione OAuth 2.0, esempi di codice e una alternativa API per la fatturazione più semplice a confronto.

Illustrazione Integrazione API

Basta con l'Inserimento Manuale.
Automatizza Tutto.

Passi ore a inserire dati manualmente tra i tuoi strumenti. Il software di fatturazione non comunica con il CRM. L'e-commerce richiede di copiare ordini nella contabilità. Le API bexio risolvono questo problema—collegando oltre 40'000 aziende svizzere con praticamente qualsiasi altro strumento.

5+ Ore a Settimana

Perse in inserimento dati manuale
🔗

Strumenti Scollegati

App che non comunicano tra loro
📋

Caos Copia-Incolla

Ordini inseriti manualmente in contabilità

Cosa Sono le API bexio?

Un'API (Application Programming Interface) permette a diversi sistemi software di scambiarsi dati automaticamente. Le API bexio sono un'interfaccia RESTful che espone le funzionalità principali di bexio—contatti, fatture, contabilità, inventario—ad applicazioni esterne.

In pratica: invece di creare manualmente una fattura in bexio dopo aver completato un progetto, il tuo strumento di gestione progetti può generarla automaticamente. Invece di copiare i dati dei clienti dal webshop, gli ordini confluiscono direttamente in bexio.

Le API usano HTTPS e formato JSON, rendendole compatibili con qualsiasi linguaggio di programmazione. bexio offre attualmente la versione API 3.0.0.

Cosa Puoi Automatizzare

FunzioneCapacità API
ContattiCreare, aggiornare, elencare clienti e fornitori
FattureGenerare, inviare, monitorare stato pagamenti
OrdiniCreare da sistemi esterni, aggiornare stato
ProdottiSincronizzare inventario, aggiornare giacenze
ContabilitàRecuperare conti, registrare transazioni
ProgettiCreare, assegnare, tracciare tempo

Migrazione Autenticazione 2025

Se hai integrazioni API bexio esistenti, leggi prima questo.

bexio ha disattivato idp.bexio.com il 31 marzo 2025. Tutte le applicazioni devono usare il nuovo identity provider:

Vecchio: https://idp.bexio.com
Nuovo: https://auth.bexio.com/realms/bexio

Per la maggior parte delle applicazioni, la migrazione ha richiesto solo l'aggiornamento degli URL di autorizzazione e token. Se non hai ancora migrato, la tua integrazione non funziona più.

Checklist migrazione:

  1. Aggiorna l'URL di autorizzazione nella configurazione dell'app
  2. Aggiorna l'URL del token endpoint
  3. Testa il flusso OAuth completo
  4. Monitora la pagina di stato bexio su bexio-status.com per annunci

Automazioni Zapier Popolari per Freelancer

  1. Shopify → bexio: Nuovo ordine crea fattura automaticamente
  2. Toggl → bexio: Ore registrate sincronizzate al progetto
  3. HubSpot → bexio: Nuovo contatto CRM crea contatto bexio
  4. Gmail → bexio: Allegato email crea voce di spesa
Setup Sviluppatori

Iniziare con le API bexio

Tutto ciò che devi sapere per la tua prima integrazione

Prerequisiti

  1. Account bexio: Qualsiasi piano a pagamento (Starter CHF 45/mese, Pro CHF 75/mese, Pro+ CHF 125/mese). L'accesso API è incluso.
  2. Accesso al Portale Sviluppatori: Visita il Portale Sviluppatori bexio e accedi con le tue credenziali bexio.

Creare Credenziali API

  1. Naviga su "My Apps" nel portale sviluppatori
  2. Clicca "Create New App"
  3. Imposta un Redirect URL (richiesto per il flusso OAuth)
  4. Salva immediatamente Client ID e Client Secret—non vedrai più il secret

Autenticazione nel Dettaglio

bexio usa OAuth 2.0, lo standard industriale per l'autorizzazione API. Comprendere il sistema di doppia autorizzazione è cruciale.

Due Livelli di Autorizzazione

Livello 1: Scope dell'Applicazione Quando gli utenti collegano la tua app, concedono permessi specifici (scope). Richiedi solo ciò di cui hai bisogno—gli utenti vedono questi permessi nella schermata di consenso.

Categorie di scope disponibili:

  • contact_show, contact_edit — Gestione contatti
  • kb_invoice_show, kb_invoice_edit — Accesso fatture
  • accounting_show — Lettura dati contabili
  • article_show, article_edit — Gestione prodotti

Livello 2: Diritti Utente Le richieste API vengono eseguite con i permessi dell'utente che ha autorizzato la connessione. Se quell'utente non può eliminare fatture in bexio, nemmeno la tua API potrà farlo.

Flusso OAuth 2.0

1. La tua app reindirizza l'utente a:
   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'utente accede e approva i permessi

3. bexio reindirizza al tuo URL con codice di autorizzazione

4. Scambia il codice per token su:
   https://auth.bexio.com/realms/bexio/protocol/openid-connect/token

5. Usa l'access token per le richieste API

Gestione token:

  • Gli access token hanno vita breve (tipicamente 1 ora)
  • I refresh token ottengono nuovi access token senza interazione utente
  • Conserva i refresh token in modo sicuro e implementa il refresh automatico
Esempi di Codice

API bexio in Python & JavaScript

Snippet di codice pronti all'uso per i casi d'uso più comuni

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"
}

# Recupera tutti i contatti
response = requests.get(f"{BASE_URL}/contact", headers=headers)
contacts = response.json()

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

# Crea nuova fattura
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'
  }
});

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

// Crea contatto
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));

Nota: Esistono librerie della community per PHP e Python, ma coprono solo un sottoinsieme dei metodi API. Per funzionalità complete, potrebbero essere necessarie chiamate HTTP dirette.

Limitazioni API bexio
e Soluzioni Alternative

Essere trasparenti su cosa l'API non può fare ti risparmia ore di frustrazione. Le API bexio hanno limitazioni—ma conoscerle in anticipo ti aiuta a pianificare meglio.

🔔

Nessun Webhook Nativo

Usa polling o Zapier come alternative
🚦

Rate Limit Non Documentati

Implementa backoff e caching
🧪

Nessun Ambiente Sandbox

Testa con dati reali con cautela

Soluzioni per l'Assenza di Webhook

  • Polling: Controlla le modifiche periodicamente (ogni 5-15 minuti)
  • Zapier: Usa polling ma gestisce l'infrastruttura
  • Servizi webhook di terze parti: Alcune piattaforme di integrazione offrono funzionalità pseudo-webhook

Gestire i Rate Limit

Basandosi sull'esperienza della community:

  • Implementa exponential backoff su errori 429
  • Metti in cache le risposte dove possibile
  • Raggruppa le richieste quando l'API lo supporta
  • Evita frequenze di polling non necessarie

Librerie Client Limitate

Non esistono SDK ufficiali. Le librerie della community sono incomplete. Per applicazioni in produzione, aspettati di scrivere codice personalizzato.

Alternativa più Semplice

Hai Solo Bisogno di Generare Fatture Svizzere via API?

Le API bexio sono potenti ma complesse—OAuth 2.0, scope, gestione token, nessun sandbox. Se hai solo bisogno di generare fatture svizzere con QR code in modo programmatico, la Magic Heidi Invoice API è un'opzione enormemente più semplice. Una richiesta POST. Una API key. Una fattura PDF con QR code svizzero in risposta.

Lista Fatture Magic Heidi

Magic Heidi Invoice API

La Magic Heidi Swiss Invoice QR Code API è un'API aperta a singolo endpoint per generare fatture svizzere professionali con bollettini di pagamento QR. Nessun OAuth, nessun refresh token, nessuno scope—solo una API key e una richiesta POST.

Come Funziona

  1. Invia una richiesta POST con i dati della fattura (mittente, cliente, voci)
  2. Ricevi un URL di download del PDF valido per 24 ore
  3. Tutto qui—nessun flusso OAuth, nessuna registrazione al portale sviluppatori

Esempio 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']}")

Esempio 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}`);

Caratteristiche Principali

  • Fatture svizzere con QR code conformi agli standard di pagamento svizzeri
  • Multi-lingua: inglese, tedesco, francese, italiano
  • CHF ed EUR supporto valute
  • Gestione IVA con aliquote configurabili e numero IVA
  • Loghi personalizzati tramite URL
  • Modalità solo QR per generare solo il bollettino di pagamento
  • Test gratuiti senza API key
  • Documentazione aperta su GitHub
Confronto

API bexio vs. Magic Heidi Invoice API

Scegli lo strumento giusto per il tuo caso d'uso

FunzionalitàMagic Heidi APIAPI bexio
Caso d'UsoGenerazione fattureSuite aziendale completa
Autenticazione Semplice API keyFlusso OAuth 2.0
SetupSolo API keyPortale sviluppatori + app OAuth
Fatture QR Svizzere Integrato Setup manuale
Sandbox / Test Gratuiti No
Contatti & CRM No
Contabilità No
Costo MinimoGratis per testareCHF 45/mese
FAQ

Domande Frequenti

Le API bexio sono gratuite?

Sì, l'accesso API è incluso in tutti i piani bexio a pagamento (da CHF 45/mese).

Quali linguaggi di programmazione funzionano con queste API?

Qualsiasi linguaggio che possa fare richieste HTTP—Python, JavaScript, PHP, C#, Ruby, Go, ecc. Sia le API bexio che la Magic Heidi API usano REST/JSON standard.

Posso usare le API bexio senza programmare?

Sì. Zapier e Make.com offrono automazione no-code con bexio.

bexio supporta i webhook?

Non nativamente. Usa polling o Zapier come alternative.

Qual è la differenza tra le API bexio e la Magic Heidi API?

Le API bexio danno accesso a una suite aziendale completa (contatti, contabilità, fatture, inventario). La Magic Heidi API è focalizzata su una cosa sola: generare fatture svizzere con QR code con una singola chiamata API. Se hai solo bisogno di generazione fatture programmatica, Magic Heidi è molto più semplice.

Posso testare la Magic Heidi API gratuitamente?

Sì. Puoi inviare richieste senza API key per i test. L'uso in produzione richiede una API key—contatta hello@magicheidi.ch.

Esiste un ambiente test/sandbox per bexio?

No. Devi testare con dati reali con cautela.

Hai Bisogno di una Fatturazione Svizzera più Semplice?

Magic Heidi gestisce fatture QR, spese e IVA—disponibile su ogni piattaforma. Usa l'app o genera fatture via API.