Generi un ordine di acquisto con totali calcolati
Trasformi i dati di acquisto approvati in un ordine strutturato e coerente senza ricreare le regole di calcolo in ogni applicazione.
Esegui gratis nel browser
Indichi il numero dell’ordine, l’acquirente, il fornitore e almeno una voce con descrizione, quantità e costo unitario. Il generatore convalida i dati obbligatori, calcola ogni totale di riga e il totale dell’ordine, quindi restituisce un oggetto prevedibile pronto per il controllo interno, l’archiviazione, la rappresentazione, l’approvazione formale o un’altra fase del processo di acquisto.
Prepari tutti i dati dell’ordine di acquisto
Inizi con un numero d’ordine già assegnato dal Suo sistema acquisti. Il generatore conserva esattamente tale valore dopo aver eliminato gli spazi esterni; non inventa identificativi, non consulta sequenze e non riserva numeri. Identifichi quindi acquirente e fornitore. Questi campi possono contenere una breve ragione sociale oppure un blocco più ampio con indirizzo e dati di registrazione, in base alle esigenze del sistema che rappresenterà il documento. Aggiunga almeno una voce e fornisca per ogni riga una descrizione specifica, una quantità numerica maggiore di zero e un costo unitario numerico non negativo. Sono ammesse quantità frazionarie per beni o servizi acquistati a peso, lunghezza, tempo o secondo un’altra unità divisibile. Un costo unitario pari a zero è accettato per un articolo realmente gratuito, mentre una quantità nulla o negativa viene rifiutata perché non esprime un ordine. Mantenga tutti i costi nella stessa valuta e con la stessa base di prezzo. La capacità non deduce valute, unità di misura, condizioni di pagamento, date di consegna, imposte, sconti o spese di trasporto; gestisca tali decisioni commerciali prima o dopo il calcolo, secondo necessità.
Comprenda come vengono calcolati i totali
Per ogni riga, il generatore moltiplica la quantità per il costo unitario e arrotonda il totale risultante a due cifre decimali. Somma poi i totali di riga già arrotondati e arrotonda la somma per produrre il subtotale dell’ordine. Poiché questa capacità non accetta imposte, trasporto, sconti o altri adeguamenti, il totale restituito coincide con il subtotale. Questa sequenza esplicita è importante quando quantità frazionarie o costi unitari contengono più cifre decimali: un altro sistema che sommi valori intermedi non arrotondati potrebbe differire di un centesimo. La risposta conserva la descrizione normalizzata, la quantità numerica originale, il costo unitario arrotondato e il totale calcolato per ogni voce. A livello di documento restituisce tipo, numero fornito, acquirente, fornitore, righe, subtotale e totale. Tutti i numeri devono essere finiti; le stringhe che sembrano numeri non vengono convertite automaticamente. Anche i costi negativi sono rifiutati. Queste regole rendono subito visibili i dati errati e offrono a modelli, schermate di approvazione, database e integrazioni un contratto di calcolo stabile.
Usi il documento strutturato nel processo acquisti
Inserisca questa capacità dopo l’approvazione della richiesta e l’assegnazione del numero, quando i dati modificabili sono pronti a diventare una registrazione controllata. Invii i nomi normalizzati delle parti e le righe, quindi conservi l’oggetto restituito come risultato del calcolo per le fasi successive. Un modello può convertirlo in HTML o PDF, un servizio di approvazione può confrontare il totale con i limiti autorizzativi e un’integrazione può trasferire le righe a un ERP o al portale del fornitore. Tali azioni restano separate: il generatore non trasmette l’ordine, non contatta il fornitore, non crea file, non impegna il budget e non aggiorna le scorte. Non utilizza rete, orologio, valori casuali, archiviazione o stato nascosto; una richiesta identica produce quindi sempre la stessa risposta. Ciò semplifica i nuovi tentativi e i controlli. Risolva gli errori di convalida prima di presentare l’ordine alla firma, soprattutto in caso di righe assenti, dati delle parti vuoti, numero mancante o importi non numerici. La richiesta API costa $0.002, e lo stesso calcolo puro può alimentare l’esperienza nel browser.
Casi d'uso
Crei ordini di acquisto approvati
Converta le righe di richieste approvate in un ordine strutturato con totali coerenti.
Alimenti un modulo per gli acquisti
Calcoli i totali mentre il personale prepara i dati per la verifica e la rappresentazione.
Uniformi le integrazioni di acquisto
Offra alle applicazioni interne e ai fornitori un unico contratto di calcolo deterministico.
Domande frequenti
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002.
Che cosa accade se non vi sono voci?
La richiesta restituisce un errore di input non valido perché ogni ordine deve contenere almeno una voce.
Come vengono arrotondati gli importi?
Ogni quantità viene moltiplicata per il costo unitario e arrotondata a due decimali; i totali di riga vengono poi sommati e arrotondati.
Il generatore assegna un numero d’ordine?
No. Lei deve fornire il numero e il risultato lo conserva nel documento strutturato.
Il risultato include imposte, valuta o PDF?
No. Restituisce dati strutturati e totali calcolati. Imposte, valuta, rappresentazione e invio sono fasi separate.
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/doc/purchase-order-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"po_number":"PO-2026-0142","buyer":"Contoso Retail","vendor":"Northwind Supplies","line_items":[{"description":"Ergonomic keyboard","quantity":12,"unit_cost":79.95},{"description":"USB-C dock","quantity":5,"unit_cost":149.5}]}'const res = await fetch("https://api.kit.forhosting.com/doc/purchase-order-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"po_number": "PO-2026-0142",
"buyer": "Contoso Retail",
"vendor": "Northwind Supplies",
"line_items": [
{
"description": "Ergonomic keyboard",
"quantity": 12,
"unit_cost": 79.95
},
{
"description": "USB-C dock",
"quantity": 5,
"unit_cost": 149.5
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/purchase-order-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"po_number": "PO-2026-0142",
"buyer": "Contoso Retail",
"vendor": "Northwind Supplies",
"line_items": [
{
"description": "Ergonomic keyboard",
"quantity": 12,
"unit_cost": 79.95
},
{
"description": "USB-C dock",
"quantity": 5,
"unit_cost": 149.5
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/purchase-order-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"po_number":"PO-2026-0142","buyer":"Contoso Retail","vendor":"Northwind Supplies","line_items":[{"description":"Ergonomic keyboard","quantity":12,"unit_cost":79.95},{"description":"USB-C dock","quantity":5,"unit_cost":149.5}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"po_number":"PO-2026-0142","buyer":"Contoso Retail","vendor":"Northwind Supplies","line_items":[{"description":"Ergonomic keyboard","quantity":12,"unit_cost":79.95},{"description":"USB-C dock","quantity":5,"unit_cost":149.5}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/purchase-order-generate", 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
{
"po_number": "PO-2026-0142",
"buyer": "Contoso Retail",
"vendor": "Northwind Supplies",
"line_items": [
{
"description": "Ergonomic keyboard",
"quantity": 12,
"unit_cost": 79.95
},
{
"description": "USB-C dock",
"quantity": 5,
"unit_cost": 149.5
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.purchase_order_generate",
"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 | 200 |
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. |