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.

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 dadosFerramentas Desconectadas
Apps que não se comunicamCaos de Copiar e Colar
Pedidos inseridos manualmente na contabilidadeO 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ção | Capacidade da API |
|---|---|
| Contatos | Criar, atualizar, listar clientes e fornecedores |
| Faturas | Gerar, enviar, rastrear status de pagamento |
| Pedidos | Criar a partir de sistemas externos, atualizar status |
| Produtos | Sincronizar estoque, atualizar níveis de inventário |
| Contabilidade | Buscar contas, registrar transações |
| Projetos | Criar, 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:
- Atualize a URL de autorização na configuração do seu app
- Atualize a URL do endpoint de token
- Teste o fluxo OAuth completo
- Monitore a página de status do bexio em bexio-status.com para anúncios
Integração No-Code
Para Não-Desenvolvedores
Não quer escrever código? Você tem opções. O bexio conecta com mais de 8.000 apps só através do Zapier.
Integração Zapier
O caminho mais rápido para automação sem programação. Conecte-se a mais de 8.000 apps instantaneamente.
- Gatilhos de Empresa Nova/Atualizada
- Gatilhos de Pedido Novo/Atualizado
- Gatilhos de Novo Produto
- Gatilhos de Orçamento Novo/Atualizado
Make.com (Integromat)
Workflows multi-etapas mais complexos que o Zapier com lógica condicional.
- Diferentes modelos de fatura por tipo de cliente
- Roteamento condicional baseado no valor do pedido
- Construtor visual de workflows
- Transformações avançadas de dados
Pipedream
Construção visual de workflows com flexibilidade de código para desenvolvedores que querem ambos.
- Conectores bexio pré-construídos
- Etapas customizadas em JavaScript/Python
- Ponte entre no-code e desenvolvimento completo
- Processamento de eventos em tempo real
Automações Zapier Populares para Freelancers
- Shopify → bexio: Novo pedido cria fatura automaticamente
- Toggl → bexio: Entradas de tempo registradas sincronizam com projeto
- HubSpot → bexio: Novo contato no CRM cria contato no bexio
- Gmail → bexio: Anexo de email cria entrada de despesa
Começando com a API bexio
Tudo que você precisa saber para sua primeira integração
Pré-requisitos
- 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.
- Acesso ao Portal do Desenvolvedor: Visite o Portal do Desenvolvedor bexio e faça login com suas credenciais bexio.
Criando Credenciais da API
- Navegue até "My Apps" no portal do desenvolvedor
- Clique em "Create New App"
- Defina uma Redirect URL (necessária para o fluxo OAuth)
- 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 contatoskb_invoice_show,kb_invoice_edit— Acesso a faturasaccounting_show— Leitura de dados contábeisarticle_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
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.
E-Commerce
Shopify/Shopware → bexio: Gerar faturas automaticamente, sincronizar contatos, atualizar estoque
Rastreamento de Tempo
Toggl → bexio: Sincronizar tempo registrado com projetos, gerar faturas de entradas de tempo
CRM
HubSpot → bexio: Sincronizar negócios e contatos, faturar automaticamente ao fechar
Contabilidade
Feeds bancários → bexio: Conciliar pagamentos, rastrear despesas automaticamente
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 alternativasLimites de Taxa Não Documentados
Implemente backoff e cacheSem Ambiente Sandbox
Teste com dados reais cuidadosamenteAlternativas 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.
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.

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
- Envie uma requisição POST com os dados da fatura (remetente, cliente, itens)
- Receba uma URL de download de PDF válida por 24 horas
- É 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
API bexio vs. API de Faturas Magic Heidi
Escolha a ferramenta certa para o seu caso de uso
| Recurso | API Magic Heidi | API bexio |
|---|---|---|
| Caso de Uso | Geração de faturas | Suíte empresarial completa |
| Autenticação | ✓ Chave de API simples | Fluxo OAuth 2.0 |
| Configuração | Apenas chave de API | Portal 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ínimo | Grátis para testar | CHF 45/mês |
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.