fattura.dev

Documentazione

Fattura.dev è il modo più semplice per inviare fatture elettroniche dai pagamenti Stripe. Trasforma ogni pagamento in una fattura in formato FatturaPA e la trasmette al Sistema di Interscambio (SdI) dell'Agenzia delle Entrate. Non c'è codice da scrivere: colleghi Stripe, inserisci la partita IVA e da quel momento è automatico.

Avvio rapido

  1. Crea l'account su fattura.dev/accedi con Google o con la tua email.
  2. Collega Stripe. Con un clic dove disponibile, oppure incollando una chiave API con restrizioni (sola lettura, più la creazione del webhook).
  3. Inserisci la partita IVA. Denominazione e indirizzo vengono letti dal registro IVA europeo (VIES); scegli il regime fiscale e salva.

Le prime 10 fatture sono gratuite e non serve la carta.

Quali incassi diventano un documento

Evento Stripe Cosa emettiamo
invoice.paid (Billing, abbonamenti, fatture Stripe) Fattura TD01
checkout.session.completed in modalità payment Fattura TD01
charge.succeeded senza Checkout né fattura Stripe (PaymentIntent diretto) Fattura TD01
charge.refunded Nota di credito TD04 per l'importo rimborsato
credit_note.created (parte non rimborsata tramite Stripe) Nota di credito TD04

Ogni oggetto Stripe produce al massimo un documento: se Stripe riconsegna lo stesso evento non succede nulla. La data della fattura è il giorno dell'incasso, nel fuso orario italiano, e l'invio parte subito, ben dentro i 12 giorni previsti per la fattura immediata.

I dati del cliente: dove li leggiamo

Per ogni dato usiamo il primo valore che troviamo, in quest'ordine: correzioni che hai inserito nella dashboard, dati dell'evento (fattura Stripe o sessione di Checkout), oggetto Customer.

Dato in fattura Dove lo leggiamo su Stripe
Denominazione business_name, poi name
Partita IVA Tax ID di tipo eu_vat (o altro *_vat); in alternativa metadata partita_iva
Codice fiscale Tax ID di tipo it_cf; in alternativa campo personalizzato o metadata codice_fiscale
Indirizzo, CAP, comune, provincia, paese Indirizzo di fatturazione (address)
Codice destinatario Campo personalizzato o metadata codice_destinatario (anche sdi)
PEC Campo personalizzato o metadata pec

I nomi di campi e metadata non distinguono maiuscole, spazi e trattini bassi: Codice Fiscale, codice_fiscale e codicefiscale sono equivalenti.

Se il codice destinatario manca usiamo 0000000: la fattura è valida e il cliente la trova nella propria area riservata dell'Agenzia delle Entrate. Per i clienti esteri usiamo XXXXXXX.

Checkout: raccogli i dati giusti

Tre opzioni nella creazione della sessione bastano a raccogliere tutto ciò che serve:

const session = await stripe.checkout.sessions.create({
  mode: "payment",
  line_items: [{ price: "price_123", quantity: 1 }],

  // Indirizzo di fatturazione: obbligatorio in ogni fattura.
  billing_address_collection: "required",

  // Partita IVA per i clienti con partita IVA.
  tax_id_collection: { enabled: true },

  // Codice fiscale per i privati che vogliono la fattura; codice destinatario per le aziende.
  custom_fields: [
    {
      key: "codice_fiscale",
      label: { type: "custom", custom: "Codice fiscale (se vuoi la fattura)" },
      type: "text",
      optional: true,
    },
    {
      key: "codice_destinatario",
      label: { type: "custom", custom: "Codice destinatario SdI" },
      type: "text",
      optional: true,
    },
  ],

  success_url: "https://esempio.it/grazie",
});

Con Stripe Billing o con le fatture Stripe, salva gli stessi dati sul Customer: indirizzo, Tax ID e, se servono, i metadata codice_fiscale e codice_destinatario.

Se a un incasso mancano dati obbligatori, il documento resta in stato Mancano dati: ti avvisiamo per email, completi i campi nella dashboard e parte. La correzione viene ricordata per i prossimi incassi dello stesso cliente.

Clienti privati

Per le vendite online a privati la fattura non è obbligatoria, se non è richiesta dal cliente al più tardi al momento dell'acquisto. Per questo l'impostazione predefinita è: emettiamo la fattura ai privati solo se forniscono il codice fiscale. Gli altri incassi da privati compaiono in dashboard come Non emessa.

Puoi scegliere invece di fatturare sempre: in quel caso gli incassi da privati senza codice fiscale restano in attesa finché non lo inserisci. La certificazione dei corrispettivi per le vendite non fatturate resta a tuo carico: chiedi al tuo commercialista quale regime si applica alla tua attività.

IVA: le regole applicate

L'importo incassato su Stripe è sempre il totale della fattura. Da quel totale scorporiamo l'IVA.

Venditore Cliente Trattamento
Ordinario Italia IVA all'aliquota indicata da Stripe (Stripe Tax o tax rate); se Stripe non la indica, la tua aliquota predefinita (22%)
Ordinario Azienda UE con partita IVA, servizi Natura N2.1, dicitura «Inversione contabile»
Ordinario Azienda UE con partita IVA, beni Natura N3.2, non imponibile
Ordinario Privato UE, senza IVA estera applicata da Stripe IVA italiana
Ordinario Privato UE, con IVA del paese di destinazione (OSS) Nessuna fattura elettronica: documento Non emessa
Ordinario Extra UE, servizi Natura N2.1, dicitura «Operazione non soggetta»
Ordinario Extra UE, beni Natura N3.1, non imponibile
Forfettario Italia e privati esteri Natura N2.2 con la dicitura di legge del regime forfettario
Forfettario Azienda estera con partita IVA, servizi Natura N2.1

Quello che non sappiamo decidere con certezza non lo indoviniamo: ad esempio una vendita italiana a cui Stripe ha applicato IVA 0% resta in attesa di una tua verifica.

Imposta di bollo

Sulle fatture senza IVA (nature N2.1, N2.2, N4) di importo superiore a 77,47 € indichiamo il bollo virtuale da 2 €. Il bollo non viene addebitato al cliente: resta a tuo carico e lo versi ogni trimestre dal portale Fatture e Corrispettivi dell'Agenzia delle Entrate, che lo calcola da solo.

Rimborsi e note di credito

Quando rimborsi un pagamento su Stripe, anche in parte, emettiamo una nota di credito TD04 collegata alla fattura originale, con le stesse aliquote in proporzione. Se la fattura originale non era stata emessa, non emettiamo nemmeno la nota di credito.

Numerazione

Le fatture emesse da Fattura.dev usano una serie dedicata, con un prefisso che scegli tu, così non si sovrappone a quella delle fatture che emetti altrove:

FD-2026-00001
FD-2026-00002

La numerazione è progressiva, senza buchi e riparte da 1 ogni anno. Il numero della fattura Stripe, quando esiste, è riportato nella causale.

Stati di un documento

Stato Significato
Inviata Trasmessa, in attesa della ricevuta del Sistema di Interscambio
Consegnata Recapitata al cliente
Emessa, non recapitata Valida, ma lo SdI non è riuscito a recapitarla: avvisa il cliente che la trova nella sua area riservata e mandagli una copia
Scartata Non accettata: si considera non emessa. Correggila e reinviala entro 5 giorni, manterrà numero e data
Mancano dati Servono dati del cliente o tuoi
Non emessa Per questa vendita non serve una fattura elettronica
Prova Pagamento in modalità test: XML generato, non trasmesso

Modalità test

Collega una chiave rk_test_… (o un account in sandbox) e fai un pagamento di prova: il documento compare in dashboard in stato Prova, con l'XML scaricabile, ma non viene trasmesso. Così controlli il risultato prima di andare in produzione.

Conservazione

La conservazione a norma delle fatture non è inclusa. Puoi usare il servizio gratuito dell'Agenzia delle Entrate: accedi a Fatture e Corrispettivi, apri Fatturazione elettronica e conservazione e aderisci all'accordo di servizio. L'adesione va fatta da te, una volta sola.

Dalla dashboard puoi scaricare l'XML di ogni documento, e puoi indicare l'email del commercialista per fargli arrivare ogni XML appena trasmesso.

Chi è responsabile

Fattura.dev genera e trasmette le fatture su tuo incarico, tramite un intermediario accreditato presso lo SdI. Il soggetto che emette la fattura resti tu, e resti responsabile del suo contenuto. Fattura.dev tratta i dati dei tuoi clienti come responsabile del trattamento, secondo l'accordo sul trattamento dei dati.

Limiti attuali

  • Solo incassi in euro.
  • Niente fatture verso la Pubblica Amministrazione (formato FPA12).
  • Niente fatture per le vendite a privati UE in regime OSS.
  • Niente autofatture TD17 per le commissioni di Stripe.
  • Nessuna ritenuta d'acconto né cassa previdenziale.

Usarlo da Claude o ChatGPT

Fattura.dev ha un connettore per gli assistenti AI. Una volta collegato, puoi chiedere in chat cose come «quante fatture ho inviato questo mese?», «quali fatture sono in sospeso e perché?» oppure «completa la fattura di Mario Rossi con questo codice fiscale e inviala».

Indirizzo del connettore:

https://fattura.dev/api/mcp

Aggiungilo come connettore personalizzato in Claude o in ChatGPT e accedi con il tuo account Fattura.dev quando ti viene chiesto. In Claude Code:

claude mcp add --transport http fattura https://fattura.dev/api/mcp

L'assistente può vedere fatture, stato e riepilogo del mese, scaricare l'XML, e completare i dati di una fattura in sospeso per inviarla quando glielo chiedi tu. Non può vedere né modificare le credenziali di Stripe o l'abbonamento.

Configurare con un assistente AI

Se usi Claude Code, Cursor o un altro assistente, incolla questo prompt nel tuo progetto:

Il mio progetto incassa con Stripe e uso Fattura.dev (https://fattura.dev/docs) per
emettere le fatture elettroniche italiane. Fattura.dev legge i dati del cliente da Stripe.
Trova nel codice dove creo le Checkout Session e i Customer e fai in modo che:
1. le Checkout Session abbiano billing_address_collection: "required" e
   tax_id_collection: { enabled: true };
2. le Checkout Session abbiano due custom_fields di tipo text, facoltativi, con key
   "codice_fiscale" e "codice_destinatario";
3. quando creo o aggiorno un Customer salvo indirizzo e Tax ID (eu_vat per le aziende,
   it_cf per i privati) e, se li ho, i metadata codice_fiscale e codice_destinatario.
Non cambiare prezzi, prodotti o logica di pagamento.

Domande frequenti

Devo scrivere codice?

No. Il collegamento a Stripe e l'invio sono automatici. Il codice qui sopra serve solo a far raccogliere a Checkout i dati fiscali dei clienti, se non lo fa già.

Funziona per i forfettari?

Sì. Scegli «Forfettario» nei dati fiscali: le fatture escono senza IVA, con natura N2.2, la dicitura di legge e il bollo virtuale quando è dovuto.

Che cosa succede se lo SdI scarta una fattura?

Ti avvisiamo per email con il motivo. Correggi i dati dalla dashboard e la reinviamo con lo stesso numero e la stessa data.

Posso mettere in pausa l'emissione?

Sì, dalle impostazioni. Mentre è in pausa i nuovi incassi non generano documenti.

Come disdico?

Dal portale di fatturazione, raggiungibile dalla dashboard. La disdetta ha effetto alla fine del periodo già pagato.

Fattura.dev è un prodotto di Stripe?

No. È un servizio indipendente che si collega al tuo account Stripe con permessi di sola lettura.