Gere Faturas QR-Bill Suíças com Uma Chamada API
Crie faturas QR-bill suíças em conformidade em segundos. Uma requisição POST retorna um PDF completo com boleto de pagamento—pronto para seus clientes. Sem necessidade de chave API para começar a testar.

Criando QR-Bills Manualmente? Veja a Realidade.
Criar faturas QR-bill suíças manualmente desperdiça horas todo mês. Construir seu próprio gerador significa navegar por regulamentos SIX complexos, requisitos de endereços estruturados e regras de validação QR-IBAN.
Sua Primeira Fatura em 60 Segundos
Envie uma requisição POST para gerar uma fatura QR-bill suíça completa.
curl -X POST 'https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"language": "en",
"file_name": "invoice-001.pdf",
"invoice_number": 1,
"invoice_date": "15/01/2025",
"user_details": {
"name": "Your Company GmbH",
"address": "Bahnhofstrasse 10",
"zip": "8001",
"city": "Zürich",
"iban": "CH93 0076 2011 6238 5295 7"
},
"customer_details": {
"name": "Customer AG",
"address": "Rue du Marché 5",
"zip": "1204",
"city": "Genève"
},
"invoice_items": [
{
"description": "Consulting services",
"quantity": 8,
"unit_price": 150.00
}
]
}
}'
A resposta contém uma URL para o PDF gerado:
{
"result": "https://storage.googleapis.com/.../invoice-001.pdf"
}
Pronto. Uma fatura suíça completa e em conformidade com boleto de pagamento QR.
Por Que Usar uma API para QR-Bills Suíços?
Desde outubro de 2022, os QR-bills suíços substituíram todos os boletos de pagamento antigos. Toda fatura para clientes suíços agora requer um código QR padronizado contendo dados de pagamento. Construir isso você mesmo significa semanas de desenvolvimento e manutenção contínua conforme os regulamentos mudam.
Conformidade total desde novembro 2025
Analisados e formatados automaticamente
CHF/EUR 0.01 a 999.999.999,99
Apenas Suíça e Liechtenstein
Documentação Completa
Hospedado em Zurique (europe-west6) para latência otimizada na Suíça e residência de dados.
Endpoint
POST https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d
Parâmetros Obrigatórios
| Parâmetro | Tipo | Descrição |
|---|---|---|
file_name | string | Nome do arquivo PDF de saída |
invoice_number | integer | Número de referência da fatura |
invoice_date | string | Data no formato DD/MM/YYYY |
user_details | object | Dados da sua empresa |
customer_details | object | Dados do destinatário |
invoice_items | array | Itens da fatura |
objeto user_details:
{
"name": "Company Name",
"address": "Street and number",
"zip": "8001",
"city": "Zürich",
"iban": "CH93 0076 2011 6238 5295 7"
}
objeto customer_details:
{
"name": "Customer Name",
"address": "Street and number",
"zip": "1204",
"city": "Genève"
}
array invoice_items:
[
{
"description": "Service description",
"quantity": 1.5,
"unit_price": 100.00
}
]
Parâmetros Opcionais e de IVA
Personalize suas faturas com estas opções adicionais.
Parâmetros Opcionais
Ajuste a saída da sua fatura com estas configurações.
- language: de, fr, it, en (padrão: en)
- currency: CHF ou EUR (padrão: CHF)
- logo_url: URL do logo da sua empresa
- qr_reference: Referência de pagamento para o QR
- message: Mensagem adicional (máx 140 caracteres)
- qr_only: Gerar apenas o boleto QR, não a fatura completa
- dont_round: Pular arredondamento para 5 cêntimos
Parâmetros de IVA
Para empresas registradas no IVA, habilite cálculos de impostos.
- vat_enabled: Defina como true para habilitar IVA
- vat_percentage: Taxa como decimal (ex: 0.081)
- vat_number: Seu número de IVA CHE
- Taxa padrão 2024: 8.1% (0.081)
- Taxa reduzida: 2.6% (0.026) para alimentos, livros
Tipos de Referência QR
Escolha o tipo de referência certo para suas necessidades.
- QR-Reference (QRR): 27 dígitos, requer QR-IBAN
- Creditor Reference (SCOR): ISO 11649, começa com RF
- No Reference (NON): Faturas simples
- QR-IBAN: Códigos bancários 30000-31999
Integração na Sua Linguagem
Exemplos de código prontos para uso nas linguagens de programação mais populares.
Python
import requests
import json
url = "https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d"
payload = {
"data": {
"language": "de",
"currency": "CHF",
"file_name": "rechnung-2025-001.pdf",
"invoice_number": 1,
"invoice_date": "15/01/2025",
"vat_enabled": True,
"vat_percentage": 0.081,
"vat_number": "CHE-123.456.789",
"user_details": {
"name": "Muster GmbH",
"address": "Bahnhofstrasse 10",
"zip": "8001",
"city": "Zürich",
"iban": "CH93 0076 2011 6238 5295 7"
},
"customer_details": {
"name": "Kunde AG",
"address": "Hauptstrasse 1",
"zip": "3000",
"city": "Bern"
},
"invoice_items": [
{
"description": "Beratungsleistungen Januar 2025",
"quantity": 10,
"unit_price": 180.00
},
{
"description": "Reisekosten",
"quantity": 1,
"unit_price": 45.50
}
]
}
}
response = requests.post(url, json=payload)
result = response.json()
print(f"Invoice URL: {result['result']}")
Node.js (Axios)
const axios = require('axios');
const url = 'https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d';
const payload = {
data: {
language: 'fr',
currency: 'CHF',
file_name: 'facture-2025-001.pdf',
invoice_number: 1,
invoice_date: '15/01/2025',
logo_url: 'https://your-domain.ch/logo.png',
user_details: {
name: 'Votre Entreprise Sàrl',
address: 'Rue du Lac 15',
zip: '1003',
city: 'Lausanne',
iban: 'CH93 0076 2011 6238 5295 7'
},
customer_details: {
name: 'Client SA',
address: 'Avenue de la Gare 8',
zip: '1201',
city: 'Genève'
},
invoice_items: [
{
description: 'Services de développement',
quantity: 40,
unit_price: 120.00
}
]
}
};
axios.post(url, payload)
.then(response => {
console.log('Invoice URL:', response.data.result);
})
.catch(error => {
console.error('Error:', error.response?.data || error.message);
});
PHP (cURL)
<?php
$url = 'https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d';
$payload = [
'data' => [
'language' => 'it',
'file_name' => 'fattura-2025-001.pdf',
'invoice_number' => 1,
'invoice_date' => '15/01/2025',
'user_details' => [
'name' => 'La Tua Azienda Sagl',
'address' => 'Via Nassa 20',
'zip' => '6900',
'city' => 'Lugano',
'iban' => 'CH93 0076 2011 6238 5295 7'
],
'customer_details' => [
'name' => 'Cliente SA',
'address' => 'Piazza Grande 5',
'zip' => '6600',
'city' => 'Locarno'
],
'invoice_items' => [
[
'description' => 'Servizi di consulenza',
'quantity' => 5,
'unit_price' => 200.00
]
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo "Invoice URL: " . $result['result'];
Códigos de Resposta e Validação
A API retorna códigos de status HTTP padrão para fácil tratamento de erros.
200 OK
{
"result": "https://storage.googleapis.com/.../invoice.pdf"
}
422 Unprocessable Entity
{
"error": "Provided IBAN is invalid"
}
Erros de validação comuns:
- Formato ou checksum de IBAN inválido
- Parâmetros obrigatórios ausentes
- Formato de data inválido (deve ser DD/MM/YYYY)
- Valor fora do intervalo válido
500 Internal Server Error
Estes são monitorados internamente. Se você encontrar um, envie email para hello@magicheidi.ch com o timestamp para resolução de problemas.
Atualizações Automáticas de Conformidade
Desde 22 de novembro de 2025, as Diretrizes de Implementação SIX versão 2.3 exigem apenas endereços estruturados. Todos os endereços devem incluir nome da rua, número, código postal, cidade e país. A API da Magic Heidi trata isso automaticamente—quando você fornece um endereço como 'Bahnhofstrasse 10', nós analisamos e estruturamos corretamente para o código QR.

Perguntas Frequentes
Preciso de um QR-IBAN?
Apenas se você quiser usar números de QR-Reference (QRR). Para Creditor References (SCOR) ou sem referência, um IBAN suíço comum funciona bem. Verifique as posições 5-9 do seu IBAN—se o número estiver entre 30000 e 31999, é um QR-IBAN.
Posso gerar faturas em Euros?
Sim. Defina "currency": "EUR" na sua requisição. Tanto CHF quanto EUR são suportados conforme as especificações do QR-bill suíço.
Isso funciona para clientes internacionais?
O padrão QR-bill suporta apenas IBANs da Suíça e Liechtenstein. Para faturas internacionais, você precisará de uma conta bancária suíça.
Posso gerar apenas o boleto de pagamento QR?
Sim. Defina "qr_only": true para receber apenas o boleto de pagamento QR sem o documento de fatura completo.
Como adiciono o logo da minha empresa?
Inclua um parâmetro logo_url com uma URL publicamente acessível para a imagem do seu logo. Recomendamos formato PNG ou SVG.
Existe limite de requisições?
Para testes sem chave API, espera-se uso razoável. Para aplicações em produção, contate hello@magicheidi.ch para solicitar uma chave API com limites definidos.
O Que Torna Esta API Diferente
Construída especificamente para requisitos de faturamento suíço.
Faturas Completas
Faturas profissionais completas, não apenas códigos QR
Quatro Idiomas
Alemão, francês, italiano e inglês
Marca Personalizada
Adicione seu logo sem manipulação complexa de PDF
Testes Gratuitos
Sem cartão de crédito ou chave API necessários
Hospedado na Suíça
Dados permanecem em Zurique (europe-west6)
Sempre Conforme
Atualizações automáticas quando regulamentos mudam
Comece a Gerar Faturas Hoje
Teste a API com os exemplos de código acima—sem autenticação necessária. Solicite uma chave API para uso em produção.
Comece Agora
- Teste a API com os exemplos de código acima—sem autenticação necessária
- Integre na sua aplicação usando sua linguagem preferida
- Solicite uma chave API em hello@magicheidi.ch para uso em produção
Para a documentação completa da API e atualizações, visite nosso repositório GitHub.
Dúvidas? Entre em contato pelo hello@magicheidi.ch. Normalmente respondemos em 24 horas.
Magic Heidi é uma plataforma de faturamento suíça criada para freelancers e pequenas empresas. Disponível para iOS, Android, Mac, Windows e web.