# Quotes A quote is a pricing estimate for requested goods or services and can help facilitate negotiation before creating or modifying an order. Customers can accept or reject a quote. If accepted, depending on which [acceptance conditions](/docs/dev-docs/api/quotes/postquote#quotes/postquote/t=request&path=&d=0/acceptanceconditions) are defined and fulfilled, an order is created or modified based on the quote. A quote has an expiration date. Merchants can recall or cancel an issued quote. Quotes can only be edited when they are in `draft` status. To edit an issued quote, [recall a quote](/docs/dev-docs/api/quotes/postquoterecall/), edit, and issue it again. For detailed information on the quote API and related operations, see [Quotes](/docs/dev-docs/api/quotes/). To create and manage quotes using the Rebilly UI, see [Manage quotes](/docs/data-tables/manage-quotes). A quote can be created using the [Create a quote](/docs/dev-docs/api/quotes/postquote/) operation. This option creates a new quote that conveys a proposed order to the customer, so that they can accept or reject the proposal before an order is created or modified. There are 3 [Quote types](/docs/dev-docs/api/quotes/postquote#quotes/postquote/t=request&path=&d=0/type): | **Type** | **Description** | | --- | --- | | `creation` | Quote for new orders. When the quote is accepted, a new order is created. | | `change` | Quote for modifications to existing recurring orders. This type of quote is used when the customer wants to add or remove items from their order. When this quote is accepted, quote items and settings are applied to the related order. This type of quote can be created for active orders only. | | `reactivation` | Quote for reactivating canceled or churned recurring orders. When the quote is accepted, quote items and settings are applied to the order and the order is reactivated. This type of quote can be used for canceled or churned orders only. | When a quote is accepted, depending on which [acceptance conditions](/docs/dev-docs/api/quotes/postquote#quotes/postquote/t=request&path=&d=0/acceptanceconditions) are defined and fulfilled: a new order is created based on the quote, or an existing order is modified based on the [order.id](/docs/dev-docs/api/quotes/postquote#quotes/postquote/t=request&path=&d=1/order/id) that was passed in the request body. ## Quote lifecycle This section describes the quote lifecycle and related terms. | **Status** | **Description** | | --- | --- | | `draft` | Quote is not issued yet. In this state, the quote can be edited. | | `issued` | Quote is issued to the customer. In this state, the quote cannot be edited. | | `accepted` | Customer accepted the quote and created an order. | | `rejected` | Customer rejected the quote. | | `canceled` | Merchant organization canceled the quote. | | `expired` | Expired before customer or organization interaction. | ### Quote issued, edited, and accepted This section describes the lifecycle of a quote that is created, issued, edited, and then accepted. ```mermaid graph LR; A(1. Draft) --> |Issue| B(2. Issued) --> |Recall| A(1. Draft) B(2. Issued) --> |Acceptance| D(3. Accepted) --> E(4. Order created/modified) ``` 1. A quote is created and is assigned the `draft` status. In this state, the quote can be edited. Create a new quote using the [Create a quote](/docs/dev-docs/api/quotes/postquote/) operation. Specify `type` to create, change or reactivate an order. 2. The quote is issued to the customer and is assigned the `issued` status. In this state, the quote cannot be edited. Quotes are issued using the [Issue a quote](/docs/dev-docs/api/quotes/postquoteissuance/) operation. 1. The customer requests some changes to the quote. The quote is recalled and is assigned the `draft` status so that it can be edited. Quotes are recalled using the [Recall a quote](/docs/dev-docs/api/quotes/postquoterecall/) operation. 2. The quote is edited and issued to the customer again. The quote is assigned the `issued` status. 3. The customer accepts the quote. The quote is assigned the `accepted` status. Quotes are accepted using the [Accept a quote](/docs/dev-docs/api/quotes/postquoteacceptance/) operation. 4. When a quote is accepted, depending on which [acceptance conditions](/docs/dev-docs/api/quotes/postquote#quotes/postquote/t=request&path=&d=1/acceptanceconditions) are defined and fulfilled, the [orderId](/docs/dev-docs/api/quotes/postquoteacceptance/#!t=response&c=200&path=0/orderId) that was passed in the request body is used to modify or create an order based on the data in the quote. ### Quote issued and rejected This section describes the lifecycle of a quote that is rejected. ```mermaid graph LR; A(1. Draft) --> |Issue| B(2. Issued) --> |Customer rejection| C(3. Rejected) ``` 1. A quote is created and is assigned the `draft` status. In this state, the quote can be edited. Create a new quote using the [Create a quote](/docs/dev-docs/api/quotes/postquote/) operation. Specify `type` to create, change, or reactivate an order. 2. The quote is issued to the customer and is assigned the `issued` status. In this state, the quote cannot be edited. Quotes are issued using the [Issue a quote](/docs/dev-docs/api/quotes/postquoteissuance/) operation. 3. The quote is rejected by the customer. The quote and is assigned the `rejected` status. When a quote is rejected, the quote the associated order is not created or modified. Quotes are rejected using the [Reject a quote](/docs/dev-docs/api/quotes/postquoterejection/) operation. ### Quote issued and canceled This section describes the lifecycle of a quote that is canceled. ```mermaid graph LR; A(1. Draft) --> |Issue| B(2. Issued) --> |Organization cancels| C(3. Canceled) ``` 1. A quote is created and is assigned the `draft` status. In this state, the quote can be edited. Create a new quote using the [Create a quote](/docs/dev-docs/api/quotes/postquote/) operation. Specify `type` to create, change, or reactivate an order. 2. The quote is issued to the customer and is assigned the `issued` status. In this state, the quote cannot be edited. Quotes are issued using the [Issue a quote](/docs/dev-docs/api/quotes/postquoteissuance/) operation. 3. The organization cancels the quote. The quote is assigned the `canceled` status. When a quote is canceled, the associated order is not created or modified. Quotes are canceled using the [Cancel a quote](/docs/dev-docs/api/quotes/postquotecancellation/) operation. ### Quote issued and expired This section describes the lifecycle of a quote that is expired. ```mermaid graph LR; A(1. Draft) --> |Issue| B(2. Issued) --> |Exceeds expiration date| C(3. Expired) ``` 1. A quote is created and is assigned the `draft` status. In this state, the quote can be edited. Create a new quote using the [Create a quote](/docs/dev-docs/api/quotes/postquote/) operation. Specify `type` to create, change, or reactivate an order. 2. The quote is issued to the customer and is assigned the `issued` status. In this state, the quote cannot be edited. Quotes are issued using the [Issue a quote](/docs/dev-docs/api/quotes/postquoteissuance/) operation. 3. The quote exceeds the expiration date before it is accepted or rejected. The quote is assigned the `expired` status. The quote cannot be modified or re-issued, and the associated order is not updated or modified. A new quote must be created if the customer wants to proceed. ## Related webhooks - [Quote created](/docs/dev-docs/api/quotes/quote-created/) - [Quote issued](/docs/dev-docs/api/quotes/quote-issued/) - [Quote recalled](/docs/dev-docs/api/quotes/quote-recalled/) - [Quote accepted](/docs/dev-docs/api/quotes/quote-accepted/) - [Quote rejected](/docs/dev-docs/api/quotes/quote-rejected/) - [Quote canceled](/docs/dev-docs/api/quotes/quote-canceled/) - [Quote expired](/docs/dev-docs/api/quotes/quote-expired/) - [Quote updated](/docs/dev-docs/api/quotes/quote-updated/) ## Related topics - [Quotes API operations](/docs/dev-docs/api/quotes/). - [Quotes in the Rebilly UI](/docs/data-tables/manage-quotes).