Guia de Integração API

API bexio: O Guia Completo 2026 para Freelancers Suíços

Conecte o software de gestão mais popular da Suíça com praticamente qualquer ferramenta que você usa. Configuração OAuth 2.0, exemplos de código e uma alternativa mais simples de API de faturamento comparada.

Ilustração de Integração API

Pare a Entrada Manual de Dados.
Automatize Tudo.

Você gasta horas digitando dados manualmente entre suas ferramentas. Seu app de faturamento não se comunica com seu CRM. Sua loja virtual exige copiar e colar pedidos no software de contabilidade. A API bexio resolve isso—conectando mais de 40.000 empresas suíças com praticamente qualquer outra ferramenta.

5+ Horas Semanais

Perdidas com entrada manual de dados
🔗

Ferramentas Desconectadas

Apps que não se comunicam
📋

Caos de Copiar e Colar

Pedidos inseridos manualmente na contabilidade

O Que É a API bexio?

Uma API (Interface de Programação de Aplicações) permite que diferentes sistemas de software troquem dados automaticamente. A API bexio é uma interface RESTful que expõe os recursos principais do bexio—contatos, faturas, contabilidade, estoque—para aplicações externas.

Na prática: Em vez de criar manualmente uma fatura no bexio após concluir um projeto, sua ferramenta de gestão de projetos pode acionar a criação automática de faturas. Em vez de copiar dados de clientes da sua loja virtual, os pedidos fluem diretamente para o bexio.

A API usa HTTPS e formato JSON, tornando-a compatível com qualquer linguagem de programação. O bexio oferece atualmente a versão 3.0.0 da API.

O Que Você Pode Automatizar

FunçãoCapacidade da API
ContatosCriar, atualizar, listar clientes e fornecedores
FaturasGerar, enviar, rastrear status de pagamento
PedidosCriar a partir de sistemas externos, atualizar status
ProdutosSincronizar estoque, atualizar níveis de inventário
ContabilidadeBuscar contas, registrar transações
ProjetosCriar, atribuir, rastrear tempo

Migração de Autenticação 2025

Se você tem integrações existentes com a API bexio, leia isto primeiro.

O bexio desativou idp.bexio.com em 31 de março de 2025. Todas as aplicações devem usar o novo provedor de identidade:

Antigo: https://idp.bexio.com
Novo: https://auth.bexio.com/realms/bexio

Para a maioria das aplicações, a migração requer apenas atualizar as URLs dos endpoints de autorização e token. Se você ainda não migrou, sua integração não está mais funcionando.

Checklist de migração:

  1. Atualize a URL de autorização na configuração do seu app
  2. Atualize a URL do endpoint de token
  3. Teste o fluxo OAuth completo
  4. Monitore a página de status do bexio em bexio-status.com para anúncios

Automações Zapier Populares para Freelancers

  1. Shopify → bexio: Novo pedido cria fatura automaticamente
  2. Toggl → bexio: Entradas de tempo registradas sincronizam com projeto
  3. HubSpot → bexio: Novo contato no CRM cria contato no bexio
  4. Gmail → bexio: Anexo de email cria entrada de despesa
Configuração para Desenvolvedores

Começando com a API bexio

Tudo que você precisa saber para sua primeira integração

Pré-requisitos

  1. Conta bexio: Qualquer plano pago (Starter CHF 45/mês, Pro CHF 75/mês, Pro+ CHF 125/mês). Acesso à API está incluído.
  2. Acesso ao Portal do Desenvolvedor: Visite o Portal do Desenvolvedor bexio e faça login com suas credenciais bexio.

Criando Credenciais da API

  1. Navegue até "My Apps" no portal do desenvolvedor
  2. Clique em "Create New App"
  3. Defina uma Redirect URL (necessária para o fluxo OAuth)
  4. Salve seu Client ID e Client Secret imediatamente—você não verá o secret novamente

Autenticação em Detalhes

O bexio usa OAuth 2.0, o padrão da indústria para autorização de API. Entender o sistema de autorização dual é crucial.

Dois Níveis de Autorização

Nível 1: Escopos da Aplicação Quando usuários conectam seu app, eles concedem permissões específicas (escopos). Solicite apenas o que você precisa—os usuários veem essas permissões na tela de consentimento.

Categorias de escopo disponíveis:

  • contact_show, contact_edit — Gestão de contatos
  • kb_invoice_show, kb_invoice_edit — Acesso a faturas
  • accounting_show — Leitura de dados contábeis
  • article_show, article_edit — Gestão de produtos

Nível 2: Direitos do Usuário Requisições da API executam com as permissões do usuário que autorizou a conexão. Se esse usuário não tem permissão para excluir faturas no bexio, sua API também não pode excluir faturas.

Fluxo OAuth 2.0

1. Seu app redireciona o usuário para:
   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. Usuário faz login e aprova permissões

3. bexio redireciona para sua URL com código de autorização

4. Troque o código por tokens em:
   https://auth.bexio.com/realms/bexio/protocol/openid-connect/token

5. Use o access token para requisições da API

Gestão de tokens:

  • Access tokens são de curta duração (tipicamente 1 hora)
  • Refresh tokens obtêm novos access tokens sem interação do usuário
  • Armazene refresh tokens com segurança e implemente refresh automático de tokens
Exemplos de Código

API bexio em Python & JavaScript

Trechos de código prontos para usar nos casos de uso mais comuns

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: Existem bibliotecas da comunidade para PHP e Python, mas cobrem apenas um subconjunto dos métodos da API. Para funcionalidade completa, chamadas HTTP diretas podem ser necessárias.

Limitações da API bexio
& Alternativas

Ser transparente sobre o que a API não pode fazer economiza horas de frustração. A API do bexio tem limitações—mas conhecê-las antecipadamente ajuda você a planejar melhor.

🔔

Sem Webhooks Nativos

Use polling ou Zapier como alternativas
🚦

Limites de Taxa Não Documentados

Implemente backoff e cache
🧪

Sem Ambiente Sandbox

Teste com dados reais cuidadosamente

Alternativas para Ausência de Webhooks

  • Polling: Verifique mudanças periodicamente (a cada 5-15 minutos)
  • Zapier: Usa polling mas cuida da infraestrutura
  • Serviços de webhook terceiros: Algumas plataformas de integração oferecem funcionalidade pseudo-webhook

Lidando com Limites de Taxa

Baseado na experiência da comunidade:

  • Implemente backoff exponencial em erros 429
  • Faça cache de respostas quando possível
  • Agrupe requisições quando a API suportar
  • Evite frequência de polling desnecessária

Bibliotecas de Cliente Limitadas

SDKs oficiais não existem. Bibliotecas da comunidade são incompletas. Para aplicações em produção, espere escrever código customizado.

Alternativa Mais Simples

Precisa Apenas Gerar Faturas Suíças via API?

A API bexio é poderosa, mas complexa—OAuth 2.0, escopos, gestão de tokens, sem sandbox. Se tudo que você precisa é gerar faturas QR suíças programaticamente, a API de Faturas Magic Heidi é uma opção drasticamente mais simples. Uma requisição POST. Uma chave de API. Um PDF de fatura com QR code suíço em retorno.

Lista de Faturas Magic Heidi

API de Faturas Magic Heidi

A API Magic Heidi Swiss Invoice QR Code é uma API aberta de endpoint único para gerar faturas suíças profissionais com boletos de pagamento QR. Sem OAuth, sem refresh de token, sem escopos—apenas uma chave de API e uma requisição POST.

Como Funciona

  1. Envie uma requisição POST com os dados da fatura (remetente, cliente, itens)
  2. Receba uma URL de download de PDF válida por 24 horas
  3. É isso—sem fluxo OAuth, sem registro em portal de desenvolvedor

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

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

Recursos Principais

  • Faturas QR suíças em conformidade com padrões de pagamento suíços
  • Multi-idioma: Inglês, Alemão, Francês, Italiano
  • CHF e EUR suporte a moedas
  • Gestão de IVA com taxas configuráveis e número de IVA
  • Logos personalizados via URL
  • Modo somente QR para gerar apenas o boleto de pagamento
  • Teste gratuito sem chave de API
  • Documentação aberta no GitHub
Comparação

API bexio vs. API de Faturas Magic Heidi

Escolha a ferramenta certa para o seu caso de uso

RecursoAPI Magic HeidiAPI bexio
Caso de UsoGeração de faturasSuíte empresarial completa
Autenticação Chave de API simplesFluxo OAuth 2.0
ConfiguraçãoApenas chave de APIPortal de desenvolvedor + app OAuth
Faturas QR Suíças Integrado Configuração manual
Sandbox / Teste Grátis Sim Não
Contatos & CRM Não Sim
Contabilidade Não Sim
Custo MínimoGrátis para testarCHF 45/mês
FAQ

Perguntas Frequentes

A API bexio é gratuita?

Sim, acesso à API está incluído em todos os planos pagos do bexio (a partir de CHF 45/mês).

Quais linguagens de programação funcionam com essas APIs?

Qualquer linguagem que possa fazer requisições HTTP—Python, JavaScript, PHP, C#, Ruby, Go, etc. Tanto a API bexio quanto a API Magic Heidi usam REST/JSON padrão.

Posso usar a API bexio sem programar?

Sim. Zapier e Make.com oferecem automação no-code com bexio.

O bexio suporta webhooks?

Não nativamente. Use polling ou Zapier como alternativas.

Qual é a diferença entre a API bexio e a API Magic Heidi?

A API bexio dá acesso a uma suíte empresarial completa (contatos, contabilidade, faturas, estoque). A API da Magic Heidi é focada em uma coisa: gerar faturas QR suíças com uma única chamada de API. Se você só precisa de geração programática de faturas, a Magic Heidi é muito mais simples.

Posso testar a API Magic Heidi gratuitamente?

Sim. Você pode enviar requisições sem chave de API para testes. O uso em produção requer uma chave de API—entre em contato pelo hello@magicheidi.ch.

Existe ambiente de teste/sandbox do bexio?

Não. Você deve testar com dados reais cuidadosamente.

Precisa de Faturamento Suíço Mais Simples?

Magic Heidi cuida de faturas QR, despesas e IVA—disponível em todas as plataformas. Use o app ou gere faturas via API.