API de Bexio: La Guía 2025 para Freelancers Suizos
Conecte el software empresarial más popular de Suiza con cualquier herramienta. Configuración OAuth 2.0, ejemplos de código y la crítica migración de autenticación 2025.

Deje la Entrada Manual.
Automatice Todo.
Pasa horas introduciendo datos manualmente entre sus herramientas. Su app de facturación no se comunica con su CRM. Su tienda online requiere copiar y pegar pedidos al software de contabilidad. La API de Bexio resuelve esto—conectando más de 40.000 empresas suizas con prácticamente cualquier otra herramienta.
¿Qué Es la API de Bexio?
Una API (Interfaz de Programación de Aplicaciones) permite que diferentes sistemas de software intercambien datos automáticamente. La API de Bexio es una interfaz RESTful que expone las funciones principales de Bexio—contactos, facturas, contabilidad, inventario—a aplicaciones externas.
En términos prácticos: En lugar de crear manualmente una factura en Bexio después de completar un proyecto, su herramienta de gestión de proyectos puede activar la creación automática de facturas. En lugar de copiar datos de clientes de su tienda web, los pedidos fluyen directamente a Bexio.
La API utiliza HTTPS y formato JSON, haciéndola compatible con cualquier lenguaje de programación. Bexio actualmente ofrece la versión 3.0.0 de la API.
Qué Puede Automatizar
| Función | Capacidad de la API |
|---|---|
| Contactos | Crear, actualizar, listar clientes y proveedores |
| Facturas | Generar, enviar, seguir estado de pago |
| Pedidos | Crear desde sistemas externos, actualizar estado |
| Productos | Sincronizar inventario, actualizar niveles de stock |
| Contabilidad | Obtener cuentas, registrar transacciones |
| Proyectos | Crear, asignar, registrar tiempo |
Migración de Autenticación 2025
Si tiene integraciones existentes con la API de Bexio, lea esto primero.
Bexio desactivará idp.bexio.com el 31 de marzo de 2025. Todas las aplicaciones deben migrar al nuevo proveedor de identidad:
Antiguo: https://idp.bexio.com
Nuevo: https://auth.bexio.com/realms/bexio
Para la mayoría de aplicaciones, la migración solo requiere actualizar las URLs de autorización y token. Sin embargo, si no migra antes de la fecha límite, su integración dejará de funcionar.
Lista de verificación para la migración:
- Actualizar URL de autorización en la configuración de su app
- Actualizar URL del endpoint de token
- Probar el flujo OAuth completo antes de marzo 2025
- Monitorear la página de estado de Bexio en bexio-status.com para anuncios
Integración Sin Código
Para No Desarrolladores
¿No quiere escribir código? Tiene opciones. Bexio se conecta con más de 8.000 apps solo a través de Zapier.
Integración con Zapier
El camino más rápido a la automatización sin programar. Conecte con más de 8.000 apps al instante.
- Triggers de Empresa Nueva/Actualizada
- Triggers de Pedido Nuevo/Actualizado
- Triggers de Producto Nuevo
- Triggers de Presupuesto Nuevo/Actualizado
Make.com (Integromat)
Flujos de trabajo multi-paso más complejos que Zapier con lógica condicional.
- Diferentes plantillas de factura por tipo de cliente
- Enrutamiento condicional según valor del pedido
- Constructor visual de flujos de trabajo
- Transformaciones avanzadas de datos
Pipedream
Construcción visual de flujos con flexibilidad de código para desarrolladores que quieren ambos.
- Conectores Bexio preconstruidos
- Pasos personalizados en JavaScript/Python
- Puente entre no-code y desarrollo completo
- Procesamiento de eventos en tiempo real
Automatizaciones Populares de Zapier para Freelancers
- Shopify → Bexio: Nuevo pedido crea factura automáticamente
- Toggl → Bexio: Entradas de tiempo registradas se sincronizan al proyecto
- HubSpot → Bexio: Nuevo contacto de CRM crea contacto en Bexio
- Gmail → Bexio: Adjunto de email crea entrada de gasto
Primeros Pasos con la API de Bexio
Todo lo que necesita saber para su primera integración
Requisitos Previos
- Cuenta Bexio: Cualquier plan de pago (Starter CHF 45/mes, Pro CHF 75/mes, Pro+ CHF 125/mes). El acceso a la API está incluido.
- Acceso al Portal de Desarrolladores: Visite el Portal de Desarrolladores de Bexio e inicie sesión con sus credenciales de Bexio.
Crear Credenciales de API
- Navegue a "My Apps" en el portal de desarrolladores
- Haga clic en "Create New App"
- Configure una URL de Redirección (requerida para el flujo OAuth)
- Guarde su Client ID y Client Secret inmediatamente—no volverá a ver el secret
🔒 Nota de seguridad: Nunca suba credenciales al control de versiones. Use variables de entorno o un gestor de secretos.
Autenticación en Profundidad
Bexio utiliza OAuth 2.0, el estándar de la industria para autorización de APIs. Entender el sistema de autorización dual es crucial.
Dos Niveles de Autorización
Nivel 1: Scopes de la Aplicación Cuando los usuarios conectan su app, otorgan permisos específicos (scopes). Solicite solo lo que necesita—los usuarios ven estos permisos en la pantalla de consentimiento.
Categorías de scopes disponibles:
contact_show,contact_edit— Gestión de contactoskb_invoice_show,kb_invoice_edit— Acceso a facturasaccounting_show— Leer datos de contabilidadarticle_show,article_edit— Gestión de productos
Nivel 2: Permisos de Usuario Las solicitudes a la API se ejecutan con los permisos del usuario que autorizó la conexión. Si ese usuario no puede eliminar facturas en Bexio, su API tampoco puede eliminar facturas.
Flujo OAuth 2.0
1. Su app redirige al usuario 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. El usuario inicia sesión y aprueba los permisos
3. Bexio redirige a su URL con el código de autorización
4. Intercambie el código por tokens en:
https://auth.bexio.com/realms/bexio/protocol/openid-connect/token
5. Use el access token para las solicitudes a la API
Gestión de tokens:
- Los access tokens son de corta duración (típicamente 1 hora)
- Los refresh tokens obtienen nuevos access tokens sin interacción del usuario
- Almacene los refresh tokens de forma segura e implemente actualización automática de tokens
Implementación en Múltiples Lenguajes
Fragmentos de código listos para usar en Python, JavaScript y PHP
Python
Python es popular entre los freelancers suizos para scripts de automatización. Aunque no existe una biblioteca oficial, el cliente mantenido por la comunidad bexio-api-python-client proporciona un punto de partida.
import requests
BASE_URL = "https://api.bexio.com/2.0"
ACCESS_TOKEN = "your_access_token"
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Accept": "application/json"
}
# Obtener todos los contactos
response = requests.get(f"{BASE_URL}/contact", headers=headers)
contacts = response.json()
for contact in contacts:
print(f"{contact['id']}: {contact['name_1']}")
# Crear nueva factura
invoice_data = {
"contact_id": 1,
"title": "Trabajo de Proyecto - Enero 2025",
"positions": [
{
"type": "KbPositionCustom",
"text": "Servicios de Consultoría",
"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'
}
});
// Obtener contactos
async function getContacts() {
const response = await api.get('/contact');
return response.data;
}
// Crear contacto
async function createContact(contactData) {
const response = await api.post('/contact', {
contact_type_id: 1, // 1 = Empresa, 2 = Persona
name_1: contactData.company,
name_2: contactData.name,
mail: contactData.email,
country_id: 1 // Suiza
});
return response.data;
}
getContacts().then(contacts => console.log(contacts));
PHP
La biblioteca onlime/bexio-api-client en GitHub proporciona integración para PHP:
<?php
require 'vendor/autoload.php';
use Bexio\Client;
$client = new Client([
'clientId' => 'your_client_id',
'clientSecret' => 'your_client_secret',
]);
$client->setAccessToken('your_access_token');
// Obtener todos los contactos
$contacts = $client->getContacts();
// Crear factura
$invoice = $client->createInvoice([
'contact_id' => 1,
'title' => 'Servicios de Desarrollo Web',
'positions' => [
[
'type' => 'KbPositionCustom',
'text' => 'Desarrollo Frontend',
'unit_price' => '120.00',
'amount' => '20'
]
]
]);
Nota: Tanto las bibliotecas de la comunidad para Python como PHP cubren solo un subconjunto de métodos de la API. Para funcionalidad completa, puede necesitar llamadas HTTP directas.
E-Commerce
Shopify/Shopware → Bexio: Generar facturas automáticamente, sincronizar contactos, actualizar inventario
Control de Tiempo
Toggl → Bexio: Sincronizar tiempo registrado a proyectos, generar facturas desde entradas de tiempo
CRM
HubSpot → Bexio: Sincronizar deals y contactos, facturar automáticamente al cerrar
Contabilidad
Feeds bancarios → Bexio: Conciliar pagos, rastrear gastos automáticamente
Ejemplos de Integración Reales
E-Commerce: Shopify + Bexio
La integración Shopware-Bexio demuestra lo que es posible:
- Generación automática de facturas basada en método de pago
- Creación de contactos desde cuentas de clientes
- Sincronización de estado de pedidos
- Actualizaciones de inventario entre plataformas
Para Shopify, use Zapier o construya una integración personalizada que:
- Escuche nuevos pedidos de Shopify (webhook o polling)
- Cree/actualice contacto de Bexio desde datos del cliente
- Genere factura con líneas de artículos
- Opcionalmente envíe la factura automáticamente
Control de Tiempo: Toggl + Bexio
Vincule su seguimiento de tiempo con facturación:
- Cree proyectos correspondientes en ambos sistemas
- Cuando se registre tiempo en Toggl, sincronice al proyecto de Bexio
- Genere factura desde las entradas de tiempo acumuladas
- Incluya desglose detallado de tiempo en la factura
CRM: HubSpot + Bexio
Mantenga ventas y contabilidad alineados:
- Nuevo deal de HubSpot cerrado → Crear factura en Bexio
- Contacto de HubSpot actualizado → Sincronizar a contacto de Bexio
- Factura de Bexio pagada → Actualizar estado del deal en HubSpot
Limitaciones de la API
y Soluciones
Ser transparente sobre lo que la API no puede hacer le ahorra horas de frustración. La API de Bexio tiene limitaciones—pero conocerlas de antemano le ayuda a planificar mejor.
Soluciones para la Ausencia de Webhooks
- Polling: Verificar cambios periódicamente (cada 5-15 minutos)
- Zapier: Usa polling pero gestiona la infraestructura
- Servicios de webhook de terceros: Algunas plataformas de integración ofrecen funcionalidad pseudo-webhook
Gestionar Límites de Tasa
Basado en la experiencia de la comunidad:
- Implemente backoff exponencial en errores 429
- Cache respuestas donde sea posible
- Agrupe solicitudes cuando la API lo soporte
- Evite frecuencia de polling innecesaria
Bibliotecas de Cliente Limitadas
No existen SDKs oficiales. Las bibliotecas de la comunidad están incompletas. Para aplicaciones en producción, espere escribir algo de código personalizado.
Mejores Prácticas de Seguridad
Proteja su integración y los datos de sus clientes
Solo Servidor
Nunca exponga credenciales del lado del cliente. Mantenga Client Secret y tokens solo del lado del servidor.
Variables de Entorno
Use BEXIOCLIENTID, BEXIOCLIENTSECRET, BEXIOACCESSTOKEN
Rotación de Tokens
Actualice tokens antes de expirar, gestione fallos de refresh correctamente
Scopes Mínimos
Solicite solo los permisos que su integración realmente necesita
Planes de Bexio y Acceso a API
Planes actuales a 2025—todos incluyen acceso a la API
| Característica | Starter | Pro | Pro+ |
|---|---|---|---|
| Precio | CHF 45/mes | CHF 75/mes | CHF 125/mes |
| Usuarios | 1 usuario | Hasta 3 | Hasta 25 |
| Acceso API | ✓ Incluido | ✓ Incluido | ✓ Incluido |
| App bexio Go | ✗ No | ✓ Incluido | ✓ Incluido |
| Prueba Gratuita | 30 días | 30 días | 30 días (funciones Pro+) |
Cuando la API de Bexio Es Excesiva
No todo freelancer suizo necesita integración por API. Si envía menos de 10 facturas mensuales, no usa múltiples herramientas de negocio, o OAuth 2.0 le parece intimidante—considere alternativas más simples. Magic Heidi ofrece facturación simplificada para freelancers suizos a CHF 30/mes. Sin complejidad de API.

Preguntas Frecuentes
¿La API de Bexio es gratuita?
Sí, el acceso a la API está incluido con todos los planes de pago de Bexio (desde CHF 45/mes).
¿Qué lenguajes de programación funcionan con la API?
Cualquier lenguaje que pueda hacer solicitudes HTTP—Python, JavaScript, PHP, C#, Ruby, Go, etc.
¿Puedo usar la API sin programar?
Sí. Zapier y Make.com ofrecen automatización sin código con Bexio.
¿Bexio soporta webhooks?
No de forma nativa. Use polling o Zapier como alternativas.
¿Cuáles son los límites de tasa de la API?
No están documentados públicamente. Implemente backoff y caché como precauciones.
¿Hay un entorno de prueba/sandbox?
No. Pruebe con datos reales cuidadosamente.
¿Cuándo debo migrar la autenticación?
Antes del 31 de marzo de 2025. El antiguo endpoint idp.bexio.com dejará de funcionar.
Recursos
- Portal de Desarrolladores de Bexio
- Documentación de la API
- Página de Estado de Bexio
- Marketplace de Bexio — más de 120 integraciones preconstruidas
- Biblioteca Cliente PHP (GitHub)
- Cliente Python (GitHub)
¿Necesita Facturación Suiza Más Simple?
Magic Heidi gestiona facturas QR, gastos e IVA—disponible en todas las plataformas. Sin complejidad de API.