Genera Fatture QR Svizzere con Una Sola Chiamata
Crea fatture QR svizzere conformi in pochi secondi. Una richiesta POST restituisce un PDF completo con bollettino di pagamento—pronto per i tuoi clienti. Nessuna API key necessaria per i test.

Costruisci le QR-Fatture da Solo? Ecco la Realtà.
Creare fatture QR svizzere manualmente spreca ore ogni mese. Sviluppare il proprio generatore significa navigare tra complesse normative SIX, requisiti di indirizzi strutturati e regole di validazione QR-IBAN.
La Tua Prima Fattura in 60 Secondi
Invia una richiesta POST per generare una fattura QR svizzera completa.
curl -X POST 'https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"language": "it",
"file_name": "fattura-001.pdf",
"invoice_number": 1,
"invoice_date": "15/01/2025",
"user_details": {
"name": "La Tua Azienda Sagl",
"address": "Via Nassa 10",
"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": 8,
"unit_price": 150.00
}
]
}
}'
La risposta contiene un URL al PDF generato:
{
"result": "https://storage.googleapis.com/.../fattura-001.pdf"
}
Tutto qui. Una fattura svizzera completa e conforme con bollettino QR.
Perché Usare un'API per le QR-Fatture Svizzere?
Da ottobre 2022, le QR-fatture svizzere hanno sostituito tutti i bollettini di pagamento tradizionali. Ogni fattura per clienti svizzeri richiede ora un codice QR standardizzato contenente i dati di pagamento. Svilupparlo internamente significa settimane di lavoro e manutenzione continua al variare delle normative.
Piena conformità da novembre 2025
Analizzati e formattati automaticamente
CHF/EUR da 0.01 a 999'999'999.99
Solo Svizzera e Liechtenstein
Documentazione Completa
Hosting a Zurigo (europe-west6) per latenza ottimale e residenza dati in Svizzera.
Endpoint
POST https://europe-west6-magic-heidi.cloudfunctions.net/create_invoice_abstract_v1d
Parametri Obbligatori
| Parametro | Tipo | Descrizione |
|---|---|---|
file_name | string | Nome file PDF di output |
invoice_number | integer | Numero di riferimento fattura |
invoice_date | string | Data in formato GG/MM/AAAA |
user_details | object | Dati della tua azienda |
customer_details | object | Dati del destinatario |
invoice_items | array | Voci della fattura |
Oggetto user_details:
{
"name": "Nome Azienda",
"address": "Via e numero",
"zip": "6900",
"city": "Lugano",
"iban": "CH93 0076 2011 6238 5295 7"
}
Oggetto customer_details:
{
"name": "Nome Cliente",
"address": "Via e numero",
"zip": "6600",
"city": "Locarno"
}
Array invoice_items:
[
{
"description": "Descrizione servizio",
"quantity": 1.5,
"unit_price": 100.00
}
]
Parametri Opzionali e IVA
Personalizza le tue fatture con queste opzioni aggiuntive.
Parametri Opzionali
Configura l'output della fattura con queste impostazioni.
- language: de, fr, it, en (default: en)
- currency: CHF o EUR (default: CHF)
- logo_url: URL del logo aziendale
- qr_reference: Riferimento pagamento per bollettino QR
- message: Messaggio aggiuntivo (max 140 caratteri)
- qr_only: Genera solo bollettino QR, non fattura completa
- dont_round: Salta arrotondamento ai 5 centesimi
Parametri IVA
Per aziende con partita IVA, abilita il calcolo delle imposte.
- vat_enabled: Imposta true per abilitare l'IVA
- vat_percentage: Aliquota decimale (es. 0.081)
- vat_number: Numero IVA CHE
- Aliquota standard 2024: 8.1% (0.081)
- Aliquota ridotta: 2.6% (0.026) per alimenti, libri
Tipi di Riferimento QR
Scegli il tipo di riferimento adatto alle tue esigenze.
- QR-Reference (QRR): 27 cifre, richiede QR-IBAN
- Creditor Reference (SCOR): ISO 11649, inizia con RF
- Senza Riferimento (NON): Fatture semplici
- QR-IBAN: Codici banca 30000-31999
Integrazione nel Tuo Linguaggio
Esempi di codice pronti all'uso per i linguaggi più diffusi.
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'];
Codici Risposta e Validazione
L'API restituisce codici HTTP standard per una gestione errori semplificata.
200 OK
{
"result": "https://storage.googleapis.com/.../fattura.pdf"
}
422 Unprocessable Entity
{
"error": "Provided IBAN is invalid"
}
Errori di validazione comuni:
- Formato o checksum IBAN non valido
- Parametri obbligatori mancanti
- Formato data non valido (deve essere GG/MM/AAAA)
- Importo fuori range valido
500 Internal Server Error
Questi errori sono monitorati internamente. Se ne riscontri uno, scrivi a hello@magicheidi.ch indicando il timestamp per la risoluzione.
Aggiornamenti Conformità Automatici
Dal 22 novembre 2025, le Linee Guida SIX versione 2.3 richiedono esclusivamente indirizzi strutturati. Tutti gli indirizzi devono includere via, numero civico, CAP, città e paese. L'API di Magic Heidi gestisce tutto automaticamente—quando fornisci un indirizzo come 'Via Nassa 10', lo analizziamo e strutturiamo correttamente per il codice QR.

Domande Frequenti
Ho bisogno di un QR-IBAN?
Solo se vuoi usare numeri QR-Reference (QRR). Per Creditor Reference (SCOR) o senza riferimento, un normale IBAN svizzero va benissimo. Controlla le posizioni 5-9 del tuo IBAN—se il numero è tra 30000 e 31999, è un QR-IBAN.
Posso generare fatture in Euro?
Sì. Imposta "currency": "EUR" nella richiesta. Sia CHF che EUR sono supportati secondo le specifiche QR-fattura svizzera.
Funziona per clienti internazionali?
Lo standard QR-fattura supporta solo IBAN svizzeri e del Liechtenstein. Per fatture internazionali, serve un conto bancario svizzero.
Posso generare solo il bollettino QR?
Sì. Imposta "qr_only": true per ricevere solo il bollettino QR senza il documento fattura completo.
Come aggiungo il logo aziendale?
Includi il parametro logo_url con un URL pubblicamente accessibile alla tua immagine logo. Consigliamo formato PNG o SVG.
C'è un limite di richieste?
Per i test senza API key, ci aspettiamo un uso ragionevole. Per applicazioni in produzione, contatta hello@magicheidi.ch per richiedere una API key con limiti definiti.
Cosa Rende Questa API Diversa
Costruita specificamente per i requisiti di fatturazione svizzeri.
Fatture Complete
Fatture professionali complete, non solo codici QR
Quattro Lingue
Tedesco, francese, italiano e inglese
Branding Personalizzato
Aggiungi il tuo logo senza manipolare PDF
Test Gratuiti
Nessuna carta di credito o API key richiesta
Hosting Svizzero
I dati restano a Zurigo (europe-west6)
Sempre Conforme
Aggiornamenti automatici al variare delle normative
Inizia a Generare Fatture Oggi
Testa l'API con gli esempi di codice sopra—nessuna autenticazione necessaria. Richiedi una API key per l'uso in produzione.
Inizia Subito
- Testa l'API con gli esempi di codice sopra—nessuna autenticazione necessaria
- Integra nella tua applicazione usando il linguaggio che preferisci
- Richiedi una API key a hello@magicheidi.ch per l'uso in produzione
Per la documentazione API completa e gli aggiornamenti, visita il nostro repository GitHub.
Domande? Scrivi a hello@magicheidi.ch. Rispondiamo solitamente entro 24 ore.
Magic Heidi è una piattaforma di fatturazione svizzera pensata per liberi professionisti e piccole imprese. Disponibile su iOS, Android, Mac, Windows e web.