---
title: "Update a quote"
method: PATCH
path: "/entities/Quotes/{id}"
tags: ["Quote"]
---

# Update a quote

`PATCH /entities/Quotes/{id}`

## Request

- Base URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id`
- URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id/entities/Quotes/{id}`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/coevera/apis/coevera-crm-api/docs/entities/Quotes/:id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Changes the fields you send and leaves the rest as they are.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `validation-level` integer

## Request body

- UpdateQuoteInput: Field values to change on a Quote record; fields left out keep their values.
  - `currency_exchange_rates_list_id` string, uuid: Id of the currency exchange rate list applied to this quote.
  - `description` string: Free-form description of the quote.
  - `expiration_date` string, date: Date after which the quote is no longer considered valid.
  - `is_archived` boolean: True when the quote has been archived (lost). Archived quotes remain readable but are hidden from active lists and cannot be edited until reactivated.
  - `name` string: Name of the entity and its default text representation.
  - `oppty_id` string, uuid: Id of the opportunity.
  - `owner_id` string, uuid: Id of the quote owner.
  - `product_currency_id` string, uuid: Id of the currency used for product line-item prices on this quote.
  - `product_price_list_id` string, uuid: Id of the price list that supplies prices for product line items added to this quote, or empty to use catalog defaults.
  - `product_sections` object: Product sections grouping the record's line items, as a JSON array of {"id": <UUID>, "name": <string>} objects. Validated on write. Full structure: https://developers.coevera.com/reference/graphql/types/p/#ProductSection This payload conforms to the `ProductSection` JSON Schema (see the linked schema).
  - `quick_account_email` string: Free-text company email captured at quote creation when no Account record has been linked yet.
  - `quick_account_name` string: Free-text company name captured at quote creation when no Account record has been linked yet.
  - `quick_account_phone` string: Free-text company phone captured at quote creation when no Account record has been linked yet.
  - `quick_contact_name` string: Free-text contact name captured at quote creation when no Contact record has been linked yet.
  - `quick_email` string: Free-text contact email captured at quote creation when no Contact record has been linked yet.
  - `quick_phone` string: Free-text contact phone captured at quote creation when no Contact record has been linked yet.
  - `quote_type_id` string, uuid: Id of the quote type that classifies this quote.
  - `reason_of_close_description` string: Free-form note explaining why the quote was archived (lost).
  - `reason_of_close_id` string, uuid: Id of the reason of close option selected when the quote was archived (lost).
  - `share_mode` 0 | 1 | 2 | 3: Sharing model applied on top of the owner/unit visibility (e.g. shared with selected sales units or selected users). The matching sharing_units / sharing_clients lists control who is granted access. Integer enum value: 0 - Standard, 1 - Private, 2 - AllView, 3 - AllEdit
  - `step_id` string, uuid: Id of the quote-process step.
  - `unit_id` string, uuid: Id of the sales unit.
  - `version` integer: Revision number of the quote, incremented when a new version of the same quote is created.
  - `revision` integer: Revision when entity was lastly changed.
  - `total_amount` object: Total monetary value of the quote in the team space base currency, with the foreign value and currency code preserved alongside.
    - `base_value` number, double, required: Value in the base currency of the space. If empty, it is calculated from value_foreign at the current exchange rate.
    - `currency_id` string, uuid, required: Id of the currency of value_foreign.
    - `value_foreign` number, double, required: Value in the currency set by currency_id. If empty, it is calculated from base_value at the current exchange rate.
  - `product_relations` object[]: Product line items on this quote. Each entry holds the product, quantity, price and discount that contribute to total_amount.
    - `id` string, uuid: Id of the related OpptyProductRelation record.
  - `contact_relations` object[]: Contacts linked to this quote.
    - `id` string, uuid: Id of the related QuoteContactRelation record.
  - `account_relations` object[]: Accounts linked to this quote, including the primary-account flag.
    - `id` string, uuid: Id of the related QuoteAccountRelation record.
  - `documents` object[]: Documents linked to this quote.
    - `id` string, uuid: Id of the related CloudObjectRelation record.
  - `sharing_units` object[]: Sales units that have been granted shared access to this quote. Editable only when share_mode allows unit sharing.
    - `id` string, uuid: Id of the related QuoteSharingSalesUnitRelation record.
  - `sharing_clients` object[]: Users that have been granted shared access to this quote. Editable only when share_mode allows user sharing.
    - `id` string, uuid: Id of the related QuoteSharingClientRelation record.
  - `is_active_in_opportunity` boolean: If quote is set as active in opportunity.
  - `static_profiles` object[]: Saved view profiles this quote currently matches.
    - `id` string, uuid: Id of the related ProfileRelation record.
  - `tags` object[]: Tag labels applied to this quote.
    - `id` string, uuid: Id of the related TagRelation record.

## Response `200`

The changed Quote record.

- object
  - `success` boolean: True when the request succeeded; false on error.
  - `data` Quote: Price offer for a customer, usually prepared from an opportunity, with product line items; it moves through a quote process.
    - `is_delete_protected` boolean, required: True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
    - `id` string, uuid, required: Unique identifier of entity.
    - `is_deleted` boolean: Specifies if the entity is considered deleted.
    - `modified` string, date-time: Last modification time.
    - `created` string, date-time: Creation time.
    - `currency_exchange_rates_list` string, uri: Currency exchange rate list used to convert monetary fields linked to this quote. Empty to inherit the team space default. Related CurrencyExchangeRatesList record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'CurrencyExchangeRatesList' for its fields.
    - `oppty` string, uri: Opportunity this quote was prepared for. Empty for standalone quotes. Related Opportunity record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Opportunity' for its fields.
    - `owner` string, uri, required: Sales user who owns this quote. Related Client record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Client' for its fields.
    - `product_currency` string, uri, required: Currency used for product line-item prices on this quote. Related Currency record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Currency' for its fields.
    - `product_price_list` string, uri: Product price list used to populate prices for product line items added to this quote. Empty to use catalog defaults. Related ProductPriceList record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'ProductPriceList' for its fields.
    - `quote_type` string, uri, required: Quote type that classifies this quote. Each type maps to one quote process and drives which form, fields and stages apply. Related QuoteType record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'QuoteType' for its fields.
    - `reason_of_close` string, uri: Configurable reason recorded when the quote is archived (lost). Required when the lost form mandates it. Related Data record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Data' for its fields.
    - `step` string, uri, required: Quote-process step the quote is currently sitting in. Reaching the last step in the process marks the quote as accepted. Related Step record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Step' for its fields.
    - `unit` string, uri, required: Sales unit this quote is assigned to. Determines which team members can see the record under unit-based sharing. Related SalesUnit record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'SalesUnit' for its fields.
    - `currency_exchange_rates_list_id` string, uuid: Id of the currency exchange rate list applied to this quote.
    - `description` string: Free-form description of the quote.
    - `expiration_date` string, date: Date after which the quote is no longer considered valid.
    - `is_archived` boolean: True when the quote has been archived (lost). Archived quotes remain readable but are hidden from active lists and cannot be edited until reactivated.
    - `name` string, required: Name of the entity and its default text representation.
    - `oppty_id` string, uuid: Id of the opportunity.
    - `owner_id` string, uuid, required: Id of the quote owner.
    - `product_currency_id` string, uuid: Id of the currency used for product line-item prices on this quote.
    - `product_price_list_id` string, uuid: Id of the price list that supplies prices for product line items added to this quote, or empty to use catalog defaults.
    - `product_sections` object: Product sections grouping the record's line items, as a JSON array of {"id": <UUID>, "name": <string>} objects. Validated on write. Full structure: https://developers.coevera.com/reference/graphql/types/p/#ProductSection This payload conforms to the `ProductSection` JSON Schema (see the linked schema).
    - `quick_account_email` string: Free-text company email captured at quote creation when no Account record has been linked yet.
    - `quick_account_name` string: Free-text company name captured at quote creation when no Account record has been linked yet.
    - `quick_account_phone` string: Free-text company phone captured at quote creation when no Account record has been linked yet.
    - `quick_contact_name` string: Free-text contact name captured at quote creation when no Contact record has been linked yet.
    - `quick_email` string: Free-text contact email captured at quote creation when no Contact record has been linked yet.
    - `quick_phone` string: Free-text contact phone captured at quote creation when no Contact record has been linked yet.
    - `quote_number` string: Auto-generated sequential identifier of the quote, used for human-readable reference.
    - `quote_type_id` string, uuid: Id of the quote type that classifies this quote.
    - `reason_of_close_description` string: Free-form note explaining why the quote was archived (lost).
    - `reason_of_close_id` string, uuid: Id of the reason of close option selected when the quote was archived (lost).
    - `share_mode` 0 | 1 | 2 | 3: Sharing model applied on top of the owner/unit visibility (e.g. shared with selected sales units or selected users). The matching sharing_units / sharing_clients lists control who is granted access. Integer enum value: 0 - Standard, 1 - Private, 2 - AllView, 3 - AllEdit
    - `step_id` string, uuid, required: Id of the quote-process step.
    - `unit_id` string, uuid: Id of the sales unit.
    - `version` integer: Revision number of the quote, incremented when a new version of the same quote is created.
    - `revision` integer: Revision when entity was lastly changed.
    - `total_amount` object, required: Total monetary value of the quote in the team space base currency, with the foreign value and currency code preserved alongside.
      - `base_value` number, double, required: Value in the base currency of the space. If empty, it is calculated from value_foreign at the current exchange rate.
      - `currency_id` string, uuid, required: Id of the currency of value_foreign.
      - `value_foreign` number, double, required: Value in the currency set by currency_id. If empty, it is calculated from base_value at the current exchange rate.
    - `product_relations` string[]: Product line items on this quote. Each entry holds the product, quantity, price and discount that contribute to total_amount.
    - `primary_contact` string, uri: Primary contact of this quote. Set automatically from the contact relation marked as primary. Related Contact record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Contact' for its fields.
    - `primary_account` string, uri: Primary account of this quote. Set automatically from the account relation marked as primary. Related Account record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'Account' for its fields.
    - `contact_relations` string[]: Contacts linked to this quote.
    - `account_relations` string[]: Accounts linked to this quote, including the primary-account flag.
    - `documents` string[]: Documents linked to this quote.
    - `sharing_units` string[]: Sales units that have been granted shared access to this quote. Editable only when share_mode allows unit sharing.
    - `sharing_clients` string[]: Users that have been granted shared access to this quote. Editable only when share_mode allows user sharing.
    - `status` 1 | 2 | 3, required: Current status of the quote (Open, Lost, Accepted). Read-only; derived from the current step and the archived flag. Integer enum value: 1 - Open, 2 - Lost, 3 - Accepted
    - `formatted_name` string, required: Display version of the quote name, used in lists and references.
    - `is_favorite` boolean, required: True when the current authenticated user has marked this quote as favorite. Per-user.
    - `is_active_in_opportunity` boolean: If quote is set as active in opportunity.
    - `modified_by_user` string, date-time: Timestamp of the most recent modification made by an end user (excluding system changes). Read-only; computed by Coevera.
    - `static_profiles` string[]: Saved view profiles this quote currently matches.
    - `tags` string[]: Tag labels applied to this quote.

## Other responses

- `400`: Bad request: a bad or unknown parameter (codes 117, 118), a missing permission (code 50), conflicting data (code 2002) or any other API error. The REST API answers 400 where others answer 403 or 409; check `code`.
- `401`: Not authenticated: missing or wrong credentials, a credential of another space, or an expired token (code 401, ERROR_UNAUTHORIZED).
- `404`: No such record or entity (code 143 ERROR_NO_ENTITY, or 2006 ERROR_UNKNOWN_TYPE).
- `422`: Validation failed (code 40000, with the failing fields) or a required parameter is missing (code 119). By default one failed item fails a whole batch and nothing is written.
- `429`: Too many requests (code 182). Wait for the seconds in Retry-After, then retry.
- `500`: Unexpected server error (code 1000, ERROR_UNKNOWN).

---

[API](https://skmtc.dev/coevera/apis/coevera-crm-api.md) - [All operations](https://skmtc.dev/coevera/apis/coevera-crm-api/llms.txt) - [OpenAPI document](https://skmtc.dev/coevera/apis/coevera-crm-api/revisions/40ebbc83f179?raw)
