Guía de Integración API

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.

Ilustración de Integración API

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.

5+ Horas SemanalesPerdidas en entrada manual de datos
🔗
Herramientas DesconectadasApps que no se comunican entre sí
📋
Caos de Copiar y PegarPedidos 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ónCapacidad de la API
ContactosCrear, actualizar, listar clientes y proveedores
FacturasGenerar, enviar, seguir estado de pago
PedidosCrear desde sistemas externos, actualizar estado
ProductosSincronizar inventario, actualizar niveles de stock
ContabilidadObtener cuentas, registrar transacciones
ProyectosCrear, asignar, registrar tiempo
⚠️ Actualización Crítica

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:

  1. Actualizar URL de autorización en la configuración de su app
  2. Actualizar URL del endpoint de token
  3. Probar el flujo OAuth completo antes de marzo 2025
  4. Monitorear la página de estado de Bexio en bexio-status.com para anuncios

Automatizaciones Populares de Zapier para Freelancers

  1. Shopify → Bexio: Nuevo pedido crea factura automáticamente
  2. Toggl → Bexio: Entradas de tiempo registradas se sincronizan al proyecto
  3. HubSpot → Bexio: Nuevo contacto de CRM crea contacto en Bexio
  4. Gmail → Bexio: Adjunto de email crea entrada de gasto
Configuración para Desarrolladores

Primeros Pasos con la API de Bexio

Todo lo que necesita saber para su primera integración

Requisitos Previos

  1. 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.
  2. 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

  1. Navegue a "My Apps" en el portal de desarrolladores
  2. Haga clic en "Create New App"
  3. Configure una URL de Redirección (requerida para el flujo OAuth)
  4. 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 contactos
  • kb_invoice_show, kb_invoice_edit — Acceso a facturas
  • accounting_show — Leer datos de contabilidad
  • article_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
Ejemplos de Código

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.

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:

  1. Escuche nuevos pedidos de Shopify (webhook o polling)
  2. Cree/actualice contacto de Bexio desde datos del cliente
  3. Genere factura con líneas de artículos
  4. Opcionalmente envíe la factura automáticamente

Control de Tiempo: Toggl + Bexio

Vincule su seguimiento de tiempo con facturación:

  1. Cree proyectos correspondientes en ambos sistemas
  2. Cuando se registre tiempo en Toggl, sincronice al proyecto de Bexio
  3. Genere factura desde las entradas de tiempo acumuladas
  4. 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.

🔔
Sin Webhooks NativosUse polling o Zapier como alternativas
🚦
Límites No DocumentadosImplemente backoff y caché
🧪
Sin Entorno SandboxPruebe con datos reales cuidadosamente

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.

Precios

Planes de Bexio y Acceso a API

Planes actuales a 2025—todos incluyen acceso a la API

CaracterísticaStarterProPro+
PrecioCHF 45/mesCHF 75/mesCHF 125/mes
Usuarios1 usuarioHasta 3Hasta 25
Acceso API Incluido Incluido Incluido
App bexio Go No Incluido Incluido
Prueba Gratuita30 días30 días30 días (funciones Pro+)
Alternativa Más Simple

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.

Lista de Facturas de Magic Heidi
FAQ

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.

¿Necesita Facturación Suiza Más Simple?

Magic Heidi gestiona facturas QR, gastos e IVA—disponible en todas las plataformas. Sin complejidad de API.