> For the complete documentation index, see [llms.txt](https://docs.peakcommerce.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.peakcommerce.com/product/sales-portal/creating-and-editing-quotes.md).

# Creating & Editing a Quote

Building a quote takes two things: the **quote details** (who it's for and on what terms) and the **line items** (what they're buying, at what price and discount). This page walks through both, plus catalog pricing and the internal approval flow that guards large discounts. For the list view and statuses, see [Quotes](/product/sales-portal/quotes-overview.md).

## Start a new quote

From the **Quotes** list, click **New quote**. That opens the full-page quote editor. (You need the **Quotes** permission on your profile — see [Quotes](/product/sales-portal/quotes-overview.md) for how access is granted.)

The editor keeps a **sticky header** at the top as you scroll: the quote's name, a live **status badge** (green once processed, red if a commit failed), and the **Cancel** and **Save quote** buttons — so where the quote stands and how to save it are always in view.

## Quote details

The top of the editor captures the terms of the deal:

* **Quote name** — a short label so you can recognise it in the list (for example "Q3 expansion").
* **Billing account** — the customer's billing account identifier.
* **Currency** — the currency the quote is priced in.
* **Term** — the contract length (12, 24, or 36 months).
* **Billing period** — how often the customer is billed (annual, monthly, quarterly).
* **Order type** — what kind of order this quote will produce when processed: a **New order**, a **Change order** (a change to an existing order), or a **Renewal**.
* **Expires** — the date after which the quote is no longer valid to the customer.

## Line items

Below the details, add a row for each product or service:

* **Product** — type a free-text name, or use the **catalog picker** (the book icon beside the name) to link the line to a **catalog plan**. A linked line shows the picker highlighted; choosing **Custom line** unlinks it and keeps whatever price you type.
* **Qty** — how many.
* **Unit price** — the price per unit. For a custom line this is always your number; for a plan-linked line it can be replaced by the catalog's price (below).

Each row shows its **line total**, and the editor keeps a running **subtotal**. Use **Add line item** to add a row and the trash icon to remove one.

### Reprice from catalog

When at least one line is linked to a catalog plan, a **Reprice from catalog** button appears. It's on-demand — repricing never happens behind your back. Clicking it saves your lines, then replaces the typed price on each plan-linked line with the catalog's authoritative price, and recomputes the totals **preserving your discount percentage** — a reprice never silently drops or changes the concession you set. Custom (unlinked) lines are left exactly as you entered them.

Repricing is deliberately honest about what it can't price. It refuses — and names the affected lines in a warning panel — rather than fabricate a number, when:

* **the plan can't be resolved** to a billable plan in the catalog;
* **the plan has no priceable recurring charge** in the catalog;
* **the line needs a live billing quote** — tiered/volume-banded charges, and display-only or passthrough charges, have no trustworthy single local price.

Lines with warnings keep the price you typed; the warning tells you which ones to verify against a live billing quote.

## Discount and totals

Below the line items, enter a **Discount %**. The editor shows the derived discount **amount** against the subtotal and the resulting **Total** live as you type.

## Internal approval — discounts over your authority

When the workspace has a **discount authority ceiling** configured, a quote whose discount exceeds it is **held**: an **Approval** panel appears explaining the discount and the ceiling, and the quote cannot be sent to a customer or processed into an order until a teammate approves it.

* **Request approval** raises a request; the quote moves to **Pending approval**.
* **Two-person rule** — the request must be decided by a **different user** than the one who raised it. Self-approval is refused outright.
* **The approval covers the granted discount only.** If you later raise the discount above what was approved, the quote **re-locks** and needs a fresh approval. Lowering the discount back within the approved amount (or within your own authority) clears the hold.
* **A rejection** returns the quote to draft, but the gate stays closed — the rep either lowers the discount or gets a new request approved.
* **No ceiling configured?** Then no discount is ever "over authority" and the panel never appears.
* **Fail-closed.** If the authority policy can't be read, the quote stays held. A policy read failure never silently widens what a rep may give away.

## Save

Click **Create quote** (or **Save quote** when editing) to store the quote, its line items, and its totals. Nothing is billed at this stage — saving a quote just captures the proposal, and the editor says so.

## Edit an existing quote

Open any quote from the list's **actions menu** (**Open** or **Edit**) to come back into the same editor. Change the details or line items and save again; the totals update in the list.

> **Gotcha — edits after sending.** There is no quote versioning live today: if you edit a quote **after** sending it, a customer who opens their still-un-actioned approval link sees the **current** state of the quote, not the state at send time. If the terms changed materially, tell the customer — don't rely on the link to carry history. See [Sending a Quote for Customer Approval](/product/sales-portal/sending-quotes-for-customer-approval.md).

A quote that has been processed into an order shows that in the editor (with the order reference) and is kept as the record of what was agreed.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.peakcommerce.com/product/sales-portal/creating-and-editing-quotes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
