API IDP per Sviluppatori: Estrazione Dati da Documenti via REST, Webhook e JSON
Data Alchemy espone il suo motore di Intelligent Document Processing (IDP) tramite REST API, webhook e connettori SQL. Con questa API di estrazione dati invii fatture, DDT, ordini o contratti e ricevi JSON strutturato e validato — 99,8% di accuratezza in circa 3 secondi a documento, pronto da scrivere nel tuo gestionale ERP come SAP, Zucchetti o TeamSystem. Questa pagina è la documentazione API per sviluppatori e system integrator: endpoint REST, webhook, schema dei dati e integrazione Zucchetti via API.
Un'API IDP che trasforma i documenti in dati strutturati
L'API per sviluppatori è il lato programmatico della piattaforma di Intelligent Document Processing di Data Alchemy. Invece di usare l'app web, i tuoi sistemi inviano i documenti via HTTP e ricevono dati validati e strutturati in risposta: così puoi incorporare l'estrazione di fatture, DDT e ordini direttamente nel tuo software, automatizzare il ciclo passivo o alimentare qualsiasi ERP o CRM senza reinserimento manuale.
Base URL e autenticazione
Tutte le richieste usano HTTPS verso https://api.data-alchemy.ai/v1 e si autenticano con una API key Bearer trasmessa nell'header Authorization. Le chiavi si generano dalla console e vanno conservate lato server, mai esposte nel browser. Ogni risposta è in formato JSON UTF-8.
curl -X POST https://api.data-alchemy.ai/v1/documents \
-H "Authorization: Bearer $DATA_ALCHEMY_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "file=@fattura.pdf" \
-F "document_type=invoice"Riferimento REST API: invia un documento e leggi i dati
Il flusso tipico è asincrono: invii un documento con una POST, ricevi un id e lo stato di elaborazione, poi recuperi il risultato con una GET — oppure, meglio, lasci che sia il webhook a notificarti al termine. Tutti gli endpoint sono versionati sotto /v1.
/v1/documentsInvia un documento (PDF, XML, immagine) e avvia l'estrazione. Restituisce un id e lo stato./v1/documents/{id}Recupera lo stato e i dati estratti e validati di un documento già inviato./v1/documentsElenca i documenti elaborati con filtri per stato, tipo e intervallo di date./v1/webhooksRegistra un endpoint che riceverà gli eventi document.processed in tempo reale.{
"id": "doc_8a7f2c91",
"status": "processing",
"document_type": "invoice",
"created_at": "2026-06-04T09:12:33Z",
"webhook_url": "https://yourapp.example.com/hooks/data-alchemy"
}curl https://api.data-alchemy.ai/v1/documents/doc_8a7f2c91 \
-H "Authorization: Bearer $DATA_ALCHEMY_API_KEY"Webhook: cos'è e come funziona
Un webhook è una richiesta HTTP che un servizio invia automaticamente a un URL indicato da te, non appena si verifica un evento. È il contrario di una normale chiamata API: non sei tu a chiedere «il documento è pronto?», è il servizio che ti avvisa da solo quando lo è. Per questo un webhook viene spesso descritto come una «API al contrario» o una callback HTTP: l'applicazione che riceve l'evento espone un endpoint pubblico e resta in ascolto, mentre è il servizio a fare da client.
In Data Alchemy funziona così: registri un URL e riceverai una POST al tuo endpoint appena un documento è stato elaborato, senza dover fare polling. Il payload contiene l'evento, l'id del documento, il livello di confidenza e i dati estratti secondo lo schema di output. Ogni richiesta è firmata con HMAC SHA-256 nell'header X-Data-Alchemy-Signature per verificarne l'autenticità.
POST /hooks/data-alchemy (X-Data-Alchemy-Signature: sha256=...)
{
"event": "document.processed",
"id": "doc_8a7f2c91",
"status": "completed",
"confidence": 0.998,
"data": { /* schema di output — vedi sotto / see below */ }
}Webhook o polling: qual è la differenza?
Con il polling è il tuo sistema a interrogare ripetutamente l'API («è pronto adesso?»), sprecando chiamate finché l'elaborazione non termina e introducendo un ritardo pari all'intervallo di attesa. Con un webhook la notifica parte nell'istante in cui il documento è pronto: nessuna chiamata a vuoto, nessun ritardo artificiale e un carico molto minore su entrambi i lati. Il polling resta comunque utile come rete di sicurezza — ad esempio per recuperare un documento se il tuo endpoint è stato irraggiungibile a lungo.
Come verificare la firma di un webhook
Poiché il tuo endpoint è pubblico, chiunque potrebbe inviargli una POST. Per questo ogni webhook di Data Alchemy viaggia con l'header X-Data-Alchemy-Signature, che contiene l'HMAC SHA-256 del corpo grezzo della richiesta calcolato con il tuo secret. Ricalcola la firma sul body ricevuto e confrontala con quella dell'header usando un confronto a tempo costante: se non coincidono, scarta la richiesta. Verifica sempre la firma prima di leggere il payload.
import crypto from "node:crypto";
// Il body va letto grezzo: un JSON già parsato e riserializzato
// produrrebbe una firma diversa. / Read the raw body: a parsed and
// re-serialised JSON would produce a different signature.
function isFromDataAlchemy(rawBody, header, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex");
const received = header.replace("sha256=", "");
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(received)
);
}Schema dei dati di output (JSON)
Ogni documento restituisce JSON tipizzato e validato: testata (fornitore, numero, date), righe di dettaglio, totali, IVA e l'esito della validazione sull'anagrafica del gestionale. La struttura è coerente tra i tipi di documento, così il mapping verso il tuo ERP si scrive una sola volta.
{
"document_type": "invoice",
"header": {
"supplier": {
"name": "Rossi Forniture S.r.l.",
"vat_number": "IT01234567890"
},
"invoice_number": "2026/00417",
"issue_date": "2026-05-28",
"currency": "EUR"
},
"line_items": [
{
"sku": "ART-0042",
"description": "Cartone 30x20x15",
"quantity": 12,
"unit_price": 8.50,
"total": 102.00,
"vat_rate": 22
}
],
"totals": { "net": 102.00, "vat": 22.44, "gross": 124.44 },
"validation": { "status": "validated", "erp_match": true }
}- document_type
- Tipo di documento classificato dall'AI: invoice, delivery_note, order, contract, price_list.
- header
- Dati di testata: anagrafica fornitore/cliente, partita IVA, numero documento, date e valuta.
- line_items
- Array delle righe: codice articolo (SKU), descrizione, quantità, prezzo unitario, totale e aliquota IVA.
- totals
- Totali calcolati e ricontrollati: imponibile (net), imposta (vat) e totale documento (gross).
- validation
- Esito della validazione in tempo reale sull'anagrafica dell'ERP, con flag erp_match ed eventuali anomalie.
Rate limit, retry e gestione degli errori
Le risposte usano codici HTTP standard: 202 per un documento accettato e in elaborazione, 200 al recupero del risultato, 401 per API key mancante o non valida, 422 per un documento non leggibile e 429 al superamento del rate limit. Ogni errore restituisce un JSON con error.code e error.message.
In caso di 429 o di errori 5xx è consigliato un retry con backoff esponenziale, così da non aggravare un servizio già sotto carico. I webhook non consegnati vengono ritentati automaticamente con backoff crescente, così nessun evento document.processed va perso anche se il tuo endpoint resta irraggiungibile per qualche minuto.
202Documento accettato e in elaborazione.200Risultato pronto: dati estratti e validati.401API key mancante, scaduta o non valida.422Documento non leggibile o formato non supportato.429Rate limit superato: riprova con backoff esponenziale.HTTP/1.1 429 Too Many Requests
Retry-After: 30
{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Retry after 30s."
}
}Quattro modi per integrare l'estrazione documenti
REST API
Invia un documento e recupera i dati estratti e validati come JSON strutturato, pronto da mappare sul tuo ERP.
Webhook
Pipeline asincrone event-driven: Data Alchemy notifica il tuo endpoint a fine elaborazione, senza polling.
Connettori SQL
Preferisci l'integrazione a livello database? Scrivi i dati estratti direttamente nel tuo sistema via SQL.
Acquisizione da email
Collega una casella Google Workspace o Microsoft 365 e lascia che l'AI acquisisca i documenti — integrazione a zero codice.
Esplora la piattaforma dietro l'API
SAP, Zucchetti, TeamSystem
Come i dati estratti vengono scritti nel gestionale via API REST, webhook e SQL.
Scopri di più →TecnologiaUn LLM dedicato per documento
Il motore AISP che assegna a ogni modello documentale l'LLM migliore per leggerlo.
Scopri di più →Piattaforma IDPSoluzione IDP completa
Fatture, ordini, contratti e listini elaborati dalla stessa piattaforma AI.
Scopri di più →Domande frequenti sull'API per sviluppatori
Che cos'è l'API per sviluppatori di Data Alchemy?
È l'interfaccia programmatica del motore di Intelligent Document Processing (IDP) di Data Alchemy. Invece di usare l'app web, i tuoi sistemi inviano documenti — fatture, DDT, ordini, contratti, listini — e ricevono in risposta dati strutturati e validati, pronti da scrivere nel tuo ERP o CRM.
Quali metodi di integrazione sono disponibili?
Data Alchemy espone una REST API e webhook per i flussi event-driven, oltre a connettori SQL diretti per chi preferisce l'integrazione a livello database. I documenti possono anche essere acquisiti automaticamente da una casella Google Workspace o Microsoft 365, senza scrivere codice.
In che formato tornano i dati estratti?
I campi estratti vengono restituiti come JSON strutturato — dati di testata, righe di dettaglio, totali, imposte e riferimenti documento — già validati sull'anagrafica del tuo gestionale, così possono essere mappati direttamente sul sistema di riferimento.
Come funziona l'autenticazione e la sicurezza dei webhook?
Le richieste si autenticano con una API key Bearer nell'header Authorization, su HTTPS. I webhook in uscita sono firmati con HMAC SHA-256 nell'header X-Data-Alchemy-Signature, così puoi verificare che ogni notifica provenga davvero da Data Alchemy prima di processarla.
Quanto è accurata e veloce l'estrazione?
Data Alchemy assegna un LLM dedicato a ogni modello di documento (oggi Claude AI), raggiungendo il 99,8% di accuratezza in circa 3 secondi a documento, senza template e senza addestramento per layout.
In quali ERP posso scrivere i dati?
L'API è agnostica rispetto al sistema: esistono integrazioni native per SAP, Zucchetti e TeamSystem, mentre REST API, webhook e connettori SQL permettono di inviare i dati strutturati a qualsiasi altro ERP, CRM o applicazione interna.
Cos'è un webhook?
Un webhook è una richiesta HTTP che un servizio invia automaticamente a un URL indicato da te, non appena si verifica un evento — una sorta di «API al contrario». Invece di interrogare ripetutamente l'API per sapere se un documento è pronto (polling), registri un endpoint e Data Alchemy ti invia una POST con i dati estratti nell'istante in cui l'elaborazione termina. Ogni webhook è firmato con HMAC SHA-256 nell'header X-Data-Alchemy-Signature, così puoi verificare che provenga davvero da Data Alchemy prima di processarlo.
Costruisci con l'API per sviluppatori
Raccontaci il tuo caso d'uso: attiviamo l'accesso API e ti accompagniamo nell'integrazione sui tuoi documenti reali, senza impegno.
Richiedi l'accesso API