Estrarre i dati da un ordine di acquisto
Strumento per estrarre i dati da un ordine di acquisto: carichi il PDF o la scansione dell'ordine e ricevi in campi ordinati numero, data, fornitore, condizioni e le righe con articolo, quantità e prezzo. Serve a chi gestisce approvvigionamenti e vuole portare gli ordini nel gestionale senza reinserirli a mano.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
Cosa legge di un ordine
Dalla testata ricava numero e data dell'ordine, fornitore e destinatario, eventuali riferimenti e condizioni di consegna o pagamento. Dal corpo estrae le righe: codice o descrizione articolo, quantità, prezzo unitario e importo. È il documento che precede la fattura e spesso viaggia come PDF allegato a un'email: qui lo trasformi in dati pronti da confrontare con l'arrivo merce o con la fattura successiva.
Come entra nel gestionale
Carichi il documento dal browser o via API e ricevi i campi separati, comodi da riversare nel gestionale o in un foglio di controllo ordini. Il conteggio è a pagina, con il limite di 10 pagine e 25 MB per file. Invece di ridigitare ogni riga d'ordine — con il rischio di sbagliare una quantità — copi il blocco già strutturato. Se ricevi molti ordini simili, scrivici e vediamo come impostare l'invio in blocco.
Funzione in beta e prezzo
Questa capacità è in beta: funziona ed è già utilizzabile, ma la stiamo affinando, quindi su ordini dal layout insolito conviene una verifica. Il prezzo è pubblicato e a consumo: $0.010 a richiesta più $0.0575 a pagina, senza abbonamento né minimo. Paghi solo le pagine che elabori; per un flusso costante di ordini scrivici e valutiamo insieme la configurazione migliore.
Casi d'uso
Ordini fornitore nel gestionale
Tecnoedil Verona S.n.c. riceve gli ordini dei clienti in PDF ed estrae articoli e quantità per caricarli nel gestionale, senza reinserire riga per riga.
Controllo ordine contro consegna
Un magazziniere estrae le righe dell'ordine di acquisto e le confronta con la bolla di consegna per verificare che sia arrivato tutto.
Riordino ricorrente
Rossi & Figli S.r.l. estrae i dati degli ordini passati per ricostruire uno storico e preparare i riordini, senza sfogliare i PDF uno a uno.
Domande frequenti
Che differenza c'è con l'estrazione da fattura?
L'ordine di acquisto precede la fattura: contiene ciò che è stato richiesto (articoli, quantità, condizioni), non ciò che è stato fatturato. Estrarre entrambi ti permette di confrontarli e verificare che coincidano.
Estrae anche le singole righe di articolo?
Sì: codice o descrizione, quantità, prezzo unitario e importo per ogni riga, oltre alla testata con numero, data e fornitore. Tutto in campi separati, pronti per il gestionale.
Cosa significa che è in beta?
Che è già utilizzabile ma ancora in affinamento: sui layout più regolari va bene, su ordini dal formato insolito conviene ricontrollare il risultato. Lo indichiamo apertamente.
Come pago il servizio?
A consumo, $0.010 a richiesta più $0.0575 a pagina. Paghi con PayPal o ci scrivi per concordare; nessun account, nessun canone, nessun minimo mensile.
I documenti restano riservati?
Sì: ogni ordine viene elaborato per estrarne i dati e poi eliminato, non lo conserviamo. Trattamento conforme al GDPR.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/ocr/purchase-order \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/ocr/purchase-order", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ocr/purchase-order",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ocr/purchase-order", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ocr/purchase-order", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"input": "…"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ocr.purchase_order",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 25 |
max_pages | 10 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
413 | input_too_large | Il file o il testo inviato supera il limite di questo strumento. |
422 | task_failed | L'attività non è andata a buon fine: non ti viene addebitato nulla. |