# Quote reason

## Retrieving reasons for changing the quote status

> Retrieves a full list of reasons for changing the quote status with details.\
> \*\*\*\
> \
> \### Required scopes\
> \
> &#x20; \* \`quote.quote\_read\`\
> &#x20; \* \`quote.quote\_read\_own\`

```json
{"openapi":"3.0.1","info":{"title":"Quote Service","version":"0.0.1"},"tags":[{"name":"Quote reason"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["quote.quote_read","quote.quote_read_own"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://api.emporix.io/oauth/token","scopes":{"quote.quote_read":"","quote.quote_read_own":"","quote.quote_manage":"","quote.quote_manage_own":""}}}}},"parameters":{"trait_acceptLanguage_header":{"name":"Accept-Language","in":"header","required":false,"schema":{"type":"string"},"description":"List of language codes acceptable for the response. You can specify factors that indicate which language should be retrieved if the one with a higher factor was not found in the localized fields. If a value is specified, then it must be present in the tenant configuration.\n* If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.\n* If the header is set to `*`, all localized fields are retrieved as maps of translations, where the keys are language codes and values are the fields in their respective languages.\n* If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.\n"},"X-Total-Count":{"name":"X-Total-Count","in":"header","required":false,"schema":{"type":"boolean","default":false},"description":"Flag indicating whether the total number of retrieved items should be returned.\n"},"trait_paged_pageSize":{"name":"pageSize","in":"query","description":"Number of items to be retrieved per page.\n","schema":{"default":60,"minimum":1,"type":"integer"}},"trait_paged_pageNumber":{"name":"pageNumber","in":"query","description":"Page number to be retrieved. The number of the first page is 1.\n","schema":{"default":1,"minimum":1,"type":"integer"}},"trait_sort":{"name":"sort","in":"query","description":"List of properties used to sort the results, separated by colons. The order of properties indicates their priority in sorting.\n\nPossible values:\n* `{fieldName}`\n* `{fieldName}:asc`\n* `{fieldName}:desc`\n\n**Note:** If you want to sort the results by localized properties, the possible values are:\n  * `{fieldName}.{language}`\n  * `{fieldName}.{language}:asc`\n  * `{fieldName}.{language}:desc`\n\nIf the sorting direction is not specified, the fields are sorted in ascending order.","schema":{"type":"string"}},"trait_q_param":{"name":"q","in":"query","description":"A standard query parameter is used to search for specific values.\n\n* Searching for items by string-based properties:\n  * By a field value: `q=siteCode:main`, where `siteCode` is the field name, and `main` is its desired value.\n  * By a localized field value: `q=items.product.name.en:apple_lobo`, where `name` is the field name of product, `en` is the language code, and `apple_lobo` is the field value expressed in the specified language. **Note**: This query works only for localized fields, which are stored in a map format, where `key` is the language code and `value` is the translation to particular language.\n* Searching for items by a number-based property:\n  * With a specific value: `q=items.quantity.quantity:20`\n  * With a value greater than: `q=items.quantity.quantity:>20`\n  * With a value lower than: `q=items.quantity.quantity:<20`\n  * With a value greater than or equal to: `q=items.quantity.quantity:>=20`\n  * With a value lower than or equal to: `q=items.quantity.quantity:<=20`\n  * With a value within a range of values: `q=items.quantity.quantity:(>=10 AND <=20)`\\\n   where `items.quantity.quantity` is the name of the number-based field, and `20` is its querying value.\n* Searching for items by a date-based property: All number-based property queries are also valid for dates. In that case, the date should be placed within double quotes: `q=metadataCreatedAt:(>=\"2021-05-18T07:27:27.455Z\" AND <\"2021-05-20T07:27:27.455Z\")`\n* Searching for items by a boolean-based property: `q=description.multiLanguage:true`, where `description.multiLanguage` is the boolean field name, and `true` is its desired value.\n* Searching for items with a nonexistent or empty property: `q=description.en:null`, where `description.en` is the field that has its value set to `null`.\n* Searching for items with an existing property: `q=mixins.mixinName:exists`, where the specific mixin named `mixinName` exists in the database.\n* Searching for items by multiple specific values: `q=id:(5c3325baa9812100098ff48f,5c3325d1a9812100098ff494)`, where `id` is the field name, and strings within the bracket are the desired values.\n* Searching for items by multiple fields: `q=id:5c3325baa9812100098ff48f siteCode:main` where `id` and `siteCode` are field names. All objects that contain the specified values are returned. Multiple fields (separated by space) can be specified. Multiple values for each field can also be specified in the format presented earlier.\n* Searching for items with string-based properties conforming to a regex: `q=siteCode:~ain` or `q=code:(~U PL)` - in case of searching for strings with space, where `siteCode` is the name of the field, and `ain` or `U PL` is its querying regex.\n* Searching for items with a localized string-based property conforming to a regex: `items.product.name.en:~(Yoghurt im)` - where `name` is the product field name, `en` is the desired language, and `Joghurt im` is the search term.\n","schema":{"type":"string"}},"trait_fields":{"name":"fields","in":"query","description":"Fields to be returned in the response.\n\nWhen this parameter is passed, only the `id` and `{fieldName}` are retrieved for each entry.\nYou can specify multiple fields by separating them with commas.\n","schema":{"type":"string"}}},"schemas":{"QuoteReasonResponse":{"type":"object","properties":{"id":{"type":"string","description":"The quote reason ID."},"type":{"type":"string","enum":["CHANGE","DECLINE"],"description":"Type of the quote reason."},"message":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"string"}],"description":"Localized message - can be either string or map with languages as map's keys accordingly to specified 'Accept-Language' header."},"code":{"type":"string","description":"Code of the reason for the quote status change."},"metadata":{"type":"object","description":"The Quote Reason metadata details.","properties":{"version":{"type":"integer","description":"Version of the quote reason that is used for the optimistic locking handling."},"createdAt":{"type":"string","format":"date-time","description":"The Quote Reason creation timestamp."},"modifiedAt":{"type":"string","format":"date-time","description":"The Quote Reason modification timestamp."}}}}},"ErrorResponse":{"required":["code","message","status"],"type":"object","properties":{"resourceId":{"type":"string","nullable":true},"code":{"type":"integer","format":"int32"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}},"responses":{"Bad_request_400":{"description":"Unsupported language provided.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"Unathorized_401":{"description":"Given request is unauthorized - the authorization token is invalid or has expired. It usually means that tenant from the token does not match tenant from path.","content":{"application/json":{"schema":{"type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string"},"detail":{"type":"object","properties":{"errorcode":{"type":"string"}}}}}}}}}},"Forbidden_403":{"description":"Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/quote/{tenant}/quote-reasons":{"get":{"tags":["Quote reason"],"summary":"Retrieving reasons for changing the quote status","description":"Retrieves a full list of reasons for changing the quote status with details.\n***\n\n### Required scopes\n\n  * `quote.quote_read`\n  * `quote.quote_read_own`","operationId":"GET-quote-list-reasons","parameters":[{"name":"tenant","in":"path","description":"Your Emporix tenant name.\n\n**Note**: The tenant name should always be written in lowercase.\n","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/trait_acceptLanguage_header"},{"$ref":"#/components/parameters/X-Total-Count"},{"$ref":"#/components/parameters/trait_paged_pageSize"},{"$ref":"#/components/parameters/trait_paged_pageNumber"},{"$ref":"#/components/parameters/trait_sort"},{"$ref":"#/components/parameters/trait_q_param"},{"$ref":"#/components/parameters/trait_fields"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/QuoteReasonResponse"}}}}},"400":{"$ref":"#/components/responses/Bad_request_400"},"401":{"$ref":"#/components/responses/Unathorized_401"},"403":{"$ref":"#/components/responses/Forbidden_403"}}}}}}
```

## Creating a reason for changing the quote status

> Creating reasons for the 'CHANGE' or 'DECLINE' types of quote statuses.\
> The reason for the quote status change serves to provide more descriptive information why the status has been changed. This option is available both for merchants and customers, depending on who updates the status of the quote.\
> \*\*\*\
> \
> \### Required scopes\
> \
> &#x20; \* \`quote.quote\_manage\`

```json
{"openapi":"3.0.1","info":{"title":"Quote Service","version":"0.0.1"},"tags":[{"name":"Quote reason"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["quote.quote_manage"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://api.emporix.io/oauth/token","scopes":{"quote.quote_read":"","quote.quote_read_own":"","quote.quote_manage":"","quote.quote_manage_own":""}}}}},"parameters":{"trait_contentLanguage_header":{"in":"header","name":"Content-Language","required":true,"description":"The Content-Language request HTTP header defines language(s) of the payload.","schema":{"type":"string"}}},"schemas":{"QuoteReasonCreateRequest":{"type":"object","description":"The schema specifies the attributes that must be provided when creating a quote reason.","properties":{"id":{"type":"string","description":"The ID for a quote reason can either be manually provided at the time of the quote reason creation, or is automatically generated if not provided."},"type":{"type":"string","description":"Type of the quote reason.","enum":["CHANGE","DECLINE"]},"code":{"type":"string","description":"Code of the reason for the quote status change."},"message":{"type":"object","additionalProperties":{"type":"string"},"description":"Localized message in the form of a map of translations."}},"required":["type","code","message"]},"QuoteReasonIdResponse":{"type":"object","properties":{"id":{"type":"string","description":"ID of the generated document."}},"description":"ID of the generated quote reason."},"ErrorResponse":{"required":["code","message","status"],"type":"object","properties":{"resourceId":{"type":"string","nullable":true},"code":{"type":"integer","format":"int32"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}},"responses":{"Bad_request_400":{"description":"Unsupported language provided.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"Unathorized_401":{"description":"Given request is unauthorized - the authorization token is invalid or has expired. It usually means that tenant from the token does not match tenant from path.","content":{"application/json":{"schema":{"type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string"},"detail":{"type":"object","properties":{"errorcode":{"type":"string"}}}}}}}}}},"Forbidden_403":{"description":"Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Conflict_409":{"description":"Conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/quote/{tenant}/quote-reasons":{"post":{"tags":["Quote reason"],"summary":"Creating a reason for changing the quote status","description":"Creating reasons for the 'CHANGE' or 'DECLINE' types of quote statuses.\nThe reason for the quote status change serves to provide more descriptive information why the status has been changed. This option is available both for merchants and customers, depending on who updates the status of the quote.\n***\n\n### Required scopes\n\n  * `quote.quote_manage`","operationId":"POST-quote-create-quote-reason","parameters":[{"name":"tenant","in":"path","description":"Your Emporix tenant name.\n\n**Note**: The tenant name should always be written in lowercase.\n","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/trait_contentLanguage_header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteReasonCreateRequest"}}},"required":true},"responses":{"201":{"description":"The request was successful. Quote reason was created and its id is returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteReasonIdResponse"}}}},"400":{"$ref":"#/components/responses/Bad_request_400"},"401":{"$ref":"#/components/responses/Unathorized_401"},"403":{"$ref":"#/components/responses/Forbidden_403"},"409":{"$ref":"#/components/responses/Conflict_409"}}}}}}
```

## Retrieving a quote reason

> Retrieves a quote reason with details by its unique identifier. \
> \*\*\*\
> \
> \### Required scopes\
> \
> &#x20; \* \`quote.quote\_read\`\
> &#x20; \* \`quote.quote\_read\_own\`

```json
{"openapi":"3.0.1","info":{"title":"Quote Service","version":"0.0.1"},"tags":[{"name":"Quote reason"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["quote.quote_read","quote.quote_read_own"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://api.emporix.io/oauth/token","scopes":{"quote.quote_read":"","quote.quote_read_own":"","quote.quote_manage":"","quote.quote_manage_own":""}}}}},"parameters":{"trait_acceptLanguage_header":{"name":"Accept-Language","in":"header","required":false,"schema":{"type":"string"},"description":"List of language codes acceptable for the response. You can specify factors that indicate which language should be retrieved if the one with a higher factor was not found in the localized fields. If a value is specified, then it must be present in the tenant configuration.\n* If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.\n* If the header is set to `*`, all localized fields are retrieved as maps of translations, where the keys are language codes and values are the fields in their respective languages.\n* If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.\n"}},"schemas":{"QuoteReasonResponse":{"type":"object","properties":{"id":{"type":"string","description":"The quote reason ID."},"type":{"type":"string","enum":["CHANGE","DECLINE"],"description":"Type of the quote reason."},"message":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"string"}],"description":"Localized message - can be either string or map with languages as map's keys accordingly to specified 'Accept-Language' header."},"code":{"type":"string","description":"Code of the reason for the quote status change."},"metadata":{"type":"object","description":"The Quote Reason metadata details.","properties":{"version":{"type":"integer","description":"Version of the quote reason that is used for the optimistic locking handling."},"createdAt":{"type":"string","format":"date-time","description":"The Quote Reason creation timestamp."},"modifiedAt":{"type":"string","format":"date-time","description":"The Quote Reason modification timestamp."}}}}},"ErrorResponse":{"required":["code","message","status"],"type":"object","properties":{"resourceId":{"type":"string","nullable":true},"code":{"type":"integer","format":"int32"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}},"responses":{"Bad_request_400":{"description":"Unsupported language provided.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"Unathorized_401":{"description":"Given request is unauthorized - the authorization token is invalid or has expired. It usually means that tenant from the token does not match tenant from path.","content":{"application/json":{"schema":{"type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string"},"detail":{"type":"object","properties":{"errorcode":{"type":"string"}}}}}}}}}},"Forbidden_403":{"description":"Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Not_Found_404":{"description":"Given resource cannot be found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/quote/{tenant}/quote-reasons/{quoteReasonId}":{"get":{"tags":["Quote reason"],"summary":"Retrieving a quote reason","description":"Retrieves a quote reason with details by its unique identifier. \n***\n\n### Required scopes\n\n  * `quote.quote_read`\n  * `quote.quote_read_own`","operationId":"GET-quote-retrieve-reason","parameters":[{"name":"tenant","in":"path","description":"Your Emporix tenant name.\n\n**Note**: The tenant name should always be written in lowercase.\n","required":true,"schema":{"type":"string"}},{"name":"quoteReasonId","in":"path","description":"Quote reason unique identifier generated when the quote reason is created.\n","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/trait_acceptLanguage_header"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteReasonResponse"}}}},"400":{"$ref":"#/components/responses/Bad_request_400"},"401":{"$ref":"#/components/responses/Unathorized_401"},"403":{"$ref":"#/components/responses/Forbidden_403"},"404":{"$ref":"#/components/responses/Not_Found_404"}}}}}}
```

## Updating the reason for changing the quote status

> Updating the reason for changing the quote status. \
> \*\*\*\
> \
> \### Required scopes\
> \
> &#x20; \* \`quote.quote\_manage\`

```json
{"openapi":"3.0.1","info":{"title":"Quote Service","version":"0.0.1"},"tags":[{"name":"Quote reason"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":["quote.quote_manage"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://api.emporix.io/oauth/token","scopes":{"quote.quote_read":"","quote.quote_read_own":"","quote.quote_manage":"","quote.quote_manage_own":""}}}}},"parameters":{"trait_contentLanguage_header":{"in":"header","name":"Content-Language","required":true,"description":"The Content-Language request HTTP header defines language(s) of the payload.","schema":{"type":"string"}}},"schemas":{"QuoteReasonUpdateRequest":{"type":"object","description":"The schema specifies the attributes that must be provided when creating a quote reason.","properties":{"type":{"type":"string","description":"Type of the quote reason.","enum":["CHANGE","DECLINE"]},"code":{"type":"string","description":"Code of the reason for the quote status change."},"message":{"type":"object","additionalProperties":{"type":"string"},"description":"Localized message in the form of a map of translations."},"metadata":{"type":"object","description":"The Quote Reason metadata details","properties":{"version":{"type":"integer","description":"Version of the quote reason that is used for the optimistic locking handling"}},"required":["version"]}},"required":["type","code","message","metadata"]},"ErrorResponse":{"required":["code","message","status"],"type":"object","properties":{"resourceId":{"type":"string","nullable":true},"code":{"type":"integer","format":"int32"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}},"responses":{"Bad_request_400":{"description":"Unsupported language provided.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}}},"Unathorized_401":{"description":"Given request is unauthorized - the authorization token is invalid or has expired. It usually means that tenant from the token does not match tenant from path.","content":{"application/json":{"schema":{"type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string"},"detail":{"type":"object","properties":{"errorcode":{"type":"string"}}}}}}}}}},"Forbidden_403":{"description":"Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Not_Found_404":{"description":"Given resource cannot be found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Conflict_409":{"description":"Conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"paths":{"/quote/{tenant}/quote-reasons/{quoteReasonId}":{"put":{"tags":["Quote reason"],"summary":"Updating the reason for changing the quote status","description":"Updating the reason for changing the quote status. \n***\n\n### Required scopes\n\n  * `quote.quote_manage`","operationId":"PUT-quote-update-reason","parameters":[{"name":"tenant","in":"path","description":"Your Emporix tenant name.\n\n**Note**: The tenant name should always be written in lowercase.\n","required":true,"schema":{"type":"string"}},{"name":"quoteReasonId","in":"path","description":"Quote reason unique identifier generated when the quote reason is created.\n","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/trait_contentLanguage_header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteReasonUpdateRequest"}}},"required":true},"responses":{"204":{"description":"The request was successful. Quote reason has been updated."},"400":{"$ref":"#/components/responses/Bad_request_400"},"401":{"$ref":"#/components/responses/Unathorized_401"},"403":{"$ref":"#/components/responses/Forbidden_403"},"404":{"$ref":"#/components/responses/Not_Found_404"},"409":{"$ref":"#/components/responses/Conflict_409"}}}}}}
```

## Deleting the reason for changing the quote status

> Deletes the reason provided for the quote status change with a specific reason ID.\
> \*\*\*\
> \
> \### Required scopes\
> \
> &#x20; \* \`quote.quote\_manage\` - the quote reason can be deleted by an employee

```json
{"openapi":"3.0.1","info":{"title":"Quote Service","version":"0.0.1"},"tags":[{"name":"Quote reason"}],"servers":[{"url":"https://api.emporix.io"}],"security":[{"OAuth2":[]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://api.emporix.io/oauth/token","scopes":{"quote.quote_read":"","quote.quote_read_own":"","quote.quote_manage":"","quote.quote_manage_own":""}}}}},"responses":{"Unathorized_401":{"description":"Given request is unauthorized - the authorization token is invalid or has expired. It usually means that tenant from the token does not match tenant from path.","content":{"application/json":{"schema":{"type":"object","properties":{"fault":{"type":"object","properties":{"faultstring":{"type":"string"},"detail":{"type":"object","properties":{"errorcode":{"type":"string"}}}}}}}}}},"Forbidden_403":{"description":"Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"schemas":{"ErrorResponse":{"required":["code","message","status"],"type":"object","properties":{"resourceId":{"type":"string","nullable":true},"code":{"type":"integer","format":"int32"},"status":{"type":"string"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}}}}},"paths":{"/quote/{tenant}/quote-reasons/{quoteReasonId}":{"delete":{"summary":"Deleting the reason for changing the quote status","tags":["Quote reason"],"operationId":"DELETE-quote-remove-reason","parameters":[{"name":"tenant","in":"path","description":"Your Emporix tenant name.\n\n**Note**: The tenant name should always be written in lowercase.\n","required":true,"schema":{"type":"string"}},{"name":"quoteReasonId","in":"path","description":"Quote reason unique identifier generated when the quote reason is created.\n","required":true,"schema":{"type":"string"}}],"description":"Deletes the reason provided for the quote status change with a specific reason ID.\n***\n\n### Required scopes\n\n  * `quote.quote_manage` - the quote reason can be deleted by an employee","responses":{"204":{"description":"Quote reason has been deleted successfully."},"401":{"$ref":"#/components/responses/Unathorized_401"},"403":{"$ref":"#/components/responses/Forbidden_403"}}}}}}
```
