Svennis AI
10 min di lettura

Fatture e contratti elaborati con Claude e registrati in Zoho con revisione umana

Claude legge fatture e contratti in PDF, estrae i dati in uno schema fisso o cita le pagine delle clausole. Questa guida spiega limiti, costi, controlli umani e registrazione in Zoho.

Forme rettangolari sovrapposte che scorrono in una sequenza ordinata verso un unico punto di raccolta

Fatture e contratti elaborati con Claude: come funziona il flusso verso Zoho

Fatture e contratti elaborati con Claude significa questo: Claude legge il PDF e restituisce i dati chiave in uno schema JSON fisso, oppure una revisione con citazioni di pagina. Un passaggio separato registra poi i dati in Zoho, dopo i controlli automatici. Una persona interviene solo sulle eccezioni, per esempio un totale che non torna.

L'elaborazione documentale con Claude è l'uso del modello per trasformare un documento non strutturato in dati verificabili. Il documento può essere una fattura passiva, un contratto fornitore o un allegato d'ordine.

Il flusso che descriviamo in questa guida ha quattro fasi:

  1. Claude legge il PDF tramite API e produce una proposta di dati.
  2. Un controllo automatico confronta la proposta con il sistema contabile.
  3. Le eccezioni finiscono in una coda di revisione per una persona.
  4. Solo i dati approvati vengono registrati in Zoho Books.

Per le fatture conta l'estrazione: fornitore, partita IVA, data, righe e totali. Per i contratti conta la revisione: ogni risposta deve indicare la pagina da cui proviene, così chi controlla può verificarla in pochi secondi. Le due attività usano funzioni diverse dell'API di Anthropic e, come vedremo, non si possono combinare nella stessa richiesta.

Come Claude legge un PDF: pagine, testo, immagini e limiti

Claude legge ogni pagina di un PDF in due modi insieme: come immagine e come testo estratto. La documentazione di Anthropic sul supporto PDF spiega che il sistema converte ogni pagina in un'immagine e fornisce accanto il testo di quella pagina. Per questo Claude può rispondere su testo, immagini, grafici e tabelle.

Limiti dell'API

  • Formato: PDF standard, senza password né cifratura.
  • Modalità di invio: URL, contenuto base64 oppure un file_id della Files API.
  • Ambito dei limiti: dimensione e pagine valgono per l'intera richiesta.

I limiti comprendono tutto ciò che viene inviato insieme ai PDF. Claude Opus 5.5 e Claude Sonnet 5 hanno una finestra di contesto di 1 milione di token. Claude Haiku 4.5 ne ha 200.000, quindi accetta meno pagine per richiesta.

Limiti nelle app di Claude

Nelle app di Claude i PDF fino a 100 pagine ricevono analisi di testo e di elementi visivi. Da 101 a 1.000 pagine Claude elabora solo il testo, e oltre le 1.000 pagine il caricamento non è possibile. Dai documenti diversi dal PDF Claude estrae solo il testo, senza leggere le immagini incorporate.

Le app servono per verifiche occasionali; un flusso mensile ripetibile passa dall'API. Per l'uso quotidiano nelle app può essere utile la guida su come usare Claude Cowork in azienda.

Una richiesta PDF all'API accetta fino a 32 MB e 600 pagine, o 100 con contesto sotto il milione: Dimensione massima della richiesta 32 MB, Pagine per richiesta 600 pagine, Pagine con contesto sotto 1 milione di token 100 pagine, Token di testo per p
Fonte: platform.claude.com

Estrarre i dati di una fattura con gli structured outputs

Gli structured outputs sono una funzione dell'API che vincola la risposta di Claude a uno schema JSON definito da Lei. Si attivano con il parametro output_config.format. Secondo la documentazione sugli structured outputs, la conformità allo schema è garantita tramite decodifica vincolata.

Per una fattura lo schema contiene di solito questi campi:

  • ragione sociale del fornitore e partita IVA;
  • numero e data del documento;
  • righe con descrizione, quantità, prezzo unitario e aliquota;
  • imponibile, imposta e totale.

La garanzia riguarda la forma della risposta, non la correttezza dei valori. Lo schema non supporta vincoli numerici come minimum o maximum, né vincoli sulla lunghezza delle stringhe. Il controllo che le righe sommino al totale va quindi fatto nel Suo codice, dopo la risposta. Anche le maiuscole dei valori enum non sono garantite, e il codice deve normalizzarle.

Conviene inoltre dare a Claude il permesso di dichiarare un campo illeggibile. La guida di Anthropic sulla riduzione delle allucinazioni indica che questa semplice istruzione può ridurre drasticamente le informazioni false. In pratica si aggiunge allo schema un campo per le note di incertezza.

Due dettagli operativi completano il quadro. Il primo uso di uno schema aggiunge latenza per compilare la grammatica. Se Claude rifiuta una richiesta, la risposta ha stop_reason uguale a "refusal" e i token generati vengono comunque fatturati.

Rivedere un contratto con le citazioni di pagina

Le citazioni sono la funzione dell'API che collega ogni affermazione di Claude al punto esatto del documento da cui proviene. Per i PDF, la documentazione sulle citazioni indica che ogni citazione include un intervallo di pagine numerato da 1. Il contenuto viene suddiviso in frasi, quindi Claude può citare una singola frase o più frasi consecutive.

La revisione di un contratto ne trae un vantaggio diretto. Chi controlla una clausola di recesso non deve rileggere quaranta pagine: apre la pagina indicata e confronta il testo citato. Il campo cited_text non conta tra i token di output.

Limiti delle citazioni

  • Un PDF scansionato senza testo estraibile non è citabile.
  • Le citazioni vanno attivate su tutti i documenti della richiesta oppure su nessuno.
  • Sono supportate solo le citazioni di testo, non quelle di immagini.
  • L'attivazione aumenta leggermente i token di input.

Tecniche contro le allucinazioni nei contratti lunghi

Un'allucinazione è un testo generato dal modello che risulta errato o incoerente con il contesto fornito. Per documenti oltre i 20.000 token, Anthropic suggerisce di far estrarre prima le citazioni letterali e solo dopo di svolgere il compito. Si può anche chiedere a Claude di verificare ogni affermazione con una citazione di supporto e di ritirarla se non la trova.

Quale funzione API usare per fatture, contratti e volumi

La scelta della funzione dipende dall'attività, e un vincolo tecnico separa l'estrazione dalla revisione citata. Gli structured outputs sono incompatibili con le citazioni: una richiesta che attiva le citazioni insieme a output_config.format restituisce un errore 400. Estrarre i dati e ottenere una revisione con pagine citate richiede quindi due chiamate distinte.

La tabella riassume quale funzione usare per ogni attività, che cosa produce e dove serve una persona.

AttivitàFunzione dell'APIChe cosa produceControllo umano
Estrazione dati da fattureStructured outputsJSON conforme allo schemaSolo sulle eccezioni ai controlli automatici
Revisione clausole di un contrattoCitazioniRisposte con intervallo di pagineSempre, sulle clausole fuori policy
Fatture del mese in bloccoMessage Batches APIRisultati asincroni per ogni richiestaCome per l'estrazione
Più domande sullo stesso contrattoPrompt cachingStesse risposte, input ripetuto più economicoCome per la revisione
PDF scansionato senza testoStructured outputs, senza citazioniJSON letto dall'immaginePiù frequente, perché non ci sono pagine citabili

Le citazioni funzionano con il prompt caching e con l'elaborazione batch. Anche gli structured outputs si possono elaborare in batch con lo sconto del 50%. L'unica combinazione esclusa è quella tra structured outputs e citazioni nella stessa richiesta.

Gli structured outputs estraggono i campi delle fatture, le citazioni indicano le pagine dei contratti. Structured outputs / Citazioni. Uso tipico: Estrazione dati da fatture / Revisione delle clausole di un contratto; Che cosa produce: JSON conforme

Costi: prezzi standard per i PDF, Batch API e prompt caching

Il costo di un PDF segue i prezzi standard dell'API, senza una tariffa separata per i PDF. Poiché ogni pagina viene convertita in immagine, al testo si aggiungono i token dell'immagine, calcolati come per qualsiasi immagine. Due funzioni riducono la spesa quando i volumi crescono.

Message Batches API per i volumi che possono attendere

La Message Batches API elabora le richieste in modo asincrono al 50% dei prezzi standard. La documentazione sull'elaborazione batch indica che la maggior parte dei batch termina in meno di un'ora. Un batch scade se non si completa entro 24 ore, e i risultati restano disponibili per 29 giorni. Le richieste in errore, annullate o scadute non vengono fatturate.

Prompt caching per le domande ripetute

Il prompt caching memorizza una parte ripetuta della richiesta, come il testo di un contratto, e la riusa nelle domande successive. Secondo la documentazione sul prompt caching, la scrittura in cache costa il 25% in più dell'input base. La lettura costa il 10% dell'input base sulla maggior parte dei modelli. La cache dura 5 minuti e si rinnova a ogni uso; una durata di un'ora costa il doppio dell'input base. Gli sconti di cache e batch si sommano.

Esempio pratico: un mese di fatture estere in PDF e un contratto fornitore

Per le fatture passive nazionali il documento fiscale è il file XML ricevuto tramite SdI, che contiene già i dati strutturati: conviene registrarle da lì. L'esempio riguarda i documenti che arrivano solo in PDF. Supponiamo 200 fatture di fornitori esteri al mese e un contratto di fornitura da rivedere. Il modello scelto è Claude Sonnet 5.

Prima fase: estrazione in batch

A fine mese un job invia un batch con una richiesta per fattura, identificata dal nome del file. Ogni richiesta usa lo stesso schema JSON con fornitore, partita IVA, data, righe e totali. Il batch costa la metà delle stesse richieste inviate una per una.

Seconda fase: confronto con il sistema contabile

Il codice confronta ogni proposta con Zoho Books. Verifica che il fornitore esista, che la partita IVA coincida, che le righe sommino al totale e che il numero di documento non sia già registrato. Le fatture che superano tutti i controlli passano alla registrazione. Le altre vanno in coda di revisione con il motivo dello scarto.

Terza fase: revisione del contratto

Il contratto di fornitura viene inviato con le citazioni attive. Le domande riguardano durata, rinnovo, penali, recesso e foro competente. Ogni risposta indica l'intervallo di pagine. Il contratto resta in cache, quindi le domande inviate entro la finestra di 5 minuti pagano l'input ripetuto al 10% del prezzo base.

Dove una persona deve controllare prima della registrazione in Zoho Books

Una persona controlla i totali prima che qualsiasi importo venga registrato in contabilità. Anthropic scrive che anche i modelli linguistici più avanzati, Claude compreso, possono talvolta generare testo errato o incoerente con il contesto. Le tecniche della guida sulla riduzione delle allucinazioni abbassano questo rischio, ma i dati critici vanno comunque validati.

Le eccezioni che portano una fattura in revisione umana sono di solito queste:

  • la somma delle righe non corrisponde al totale estratto;
  • il fornitore non esiste ancora in anagrafica;
  • la partita IVA estratta differisce da quella registrata;
  • un campo obbligatorio è vuoto o marcato come incerto;
  • il documento è una scansione di bassa qualità;
  • il numero di documento risulta già registrato.

Per i campi più delicati si può aggiungere una verifica best-of-N. La verifica best-of-N consiste nell'eseguire la stessa richiesta più volte e nel confrontare i risultati: le incoerenze possono indicare un'allucinazione. Su un totale o un IBAN, due estrazioni che non coincidono bastano per fermare la registrazione.

In Svennis impostiamo sempre la registrazione come un passaggio distinto dalla lettura: Claude produce solo una proposta, e la scrittura in Zoho Books avviene dopo che i controlli automatici o una persona l'hanno approvata. Dove abbiamo visto il flusso andare storto, era perché la stessa automazione leggeva il PDF e registrava direttamente il risultato.

Il PDF del fornitore è contenuto non attendibile: separare lettura e scrittura

Un PDF ricevuto da un fornitore è contenuto non attendibile, perché nessuno in azienda ne controlla il testo prima che Claude lo legga. Il documento può contenere istruzioni nascoste rivolte al modello. Questo rischio si chiama prompt injection: un testo inserito nel contenuto che cerca di far compiere al modello un'azione diversa da quella richiesta.

La difesa più solida è architetturale. Il passaggio che legge il PDF non deve avere accesso in scrittura al sistema contabile e restituisce solo una proposta nello schema previsto.

La registrazione la esegue un altro componente, con regole fisse:

  • accetta solo campi definiti dallo schema;
  • rifiuta importi, fornitori o conti che non superano i controlli;
  • usa credenziali con i soli permessi necessari a creare la fattura;
  • non esegue mai istruzioni testuali provenienti dal documento.

Gli structured outputs aiutano, perché limitano la risposta a campi prevedibili. Non sostituiscono però la separazione dei permessi: un IBAN conforme allo schema può comunque essere diverso da quello registrato. Per impostare i permessi del collegamento contabile, la guida su come collegare Claude a Fatture in Cloud, TeamSystem o Xero con permessi e controlli segue la stessa logica.

Dati e residenza: dove Anthropic elabora e conserva i documenti

Sull'API di Anthropic l'elaborazione avviene per impostazione predefinita in qualsiasi area geografica disponibile, oppure solo negli Stati Uniti. La documentazione sulla residenza dei dati distingue due impostazioni indipendenti. L'inference geo decide dove gira il modello, richiesta per richiesta. La workspace geo decide dove i dati restano archiviati.

Le regole principali sono queste:

  • il valore predefinito di inference_geo è "global";
  • l'inferenza solo USA costa 1,1 volte la tariffa standard sui modelli che supportano il parametro;
  • su Claude Haiku 4.5 il parametro inference_geo restituisce un errore 400;
  • oggi "us" è l'unica workspace geo disponibile, e non si può cambiare dopo la creazione.

La documentazione non elenca un'opzione europea o britannica offerta da Anthropic stessa. Su Amazon Bedrock e su Google Cloud il trattamento dei dati è gestito dal fornitore cloud, e si applicano i suoi prezzi regionali.

Conservazione dei dati

La conservazione zero dei dati, detta ZDR, è un accordo in cui Anthropic non conserva prompt e risposte dopo la restituzione della risposta. La documentazione su API e conservazione dei dati precisa che va attivata per ogni organizzazione dal team commerciale. Non copre la Console, i piani consumer né le interfacce Teams ed Enterprise. Anche con la ZDR, Anthropic può conservare i dati se la legge lo richiede o se i suoi sistemi di sicurezza li segnalano.

Cosa significa per un'azienda italiana che riceve fatture e contratti in PDF

Per un'azienda italiana il lavoro di Claude resta la lettura dei documenti, non la gestione degli obblighi fiscali. Gli adempimenti fiscali restano in capo all'azienda, che li gestisce con il commercialista e il software di fatturazione elettronica. Claude estrae i dati da ciò che arriva solo in PDF, come fatture di fornitori esteri, contratti e allegati, e prepara una proposta per il gestionale.

I modelli attuali supportano più lingue, quindi documenti in italiano, inglese o tedesco passano dallo stesso flusso. Conviene comunque indicare nelle istruzioni il formato atteso per date e importi. Un separatore decimale interpretato male produce un totale conforme allo schema ma sbagliato.

La residenza dei dati merita una valutazione esplicita con chi segue la privacy in azienda. L'API di Anthropic elabora a livello globale o negli Stati Uniti e archivia negli Stati Uniti. Per i contratti che contengono dati personali, questa valutazione va documentata prima di andare in produzione.

Anche l'uso nelle app va regolato. Un dipendente che carica un contratto in una chat usa un'interfaccia non coperta dalla ZDR. Le clausole che l'azienda accetta, rifiuta o negozia possono diventare un riferimento stabile per la revisione. La guida su come scrivere una base di conoscenza che Claude può usare spiega come mantenerla aggiornata.

Prossimi passi per avviare l'elaborazione di fatture e contratti con Claude

Il modo più sicuro per avviare l'elaborazione di fatture e contratti con Claude è partire da un mese di documenti già registrati. Il confronto tra la proposta di Claude e i dati già presenti misura l'accuratezza prima di toccare la contabilità.

La sequenza che suggeriamo è questa:

  1. Raccogliere un mese di fatture passive già registrate e due o tre contratti tipici.
  2. Definire lo schema JSON dei campi e il campo per le note di incertezza.
  3. Eseguire l'estrazione in batch con Claude Sonnet 5 e confrontarla con Zoho Books.
  4. Scrivere i controlli automatici e le regole che mandano un documento in revisione.
  5. Rivedere i contratti con le citazioni attive e annotare le clausole fuori policy.
  6. Decidere residenza dei dati e conservazione prima di passare ai documenti reali.
  7. Collegare la registrazione con permessi minimi, separata dalla lettura.

Claude Haiku 4.5 ha una finestra da 200.000 token, non supporta inference_geo e sarà ritirato non prima del 15 ottobre 2026. Per un flusso nuovo conviene quindi partire da un modello attuale con finestra da 1 milione di token.

Se i dati estratti devono arrivare anche nel CRM, per esempio le scadenze contrattuali sul fornitore, la guida per collegare Claude a Zoho CRM con MCP, con permessi e controlli mostra come farlo con le stesse cautele.

Fonti

  1. 1. PDF support - Claude Platform Docs
  2. 2. Structured outputs - Claude Platform Docs
  3. 3. Citations - Claude Platform Docs
  4. 4. Batch processing - Claude Platform Docs
  5. 5. Prompt caching - Claude Platform Docs
  6. 6. Reduce hallucinations - Claude Platform Docs
  7. 7. Upload files to Claude - Claude Help Center
  8. 8. Data residency - Claude Platform Docs
  9. 9. API and data retention - Claude Platform Docs
  10. 10. Models overview - Claude Platform Docs

Articoli correlati