API de bexio: La Guía Completa 2026 para Freelancers Suizos
Conecte el software empresarial más popular de Suiza con prácticamente cualquier herramienta que utilice. Configuración OAuth 2.0, ejemplos de código y una alternativa de API de facturación más simple comparada.

Deje la Entrada Manual de Datos.
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.
5+ Horas Semanales
Perdidas en entrada manual de datosHerramientas Desconectadas
Apps que no se comunican entre síCaos de Copiar y Pegar
Pedidos ingresados manualmente en contabilidad¿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 desactivó idp.bexio.com el 31 de marzo de 2025. Todas las aplicaciones deben usar el 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 del endpoint de token. Si aún no ha migrado, su integración ya no está funcionando.
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
- 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
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
API de bexio en Python y JavaScript
Fragmentos de código listos para usar en los casos de uso más comunes
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));
Nota: Existen bibliotecas de la comunidad para PHP y Python, pero cubren solo un subconjunto de métodos de la API. Para funcionalidad completa, pueden ser necesarias 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
Limitaciones de la API de bexio
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.
Sin Webhooks Nativos
Use polling o Zapier como alternativasLímites de Tasa No Documentados
Implemente backoff y cachéSin Entorno Sandbox
Pruebe con datos reales cuidadosamenteSoluciones 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 código personalizado.
¿Solo Necesita Generar Facturas Suizas por API?
La API de bexio es potente pero compleja—OAuth 2.0, scopes, gestión de tokens, sin sandbox. Si todo lo que necesita es generar facturas suizas con QR de forma programática, la API de Facturas de Magic Heidi es una opción drásticamente más simple. Una solicitud POST. Una clave API. Un PDF con factura y código QR suizo a cambio.

API de Facturas de Magic Heidi
La API de Facturas con Código QR Suizo de Magic Heidi es una API abierta de un solo endpoint para generar facturas suizas profesionales con recibos de pago QR. Sin OAuth, sin renovación de tokens, sin scopes—solo una clave API y una solicitud POST.
Cómo Funciona
- Envíe una solicitud POST con los datos de su factura (remitente, cliente, partidas)
- Reciba una URL de descarga del PDF válida por 24 horas
- Eso es todo—sin flujo OAuth, sin registro en portal de desarrolladores
Ejemplo en 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']}")
Ejemplo en 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}`);
Características Principales
- Facturas suizas con QR conformes con los estándares de pago suizos
- Multi-idioma: inglés, alemán, francés, italiano
- CHF y EUR como monedas soportadas
- Gestión del IVA con tasas configurables y número de IVA
- Logos personalizados mediante URL
- Modo solo QR para generar únicamente el recibo de pago
- Pruebas gratuitas sin clave API
- Documentación abierta en GitHub
API de bexio vs. API de Facturas de Magic Heidi
Elija la herramienta adecuada para su caso de uso
| Característica | API de Magic Heidi | API de bexio |
|---|---|---|
| Caso de Uso | Generación de facturas | Suite empresarial completa |
| Autenticación | ✓ Clave API simple | Flujo OAuth 2.0 |
| Configuración | Solo clave API | Portal de desarrolladores + app OAuth |
| Facturas Suizas con QR | ✓ Integrado | ⚠ Configuración manual |
| Sandbox / Pruebas Gratuitas | ✓ Sí | ✗ No |
| Contactos y CRM | ✗ No | ✓ Sí |
| Contabilidad | ✗ No | ✓ Sí |
| Costo Mínimo | Gratis para probar | CHF 45/mes |
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 estas APIs?
Cualquier lenguaje que pueda hacer solicitudes HTTP—Python, JavaScript, PHP, C#, Ruby, Go, etc. Tanto la API de bexio como la API de Magic Heidi usan REST/JSON estándar.
¿Puedo usar la API de bexio 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ál es la diferencia entre la API de bexio y la API de Magic Heidi?
La API de bexio le da acceso a una suite empresarial completa (contactos, contabilidad, facturas, inventario). La API de Magic Heidi se enfoca en una sola cosa: generar facturas suizas con QR con una única llamada a la API. Si solo necesita generación programática de facturas, Magic Heidi es mucho más simple.
¿Puedo probar la API de Magic Heidi gratis?
Sí. Puede enviar solicitudes sin clave API para pruebas. El uso en producción requiere una clave API—contacte a hello@magicheidi.ch.
¿Existe un entorno de prueba/sandbox de bexio?
No. Debe probar con datos reales cuidadosamente.
¿Necesita Facturación Suiza Más Simple?
Magic Heidi gestiona facturas QR, gastos e IVA—disponible en todas las plataformas. Use la app o genere facturas por API.