Invovate ← Torna al Generatore di Fatture

API Generatore di Fatture

Genera fatture PDF professionali in modo programmatico tramite una semplice API REST

v1.0

Panoramica

L'API di fatturazione Invovate consente agli sviluppatori di generare fatture professionali con una singola chiamata HTTP POST. Puoi scegliere tra una risposta JSON strutturata con tutti i calcoli o un download PDF diretto. L'API supporta 11 lingue, oltre 20 valute e 5 template di design — ideale per liberi professionisti, aziende SaaS e applicazioni contabili italiane.

Gratuito per iniziare

40 richieste/ora, nessuna carta di credito

JSON o PDF

Scegli il tuo formato di output

Calcolo IVA

Per riga o globale (22%/10%/4%)

Multilingue

it, en, fr, de, es e altro

URL base:
https://invovate.com/api

Avvio Rapido

La tua prima fattura in tre passaggi:

Passo 1 — Crea un account
Registrati gratuitamente su invovate.com e verifica il tuo indirizzo e-mail.
Passo 2 — Ottieni la chiave API
Accedi al pannello e clicca su "Genera chiave API". La tua chiave inizia con inv_.
Passo 3 — Prima chiamata
curl -X POST https://invovate.com/api/generate-invoice \ -H "Content-Type: application/json" \ -H "Authorization: Bearer inv_tuaChiaveApi" \ -d '{ "from": {"name": "La Mia Azienda Srl"}, "to": {"name": "Cliente SpA"}, "items": [{"description": "Sviluppo web", "quantity": 1, "unit_price": 3000, "tax_rate": 22}], "invoice": {"currency": "EUR", "language": "it"} }'

Autenticazione

L'API supporta tre metodi di autenticazione:

1. Chiave API (consigliato lato server)

Authorization: Bearer inv_tuaChiaveApiQui

2. Cookie di sessione (per applicazioni web)

Se sei autenticato tramite browser, il cookie inv_session viene inviato automaticamente.

3. Anonimo (senza autenticazione)

Le chiamate senza autenticazione sono possibili ma limitate all'output JSON e con rate limit per IP. Utile per testare l'API.

Sicurezza: Non includere mai la chiave API nel codice lato client né salvarla in un repository Git. Usa variabili d'ambiente sul tuo server.

Limiti e Piani

PianoPrezzoAll'oraA settimana
Gratuito0 €40400
Starter9 €/mese2004.000
Pro29 €/mese1.00040.000
EnterpriseSu richiestaIllimitatoIllimitato

I limiti vengono restituiti negli header di risposta:

X-RateLimit-Limit-Hourly: 40 X-RateLimit-Remaining-Hourly: 39 X-RateLimit-Reset-Hourly: 1712123456 X-RateLimit-Limit-Weekly: 400 X-RateLimit-Remaining-Weekly: 399 X-RateLimit-Reset-Weekly: 1712345678

Genera Fattura

POST
/api/generate-invoice

Genera una fattura e restituisce un JSON con tutti i calcoli oppure un file PDF binario.

Formato Richiesta

Mittente (from)

CampoTipoObbligatorioDescrizione
from.namestringNome della tua azienda
from.addressstringNoIndirizzo della tua azienda
from.emailstringNoIl tuo indirizzo e-mail
from.tax_idstringNoPartita IVA (es. IT12345678901)

Destinatario (to)

CampoTipoObbligatorioDescrizione
to.namestringNome del cliente o dell'azienda
to.addressstringNoIndirizzo del cliente
to.emailstringNoE-mail del cliente

Dati fattura (invoice)

CampoTipoPredefinitoDescrizione
invoice.numberstringAutoNumero fattura
invoice.datestringOggiData di emissione (AAAA-MM-GG)
invoice.due_datestringData di scadenza (AAAA-MM-GG)
invoice.currencystringUSDCodice valuta (es. EUR)
invoice.languagestringenCodice lingua (es. it)
invoice.termsstringCondizioni di pagamento
invoice.po_numberstringNumero ordine d'acquisto

Righe (items array)

CampoTipoObbligatorioDescrizione
descriptionstringDescrizione del prodotto o servizio
quantitynumberQuantità
unit_pricenumberPrezzo unitario (IVA esclusa)
discountnumberNoSconto (percentuale o importo)
discount_typestringpercent"percent" o "amount"
tax_ratenumberNoAliquota IVA per riga (es. 22)

Altri campi

CampoTipoDescrizione
global_taxnumberIVA globale (applicata se nessuna aliquota per riga)
global_discountnumberSconto sul totale
global_discount_typestring"percent" o "amount"
amount_paidnumberImporto già pagato (per pagamento parziale)
notesstringNote in fondo alla fattura
refund_policystringPolitica di rimborso
templatestringNome template: classic, modern, bold, minimal, navy
outputstring"json" (predefinito) o "pdf"

Formato Risposta

Risposta JSON (output: "json")

{ "success": true, "invoice": { "number": "FT-2026-042", "date": "2026-04-03", "due_date": "2026-05-03", "currency": "EUR", "language": "it", "template": "classic", "from": { "name": "La Mia Azienda Srl", "tax_id": "IT12345678901" }, "to": { "name": "Cliente SpA" }, "items": [ { "description": "Sviluppo web", "quantity": 1, "unit_price": 3000, "discount": 0, "tax_rate": 22, "tax_amount": 660.00, "line_total": 3660.00 } ], "subtotal": 3000.00, "total_tax": 660.00, "grand_total": 3660.00, "amount_paid": 0, "balance_due": 3660.00, "notes": "Grazie per la fiducia accordata." }, "meta": { "processing_ms": 11, "credits_remaining": { "hourly": 39, "weekly": 399 } } }

Risposta PDF (output: "pdf")

Restituisce un file PDF binario con i seguenti header:

Content-Type: application/pdf Content-Disposition: attachment; filename="fattura.pdf"

Codici di Errore

{ "success": false, "error": { "message": "E' richiesto almeno un articolo" } }
Stato HTTPSignificato
400Errore di validazione — controlla il formato della richiesta
401Autenticazione richiesta o chiave API non valida
403Indirizzo e-mail non verificato
429Limite di velocità superato
500Errore interno del server

Endpoint di Autenticazione

MetodoPercorsoDescrizione
POST/api/auth/registerCrea account con e-mail e password
POST/api/auth/loginAccedi, restituisce cookie di sessione
POST/api/auth/logoutDisconnetti
GET/api/auth/meOttieni dati utente e chiave API correnti
POST/api/auth/generate-api-keyGenera nuova chiave API (e-mail verificata richiesta)

Esempi di Codice

cURL — Fattura PDF con IVA italiana

curl -X POST https://invovate.com/api/generate-invoice \ -H "Content-Type: application/json" \ -H "Authorization: Bearer inv_tuaChiaveApi" \ -d '{ "from": { "name": "Studio Digitale Roma Srl", "address": "Via del Corso 100, 00186 Roma", "tax_id": "IT12345678901", "email": "fatturazione@studio.it" }, "to": { "name": "Cliente SpA", "address": "Via Montenapoleone 5, 20121 Milano", "email": "contabilita@cliente.it" }, "invoice": { "number": "FT-2026-042", "date": "2026-04-03", "due_date": "2026-05-03", "currency": "EUR", "language": "it", "terms": "30 giorni netti" }, "items": [ {"description": "Progettazione sito web", "quantity": 1, "unit_price": 3500, "tax_rate": 22}, {"description": "Consulenza SEO", "quantity": 8, "unit_price": 150, "tax_rate": 22} ], "notes": "Grazie per la fiducia accordata.", "template": "navy", "output": "pdf" }' --output fattura.pdf

JavaScript (Node.js)

// Generare fattura con l'API Invovate const response = await fetch('https://invovate.com/api/generate-invoice', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer inv_tuaChiaveApi' }, body: JSON.stringify({ from: { name: 'La Mia Azienda Srl', tax_id: 'IT12345678901' }, to: { name: 'Cliente SpA', email: 'cliente@esempio.it' }, invoice: { number: 'FT-001', currency: 'EUR', language: 'it', due_date: '2026-05-03' }, items: [{ description: 'Consulenza', quantity: 10, unit_price: 100, tax_rate: 22 }], output: 'json' }) }); const data = await response.json(); if (data.success) { console.log('Totale (IVA inclusa):', data.invoice.grand_total, 'EUR'); }

Python

import requests API_KEY = "inv_tuaChiaveApi" URL = "https://invovate.com/api/generate-invoice" fattura = { "from": { "name": "Freelance Milano", "tax_id": "IT12345678901" }, "to": { "name": "Azienda Cliente SpA", "address": "Via Veneto 10, 00187 Roma" }, "invoice": { "number": "FT-2026-001", "currency": "EUR", "language": "it", "terms": "30 giorni netti" }, "items": [ {"description": "Design grafico", "quantity": 1, "unit_price": 1500, "tax_rate": 22}, {"description": "Illustrazioni", "quantity": 4, "unit_price": 200, "tax_rate": 22} ], "output": "pdf" } response = requests.post(URL, json=fattura, headers={"Authorization": f"Bearer {API_KEY}"}) if response.status_code == 200: with open("fattura.pdf", "wb") as f: f.write(response.content) print("Fattura salvata: fattura.pdf") else: print(f"Errore: {response.json()['error']['message']}")

Lingue Supportate

CodiceLinguaDirezione
itItalianoLTR
enIngleseLTR
deTedescoLTR
frFranceseLTR
nlOlandeseLTR
esSpagnoloLTR
ptPortogheseLTR
ruRussoLTR
hiHindiLTR
jaGiapponeseLTR
arAraboRTL

Template PDF

NomeStile
classicAccento blu, righe grigie alternate (predefinito)
modernTeal/ciano, design moderno pulito
boldIntestazione antracite scura, alto contrasto
minimalGrigio chiaro, senza bordi
navyIntestazione blu navy con linea oro

Valute Supportate

EUR, USD, GBP, JPY, CAD, AUD, CHF, CNY, INR, AED, SAR, SGD, NZD, KRW, BRL, MXN, ZAR, SEK, NOK, DKK