Cos'è un'API di contabilità? Una guida semplice per chi sviluppa piattaforme
Una definizione semplice di API di contabilità, ciò che la distingue da un'API fiscale o di pagamento e cosa verificare prima di integrarla.
Un'API di contabilità (accounting API) è un'interfaccia che consente a un programma di gestire la contabilità di un altro programma. Il tuo software invia un evento finanziario tramite HTTP. L'API converte quell'evento in scritture contabili bilanciate in partita doppia (double-entry) rispetto a un piano dei conti (chart of accounts), le memorizza in modo che non possano essere modificate silenziosamente, applica il trattamento fiscale e restituisce report, documenti ed esportazioni attraverso la stessa interfaccia.
Questa definizione fa quasi tutto il lavoro. Tutto il resto in questo articolo ne è una conseguenza.
La versione in una frase
Un'API di contabilità accetta eventi finanziari dalla tua applicazione, converte ciascuno in una registrazione contabile bilanciata, li memorizza in modo immutabile con il relativo trattamento fiscale e la documentazione di supporto, esponendo il mastro (ledger), i documenti e i report risultanti come endpoint programmabili.
Se un prodotto si definisce un'API di contabilità ma non produce scritture contabili, è qualcos'altro con un nome accattivante. Questo non è necessariamente un male. Significa solo che non farà il lavoro che stai per richiederle.
Cosa non è un'API di contabilità
Quattro categorie di prodotti affini vengono spesso confuse con le API di contabilità, di solito in fase avanzata di un progetto.
| Categoria | Cosa fa | Cosa non fa |
|---|---|---|
| API di calcolo fiscale (Tax calculation API) | Restituisce l'aliquota o l'importo dell'imposta corretto per una transazione | Tenere la contabilità o conservare le prove a supporto della decisione per il periodo di conservazione richiesto |
| API di pagamento (Payments API) | Sposta denaro tra le parti e segnala tali movimenti | Registrare la commissione maturata, l'IVA dovuta o il debito verso un venditore tra il pagamento e il versamento |
| API unificata o aggregatore (Unified or aggregator API) | Legge e scrive dati nel software di contabilità esistente del tuo cliente | Agire come sistema di registro; la tua contabilità risiede nello strumento che ciascun cliente utilizza già |
| API di reporting o BI (Reporting or BI API) | Legge le cifre da un mastro esistente e le visualizza | Creare le registrazioni da cui derivano le cifre |
Ognuna di queste ha usi reali. Una piattaforma che deve essere il sistema di registro primario ha bisogno dell'API di contabilità alla base, non in sostituzione di essa.
Le cinque cose che un'API di contabilità deve fare
1. Registrare movimenti bilanciati. Ogni evento diventa addebiti e accrediti che sommati danno la stessa cifra. Quando un acquirente paga 100 € su un marketplace che trattiene una commissione di 15 €, la registrazione addebita un conto transitorio per 100 €, accredita il debito verso il venditore per 85 € e accredita i ricavi da commissioni per 15 €. Questa non è burocrazia contabile. È un controllo strutturale che intercetta intere classi di bug di integrazione prima che arrivino a un report.
2. Mantenere la cronologia. Una registrazione contabilizzata non viene modificata. Un errore viene corretto tramite uno storno più una registrazione correttiva, entrambe collegate a quella originale. I mesi chiusi vengono bloccati in modo che non si possa inserire alcuna nuova data al loro interno.
3. Gestire le imposte. Per il commercio UE, ciò significa luogo di cessione, inversione contabile (reverse charge), numeri di identificazione IVA verificati rispetto al registro ufficiale e le prove che giustificano la decisione, il tutto memorizzato insieme alla transazione anziché scartato dopo il calcolo.
4. Riconciliare rispetto ai flussi di denaro esterni. Una contabilità che non incontra mai un estratto conto bancario è solo una stima. L'API deve acquisire gli estratti conto o i pagamenti dei provider e abbinarli a ciò che è stato registrato.
5. Esportare. Report, documenti e file di audit, nei formati accettati da un commercialista e da un'autorità fiscale.
Un prodotto che fa le prime tre cose ma non le ultime due lascerà comunque una persona a lavorare sui fogli di calcolo ogni mese.
Come appare una chiamata in pratica
Le meccaniche sono più semplici della contabilità. Nell'API di Nordlet, ogni operazione è una POST in stile RPC con una struttura prevedibile:
POST /v1/{module}/{resource}/{action}
Authorization: Bearer <api key>
Idempotency-Key: <your event id>
Crea una fattura di vendita, quindi emettila. L'emissione è il momento in cui avviene la contabilizzazione: il documento ottiene il suo numero progressivo senza salti, viene pubblicata la scrittura contabile bilanciata e le righe IVA vengono registrate di conseguenza. La tua piattaforma non assembla mai addebiti e accrediti manualmente.
Tre dettagli in quello snippet contano più del nome dell'endpoint:
- Lo scope sulla chiave. Una chiave trasporta permessi come
sales:write, in modo che un'integrazione ottenga solo l'accesso di cui ha bisogno. - La chiave di idempotenza (Idempotency key). Ritenta la stessa richiesta con lo stesso payload e riceverai la risposta memorizzata anziché una seconda fattura. Invia la stessa chiave con un payload diverso e la richiesta verrà rifiutata con
idempotency_key_reuseanziché essere accettata silenziosamente. - Il denaro come stringhe. Gli importi sono stringhe decimali, non numeri in virgola mobile (floating-point), perché i numeri float perdono i centesimi in modi che emergono a fine anno.
Dove si colloca nella tua architettura
La tua applicazione rimane il front-end e la fonte degli eventi di business. L'API di contabilità diventa il sistema finanziario di registro sottostante. Il flusso è solitamente il seguente:
- Succede qualcosa nel tuo prodotto: un ordine, un rimborso, un pagamento, il rinnovo di un abbonamento.
- Il tuo backend chiama l'API di contabilità con l'evento e una chiave di idempotenza.
- L'API pubblica la scrittura contabile, applica l'IVA e restituisce gli identificatori che memorizzi rispetto ai tuoi record.
- Un webhook come
sale_invoice.paidcomunica al tuo sistema quando lo stato cambia, permettendoti di reagire agli eventi invece di interrogare continuamente il server (polling). - Le transazioni bancarie arrivano tramite un feed bancario o l'importazione di un estratto conto e vengono abbinate ai documenti registrati.
- Alla fine del periodo, i report e i registri IVA vengono generati dagli stessi dati e il mese chiuso viene bloccato.
Nulla in questo elenco richiede a un'azienda di aprire un'applicazione di contabilità. Questo è lo scopo di questa categoria di prodotti.
Come si confronta con le alternative
| Approccio | Sforzo iniziale | Posizione di audit | Scalabilità con il volume delle transazioni |
|---|---|---|---|
| Fogli di calcolo e inserimento manuale | Minimo | Debole; la cronologia è modificabile | No |
| Software di contabilità ed esportazioni CSV | Basso | Dipende interamente dalla disciplina operativa | Scarsa; qualcuno deve importare i file manualmente |
| API aggregatore nei libri contabili di ogni cliente | Medio | Eredita ciò che fa lo strumento del cliente | Sì, ma non possiedi mai direttamente il registro |
| API di contabilità integrata (Embedded accounting) | Medio | Forte se il mastro è immutabile e i periodi si bloccano | Sì |
| Creare il proprio mastro contabile da zero | Massimo | Forte solo se sviluppi anche tutti i controlli | Sì, ma dovrai mantenerlo per sempre |
Crearsi il proprio sistema è una scelta legittima per alcuni team. L'argomento è trattato in modo più approfondito nella nostra guida sullo sviluppo interno o l'acquisto per i marketplace.
Cosa verificare prima di integrarla
- Il saldo è derivato o memorizzato? Chiedi se il saldo di un venditore è una query sulle righe contabili o una colonna che qualcuno aggiorna. Solo una di queste opzioni sopravvive a un audit.
- Cosa succede in caso di nuovo tentativo (retry)? Invia la stessa richiesta due volte e conta le registrazioni risultanti.
- È possibile modificare una registrazione contabilizzata? La risposta dovrebbe essere no, con un percorso di correzione documentato.
- Un periodo bloccato rifiuta effettivamente una registrazione? Testalo in un ambiente sandbox. Nordlet restituisce un errore
409per una registrazione datata all'interno di un periodo bloccato. - Come viene rappresentato il denaro? Stringhe decimali o unità minime intere. Mai numeri float.
- Cosa contiene il registro di audit (Audit record)? Attore, azione, entità e la modifica stessa, interrogabili anziché sepolti nei file di log.
- Quali sono i limiti di frequenza (Rate limits)? Nordlet consente 300 richieste al minuto per chiave API e segnala il budget residuo nelle intestazioni di risposta (response headers). Qualunque sia il numero, conoscilo prima di progettare la sincronizzazione.
- Come estrai i tuoi dati? Report, documenti e mastri, in formati che puoi consegnare a un commercialista.
Ognuno di questi punti è verificabile in un pomeriggio confrontandosi con una società sandbox. Gli elenchi di funzionalità dei fornitori non sono prove concrete; un test riproducibile sì.
FAQ
Un'API di contabilità è la stessa cosa di un software di contabilità?
È un software di contabilità con l'interfaccia spostata. Il software di contabilità tradizionale mette una persona di fronte al mastro; un'API di contabilità ci mette il tuo codice. Gli obblighi sottostanti, la struttura in partita doppia e i report sono identici.
Ho ancora bisogno di un commercialista se ne uso una?
Sì. Un'API automatizza la registrazione, il calcolo e il reporting. Non esprime giudizi su classificazione, accantonamenti o su come debba essere trattato uno specifico contratto e, nella maggior parte dei paesi, non firma né presenta i tuoi bilanci di esercizio.
Posso usare un'API di contabilità senza comprendere la partita doppia?
In parte. Una buona API costruisce le registrazioni contabili per te partendo da un documento commerciale come una fattura. Devi comunque comprendere cosa significano i conti quando leggi un report o spieghi un saldo a un revisore.
Qual è la differenza tra un'API di contabilità e un'API di mastro (Ledger API)?
Un'API di mastro registra movimenti bilanciati tra conti. Un'API di contabilità fa questo e aggiunge lo strato normativo superiore: documenti con numerazione legale, trattamento IVA, registri fiscali, beni ammortizzabili, chiusura di periodo e i report che una giurisdizione si aspetta. Ogni API di contabilità contiene un mastro; non ogni mastro è un sistema contabile.
Quanto tempo richiede l'integrazione?
Per un primo flusso funzionante - creare un cliente, emettere una fattura, ricevere un pagamento, vedere la scrittura contabile - calcola giorni anziché settimane utilizzando un SDK tipizzato e un sandbox. Un'integrazione di produzione che copre rimborsi, correzioni, valuta multipla, riconciliazione e chiusura di periodo è un lavoro più ampio, e la stima onesta dipende da quanti di questi casi genera effettivamente il tuo prodotto.