Generi un preventivo con sconto e totali
Tre righe, uno sconto fisso e una validità di 21 giorni diventano un preventivo strutturato con totali di riga, subtotale, sconto e totale finale, tutto con il codice della sua valuta: indichi voci, quantità e prezzi. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Sconto
- 250
- Valuta
- usd
- Giorni di validità
- 21
- Riferimento del preventivo
- Q-2026-104
- Nome del cliente
- Northwind Studio
- Tipo di documento
- quote
- Valuta
- USD
Trasformi un elenco di servizi o prodotti in un preventivo strutturato e coerente, senza ricopiare cifre da una calcolatrice a un modello. Il generatore calcola ogni voce, il subtotale, uno sconto fisso e il totale finale, quindi registra per quanti giorni rimane valida l’offerta. Accetta inoltre un codice valuta, il nome del cliente e un riferimento.
Prepari voci di preventivo chiare
Inizi con un record per ogni servizio o prodotto che il cliente sta valutando. Ogni record richiede una descrizione e un prezzo unitario; se la quantità viene omessa, il valore predefinito è uno. Utilizzi descrizioni comprensibili anche quando il preventivo non sarà più accompagnato dalla conversazione commerciale: indichi il prodotto finale, il pacchetto, la licenza o la fase di lavoro invece di affidarsi ad abbreviazioni interne.
Le quantità possono rappresentare unità fisiche, postazioni di un abbonamento, giornate di consulenza o qualsiasi altra misura coerente. Il generatore moltiplica ogni prezzo unitario per la relativa quantità e arrotonda il totale della voce a due decimali. I prezzi devono essere pari o superiori a zero e le quantità devono essere positive.
Una voce a costo zero consente di documentare una prestazione inclusa o un servizio omaggio senza modificare il subtotale. Tutte le voci condividono il codice valuta indicato per il documento. Questa capacità contrassegna gli importi con tale codice, ma non converte valute, non aggiunge imposte e non recupera prezzi da un catalogo.
Fornisca valori commerciali definitivi e pronti per l’offerta. Un input esplicito rende il documento prevedibile, verificabile e adatto alle successive automazioni.
Applichi lo sconto e verifichi i totali
Lo sconto facoltativo è un importo fisso nella stessa valuta delle voci. Se viene omesso, il generatore utilizza zero. Calcola prima il totale di ogni voce, somma questi valori arrotondati per ottenere il subtotale, arrotonda lo sconto a due decimali e lo sottrae per produrre il totale finale.
Quest’ordine garantisce risultati stabili per fatture, sistemi di approvazione e generatori di documenti che richiedono la normale precisione monetaria. Lo sconto non può essere negativo né superare il subtotale. Se lo supera, la richiesta restituisce un errore di input non valido invece di produrre un preventivo con totale negativo.
Questa protezione è particolarmente utile quando gli sconti provengono da un campo CRM o da una regola commerciale automatica che potrebbe non essere aggiornata dopo la modifica delle voci. Imposte, anticipi, piani di pagamento e sconti percentuali sono intenzionalmente esclusi. Converta una promozione percentuale nel relativo importo fisso approvato prima di chiamare il generatore, così il calcolo e il documento rimarranno inequivocabili.
Utilizzi il documento strutturato e la validità
Il risultato è un preventivo strutturato, non un PDF impaginato. Identifica il tipo di documento, la valuta, il periodo di validità in giorni di calendario, le voci normalizzate e un riepilogo dei totali. I campi facoltativi relativi al cliente e al riferimento vengono inclusi solo quando sono forniti, mantenendo pulito l’output per i sistemi che distinguono un’informazione assente da una vuota.
La validità predefinita è di trenta giorni e può essere impostata da uno a 3,650 giorni. Poiché questa capacità è deterministica e non legge mai l’ora corrente, esprime la validità come durata invece di inventare una data di emissione o scadenza. Il sistema ricevente può associare la durata alla data e ora effettive quando invia o archivia il preventivo.
Questa separazione evita variazioni tra nuovi tentativi e rende affidabili i test di riferimento. Se desidera un file grafico completo, passi questa struttura convalidata al Suo motore di rendering. La capacità non effettua richieste di rete, non conserva dati dei clienti e genera sempre lo stesso risultato con lo stesso input.
Casi d'uso
Prepari una proposta di servizi
Calcoli workshop, giornate di implementazione e pacchetti di assistenza in un unico riepilogo coerente.
Quotizzi quantità di prodotti
Trasformi prezzi unitari e quantità in voci verificate prima di generare il documento per il cliente.
Automatizzi le approvazioni commerciali
Crei dati stabili che mostrino subtotale, concessione, totale e validità al flusso di approvazione.
Domande frequenti
Lo sconto è una percentuale?
No. Lo sconto è un importo monetario fisso nella valuta del preventivo.
Che cosa accade se lo sconto supera il subtotale?
La richiesta restituisce un errore di input non valido e non produce alcun preventivo.
Il generatore calcola le imposte?
No. Calcola soltanto le voci, il subtotale, lo sconto fisso e il totale finale.
La validità contiene una data di scadenza?
No. Restituisce un numero deterministico di giorni che il Suo sistema può associare alla data effettiva di emissione.
Posso inserire nel preventivo una voce non addebitata?
Sì. Una riga a prezzo zero documenta un elemento incluso o un servizio offerto senza cambiare il subtotale, così il cliente vede l’intera portata dell’offerta.
Strumenti correlati
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/quote-estimate-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"description":"Discovery workshop","price":450,"quantity":1},{"description":"Implementation day","price":800,"quantity":3}]}'const res = await fetch("https://api.kit.forhosting.com/doc/quote-estimate-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
{
"description": "Discovery workshop",
"price": 450,
"quantity": 1
},
{
"description": "Implementation day",
"price": 800,
"quantity": 3
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/quote-estimate-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
{
"description": "Discovery workshop",
"price": 450,
"quantity": 1
},
{
"description": "Implementation day",
"price": 800,
"quantity": 3
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/quote-estimate-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":[{"description":"Discovery workshop","price":450,"quantity":1},{"description":"Implementation day","price":800,"quantity":3}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":[{"description":"Discovery workshop","price":450,"quantity":1},{"description":"Implementation day","price":800,"quantity":3}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/quote-estimate-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
{
"items": [
{
"description": "Discovery workshop",
"price": 450,
"quantity": 1
},
{
"description": "Implementation day",
"price": 800,
"quantity": 3
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.quote_estimate_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. |
Note tecniche
Il risultato è un JSON deterministico utilizzabile in approvazioni, portali clienti, modelli di documenti, e-mail o registri interni, con calcoli semplici da verificare.
Applichi lo sconto e verifichi i totali
Prima dell’invio, confronti il riepilogo restituito con l’approvazione commerciale: subtotal mostra il valore prima delle concessioni, discount_amount rende evidente la concessione e total indica l’importo proposto al cliente.
Utilizzi il documento strutturato e la validità
Utilizzi direttamente il JSON restituito in un portale clienti, lo inserisca in un modello con il Suo marchio, lo alleghi a un’opportunità o lo inoltri a un flusso di approvazione.
Domande tecniche
Quanto costa una richiesta?
Ogni richiesta costa $0.002.