Guía de Integración API

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.

Ilustración de Integración API

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 datos
🔗

Herramientas 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ó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

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:

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

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

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.

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 alternativas
🚦

Límites de Tasa No Documentados

Implemente backoff y caché
🧪

Sin Entorno Sandbox

Pruebe 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 código personalizado.

Alternativa Más Simple

¿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.

Lista de Facturas de Magic Heidi

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

  1. Envíe una solicitud POST con los datos de su factura (remitente, cliente, partidas)
  2. Reciba una URL de descarga del PDF válida por 24 horas
  3. 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
Comparación

API de bexio vs. API de Facturas de Magic Heidi

Elija la herramienta adecuada para su caso de uso

CaracterísticaAPI de Magic HeidiAPI de bexio
Caso de UsoGeneración de facturasSuite empresarial completa
Autenticación Clave API simpleFlujo OAuth 2.0
ConfiguraciónSolo clave APIPortal de desarrolladores + app OAuth
Facturas Suizas con QR Integrado Configuración manual
Sandbox / Pruebas Gratuitas No
Contactos y CRM No
Contabilidad No
Costo MínimoGratis para probarCHF 45/mes
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 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.