Free quote generator
Price the work, set how long the offer stands, and download the quote as a PDF. No signup, no watermark.
This free quote generator prints a quote with the ASHDOCS invoicing engine, the same one paid accounts use for quotes and invoices. The heading reads Quote, the client block reads Quote for, and the second date is Valid until.
A quote, not a relabelled invoice
The document is a quote in the engine itself, with its own heading, Quote for block and Valid until date.
16 designs
The same designs as invoices, so the quote and the invoice that follows it match.
From quote to invoice
With a free account, a quote can be sent, accepted on its hosted page and turned into an invoice.
For developers: quotes from the API
Send "kind": "quote" to POST /api/v1/invoices and the API numbers the quote in its own sequence, prints it and gives it a hosted page the client can accept.
curl -X POST https://www.ashdocs.com/api/v1/invoices \
-H "X-API-Key: ash_test_..." \
-H "Content-Type: application/json" \
-d '{
"kind": "quote",
"customer": { "name": "Acme Inc", "email": "ap@acme.com" },
"line_items": [
{ "description": "Website redesign", "quantity": "1", "unit_price": "4800.00", "tax_rate": "8.25" }
],
"currency": "USD",
"valid_until": "2026-11-08",
"issue": true,
"send": { "channels": [{ "type": "email" }] }
}'const res = await fetch("https://www.ashdocs.com/api/v1/invoices", {
method: "POST",
headers: { "X-API-Key": "ash_test_...", "Content-Type": "application/json" },
body: JSON.stringify({
kind: "quote",
customer: { name: "Acme Inc", email: "ap@acme.com" },
line_items: [
{ description: "Website redesign", quantity: "1", unit_price: "4800.00", tax_rate: "8.25" },
],
currency: "USD",
valid_until: "2026-11-08",
issue: true,
send: { channels: [{ type: "email" }] },
}),
});
const quote = await res.json();
console.log(quote.number, quote.hosted_url);import requests
r = requests.post(
"https://www.ashdocs.com/api/v1/invoices",
headers={"X-API-Key": "ash_test_..."},
json={
"kind": "quote",
"customer": {"name": "Acme Inc", "email": "ap@acme.com"},
"line_items": [
{"description": "Website redesign", "quantity": "1", "unit_price": "4800.00", "tax_rate": "8.25"}
],
"currency": "USD",
"valid_until": "2026-11-08",
"issue": True,
"send": {"channels": [{"type": "email"}]},
},
)
quote = r.json()
print(quote["number"], quote["hosted_url"]){
"id": "inv_4b7e0c2a91d34f6e8a10",
"kind": "quote",
"status": "issued",
"number": "QUO-0001",
"customer": { "name": "Acme Inc", "email": "ap@acme.com", "id": "cus_2f9c41d07a6b4e1c9d55" },
"currency": "USD",
"valid_until": "2026-11-08",
"auto_convert": false,
"template": "clean",
"totals": {
"subtotal_formatted": "$4,800.00",
"tax_formatted": "$396.00",
"total_formatted": "$5,196.00"
},
"pdf_url": "https://api.ashdocs.com/api/v1/invoices/inv_4b7e0c2a91d34f6e8a10/pdf",
"hosted_url": "https://api.ashdocs.com/i/<token>",
"credits_cost": 0,
"testing": true
}Response trimmed; values illustrative. Test keys report 0 credits; issuing with a live key uses 1 credit.
How to use the free quote generator
Add your business and the client, keep or change the quote number, and set the issue date and the date the quote is valid until. Add each item with a quantity, rate and tax, add a discount if you offer one, and write your terms. Then select Download PDF.
What a good quote includes
A quote is an offer: it tells the client what the work will cost before they agree to it. Clear quotes usually show:
- Who the quote is from and who it is for.
- A quote number and the date it was issued.
- Each item or stage of work, with quantities and prices.
- Tax, any discount and the total.
- How long the price stands (the valid-until date).
- Your terms: what is included, what is not, and how payment will work.
Quotes, estimates and invoices
A quote and an estimate both price work in advance; a quote is usually a fixed offer, an estimate a best guess. An invoice comes after the work and asks for payment. When the client accepts, the free invoice generator makes the invoice in the same design.
What the free quote generator does, and what needs an account
Everything above is free with no signup: the form, the live preview and the PDF download, with no watermark and no email address asked for. You can make 20 free PDFs a day from one connection; previews never count towards that.
An account adds what happens after the PDF: sending the document by email, a hosted page your client can open, a payment link, reminders before and after the due date, and a record of when it was viewed and paid. The free plan includes 100 credits a month and needs no card. "Send it and track it" brings what you typed here into the new account as a draft, so you do not type it twice.
What happens to what you type
The details you enter are sent to ASHDOCS only to draw the preview and print the PDF, and they are not stored. To stop abuse of the free tool we keep a log of each PDF made, with the IP address, browser and file size, for 30 days. If you choose "Send it and track it", the document waits in your browser's local storage until you sign in, and is then saved to your account.
Frequently asked questions
Is the quote generator free?
Yes. Making and downloading quotes is free, with no account and no watermark, up to 20 PDFs a day from one connection.
Can the client accept the quote online?
With a free account, yes: a sent quote gets a hosted page the client can open and accept, and it can then become an invoice.
Can I add tax and a discount?
Yes. Each line takes its own tax rate, and you can add a percentage or fixed discount to the whole quote.
Can I save my quotes?
Download the PDF to keep it. "Send it and track it" saves the quote to a free account as a draft.