Quoting & negotiation
What a B2B quote must contain, field by field
By Jahangir Alam · September 18, 2026 · 9 min read
A B2B quote needs fifteen things, and thirteen of them are boring. The two that aren't - an explicit expiry and explicit acceptance mechanics - are the two most commonly left off, and they are the reason quotes turn into arguments.
Here is the whole list, then the reasoning for each, then a skeleton you can copy.
The short answer
Identify it: quote number · issue date · your legal entity and contact · the buyer's company, location and contact
Bound it: valid until (a date, not a duration) · lead time or delivery window · currency
Itemise it: per line - description, quantity, unit of measure, unit price, line total · subtotal
Price it: shipping or freight position · tax position · total, stated once
Close it: payment terms · how to accept, and what happens when they do
Fifteen. If your quote has all fifteen and a buyer still comes back confused, the problem is the wording of one of them, not a missing sixteenth.
The copyable skeleton
QUOTE Q-2026-0412 Issued 18 Sep 2026
Valid until 18 Oct 2026
From To
Your Company Ltd Buyer Company Inc
Registered address Ship-to: Location name + address
Contact name, email, phone Contact name, email
Currency: USD Lead time: 3-4 weeks from acceptance
LINE DESCRIPTION QTY UOM UNIT LINE TOTAL
1 Item, spec, part number 400 ea 4.25 1,700.00
2 Item, spec, part number 50 box 18.00 900.00
3 Installation (custom) 2 day 450.00 900.00
4 Freight to ship-to 1 ea - Included
Subtotal 3,500.00
Tax per note below
TOTAL 3,500.00
Payment terms: Net 30 from invoice date
Tax: quoted exclusive of tax; tax applied per your account's status at invoicing
Notes: prices held to the valid-until date; Q1 pricing subject to a new quote
To accept: reply to this quote, or accept the lines you want in the portal.
Lines you don't accept stay open - they are not declined.
Nothing there is decoration. The rest of this post is what each part is load-bearing for.
Identify it
Quote number. One unique reference both sides can say out loud. Without it the thread is "the quote you sent last week", and there were two.
Issue date. The clock's start. An expiry with no issue date is unauditable - you can't show when the window opened.
Your legal entity. Not your brand, the entity that would actually invoice. Buyers with purchase-order processes match the entity on the quote against the entity on the invoice, and a mismatch stalls payment in accounts payable.
Their company, location, and contact. B2B buys happen at a location, not a company - a branch with its own ship-to address, its own approver and often its own terms. Quoting to "Buyer Company Inc" when there are nine branches means someone has to ask which one, and the answer changes the freight.
Bound it
Valid until, as a date. "Valid for 30 days" makes the reader do arithmetic from a date they have to find, and they will get it wrong in your disfavour. Put the date.
This is the field most often missing, and its absence is expensive in both directions: without it, a buyer can reasonably treat a six-month-old price as live, and you have no clean way to say no. With it, the conversation is "that one expired - here's a current price", which is a normal commercial sentence rather than a retraction.
Lead time or delivery window. Tie it to acceptance, not to the issue date: "3-4 weeks from acceptance". A lead time counted from issue quietly expires while the buyer is still deciding.
Currency. Explicitly, as a code. $ is at least five currencies, and a buyer in Toronto reading a US quote will assume the wrong one exactly once.
Itemise it
Per line: description, quantity, unit of measure, unit price, line total.
Unit of measure is the one people skip. "50" of something that ships in boxes of 12 is an order waiting to be disputed. ea, box, case, pallet, m, kg, day - say which.
Description carries the spec. For anything configured or made to order, the line is where the agreed specification lives. A quote that says "bracket" and a drawing attached in an email are two documents that will disagree in three months. Put the spec, the material, the tolerance, the part number - whatever makes the line unambiguous - on the line.
Custom lines are legitimate lines. Installation, commissioning, tooling, freight, a made-to-order item that isn't in your catalogue. If the deal includes two days of commissioning, that belongs on the quote with a price, not in a note. Notes don't carry through to the order; lines do.
Subtotal, before shipping and tax. It's the number both sides negotiate against.
Price it
Shipping or freight position. State it even when it's zero, because "not mentioned" reads as "not charged" and gets discovered at invoicing. If you're absorbing it, say so on a line - a freight line reading Included is clearer than no freight line at all, and it sets the expectation that freight was considered rather than forgotten.
One arithmetic rule if you do that: a line whose price you've hidden has to actually be zero, and the total has to be the figure you agreed rather than a sum of the visible rows. Otherwise a buyer subtracts the rows from the total and reads the number you didn't print.
Tax position. Whether the quoted figures include tax, exclude it, or are being quoted to an account with an exemption on file. Get this wrong and the total moves between quote and invoice, which is the single most common reason a buyer disputes an invoice they already approved.
You do not need to compute the tax on the quote, and often shouldn't - the rate can depend on the ship-to and on the buyer's status at the time of invoicing. What you do need is an unambiguous sentence about which of those three situations applies.
Total, stated once. One number, in one place, matching the lines. Two totals on a document is a document with a bug.
Close it
Payment terms. Net 15, Net 30, Net 60, due on receipt - and whether the term is from invoice date or from delivery. "Net 30" alone is ambiguous on that point and both readings are in common use.
How to accept, and what accepting does. This is the other habitually missing field, and it matters more now that buyers expect to accept part of an offer.
Say what happens on acceptance: does it become an order, or does it become a confirmation you then invoice against? Say what a partial answer means: if a buyer takes lines 1 and 2 and leaves line 3, line 3 is still open - not declined, and not something they have to re-request. And say what doesn't happen: once a quote is out and the buyer is reading it, its lines are fixed. If something needs to change, that's a new quote or a counter, not an edit under them.
What does not belong on a quote
- Internal cost or margin. Obvious, and it still leaks - usually in a spreadsheet column nobody hid before exporting.
- Your discount reasoning. "Because they threatened to leave" is a note for your record, not a line on their document.
- Prices for anything they didn't ask about. An upsell on a quote reads as padding and invites a line-by-line audit of the rest.
- A second total. See above.
- Terms you can't honour. A lead time you're hoping for isn't a lead time.
This is the document. The record is a different thing
Worth separating, because they get conflated and they have different jobs.
The quote is what you send: one version, one price, addressed to one buyer, designed to be read and answered.
The record is what you keep: every version, every counter, who sent what and when, why the price moved. A buyer never sees it, and six months later it's the only thing that can answer "what did we actually agree?"
The fifteen fields above are the sending document. What a quote record should keep is the other half - and a setup where the second is just a folder of sent PDFs is one where the first question you get asked has no answer.
FAQ
What should a B2B quote include?
A quote number and issue date, your legal entity and the buyer's company, location and contact, an explicit valid-until date, currency, lead time, and then per line a description with the spec, quantity, unit of measure, unit price and line total. Below the lines: subtotal, the shipping position, the tax position, one total, payment terms, and how to accept.
How long should a B2B quote be valid?
There is no standard period, and the right answer depends on how fast your input costs move. What matters more than the length is that the expiry is on the document as a date rather than a duration, so neither side has to calculate it.
Do I have to put tax on a quote?
Usually not as a computed figure, because the rate can depend on the ship-to and on the buyer's tax status at the time of invoicing. What you do need is a clear statement of whether the quoted prices include tax, exclude it, or assume an exemption already on file.
What is the difference between a quote and a proforma invoice?
A quote is an offer with an expiry, and it is not a demand for payment. A proforma invoice is a payment-request document issued before the goods or the final invoice, often used for prepayment or customs. They can carry similar line detail, but the quote asks for a decision and the proforma asks for money.
Is a quote legally binding?
That depends on your jurisdiction, your wording, and what the buyer did in response - which is exactly why the expiry date and the acceptance mechanics belong on the document. This is a question for your own legal advice rather than a general rule.
Can I change a quote after sending it?
You should not change the document a buyer is currently reading, because then the version they answered and the version on file differ. Send a revised quote with a new number, or counter - and keep both on the record.
Where QuotWay fits
QuotWay is a B2B quote and negotiation app for Shopify, built by EFOLI. It produces the document described above from the request the buyer actually submitted: the lines carry the agreed spec and price, the quote carries an expiry, the buyer can accept part of a proposal while the rest stays open, and the accepted lines convert into a native Shopify draft order at the agreed figures so nothing is re-keyed. Every version stays on the quote's timeline. See how negotiation works, the request-a-quote form fields for the other end of the same document, or the plans and pricing - the free Lite plan runs the whole loop.
Sources
Related articles
See how QuotWay handles this on your store.