Associate Quote Requests

Elevate, May 20-22-2025, Miami Beach, Florida

This feature is part of Composable Commerce for B2B and will be subject to additional terms and pricing.

Associate Quote Requests allow Associates to interact with Quote Requests on behalf of a Business Unit.

Associates can view, create, and update Quote Requests on behalf of a Business Unit. The actions a given Associate is allowed to perform depends on the specific roles and permissions they hold within the Business Unit.

Get QuoteRequest in BusinessUnit

The Associate must have the ViewMyQuoteRequests or ViewOthersQuoteRequests Permission. If a required Permission is missing, an AssociateMissingPermission error is returned.

Get QuoteRequest in BusinessUnit by ID

GET
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id}

If the QuoteRequest exists in the Project but does not reference the requested BusinessUnit, this method returns an InvalidOperation error.

OAuth 2.0 Scopes:
view_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

id
​
String
​

id of the QuoteRequest.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Response:
200

QuoteRequest

asapplication/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: QuoteRequestjson
{
  "id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc",
  "version": 1,
  "createdAt": "2022-09-22T15:36:17.510Z",
  "lastModifiedAt": "2022-09-22T15:41:55.816Z",
  "quoteRequestState": "Submitted",
  "comment": "Give me 10% discount",
  "customer": {
    "typeId": "customer",
    "id": "92f5a867-bf19-47ab-982c-6720a03a3921"
  },
  "businessUnit": {
    "key": "bu-345-france",
    "typeId": "business-unit"
  },
  "lineItems": [
    {
      "id": "b925a817-d5ad-48bb-a407-29ad8e0649b5",
      "productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f",
      "name": {
        "en": "SAPPHIRE"
      },
      "productType": {
        "typeId": "product-type",
        "id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d",
        "version": 8
      },
      "productSlug": {
        "en": "sapphire1421832124423"
      },
      "variant": {
        "id": 1,
        "sku": "sku_SAPPHIRE_variant1_1421832124423",
        "prices": [
          {
            "value": {
              "type": "centPrecision",
              "fractionDigits": 2,
              "currencyCode": "EUR",
              "centAmount": 2800
            },
            "id": "8da659ef-9e54-447d-9c36-84912db1848f"
          }
        ],
        "images": [
          {
            "url": "https://www.commercetools.com/cli/data/252542005_1.jpg",
            "dimensions": {
              "w": 1400,
              "h": 1400
            }
          }
        ],
        "attributes": [],
        "assets": []
      },
      "price": {
        "value": {
          "type": "centPrecision",
          "fractionDigits": 2,
          "currencyCode": "EUR",
          "centAmount": 2800
        },
        "id": "8da659ef-9e54-447d-9c36-84912db1848f"
      },
      "quantity": 2,
      "discountedPricePerQuantity": [],
      "state": [
        {
          "quantity": 2,
          "state": {
            "typeId": "state",
            "id": "7c2e2694-aefe-43d7-888e-6a99514caaca"
          }
        }
      ],
      "priceMode": "Platform",
      "lineItemMode": "Standard",
      "totalPrice": {
        "type": "centPrecision",
        "fractionDigits": 2,
        "currencyCode": "EUR",
        "centAmount": 5600
      },
      "perMethodTaxRate": [],
      "taxedPricePortions": []
    }
  ],
  "totalPrice": {
    "type": "centPrecision",
    "fractionDigits": 2,
    "currencyCode": "EUR",
    "centAmount": 5600
  },
  "customLineItems": [],
  "directDiscounts": [],
  "inventoryMode": "None",
  "taxMode": "Platform",
  "taxRoundingMode": "HalfEven",
  "taxCalculationMode": "LineItemLevel"
}

Get QuoteRequest in BusinessUnit by Key

GET
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key}

If the QuoteRequest exists in the Project but does not reference the requested BusinessUnit, this method returns an InvalidOperation error.

OAuth 2.0 Scopes:
view_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

key
​
String
​

key of the QuoteRequest.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Response:
200

QuoteRequest

asapplication/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: QuoteRequestjson
{
  "id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc",
  "version": 1,
  "createdAt": "2022-09-22T15:36:17.510Z",
  "lastModifiedAt": "2022-09-22T15:41:55.816Z",
  "quoteRequestState": "Submitted",
  "comment": "Give me 10% discount",
  "customer": {
    "typeId": "customer",
    "id": "92f5a867-bf19-47ab-982c-6720a03a3921"
  },
  "businessUnit": {
    "key": "bu-345-france",
    "typeId": "business-unit"
  },
  "lineItems": [
    {
      "id": "b925a817-d5ad-48bb-a407-29ad8e0649b5",
      "productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f",
      "name": {
        "en": "SAPPHIRE"
      },
      "productType": {
        "typeId": "product-type",
        "id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d",
        "version": 8
      },
      "productSlug": {
        "en": "sapphire1421832124423"
      },
      "variant": {
        "id": 1,
        "sku": "sku_SAPPHIRE_variant1_1421832124423",
        "prices": [
          {
            "value": {
              "type": "centPrecision",
              "fractionDigits": 2,
              "currencyCode": "EUR",
              "centAmount": 2800
            },
            "id": "8da659ef-9e54-447d-9c36-84912db1848f"
          }
        ],
        "images": [
          {
            "url": "https://www.commercetools.com/cli/data/252542005_1.jpg",
            "dimensions": {
              "w": 1400,
              "h": 1400
            }
          }
        ],
        "attributes": [],
        "assets": []
      },
      "price": {
        "value": {
          "type": "centPrecision",
          "fractionDigits": 2,
          "currencyCode": "EUR",
          "centAmount": 2800
        },
        "id": "8da659ef-9e54-447d-9c36-84912db1848f"
      },
      "quantity": 2,
      "discountedPricePerQuantity": [],
      "state": [
        {
          "quantity": 2,
          "state": {
            "typeId": "state",
            "id": "7c2e2694-aefe-43d7-888e-6a99514caaca"
          }
        }
      ],
      "priceMode": "Platform",
      "lineItemMode": "Standard",
      "totalPrice": {
        "type": "centPrecision",
        "fractionDigits": 2,
        "currencyCode": "EUR",
        "centAmount": 5600
      },
      "perMethodTaxRate": [],
      "taxedPricePortions": []
    }
  ],
  "totalPrice": {
    "type": "centPrecision",
    "fractionDigits": 2,
    "currencyCode": "EUR",
    "centAmount": 5600
  },
  "customLineItems": [],
  "directDiscounts": [],
  "inventoryMode": "None",
  "taxMode": "Platform",
  "taxRoundingMode": "HalfEven",
  "taxCalculationMode": "LineItemLevel"
}

Query QuoteRequests in BusinessUnit

GET
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests
OAuth 2.0 Scopes:
view_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

Query parameters:
where
​​
The parameter can be passed multiple times.
sort
​​
The parameter can be passed multiple times.
expand
​​
The parameter can be passed multiple times.
limit
​
Int
​

Number of results requested.

Default: 20​
offset
​
Int
​

Number of elements skipped.

Default: 0​
withTotal
​
Boolean
​

Controls the calculation of the total number of query results. Set to false to improve query performance when the total is not needed.

Default: true​
var.<varName>
​
String
​

Predicate parameter values.

The parameter can be passed multiple times.
Response:
200

QuoteRequestPagedQueryResponse

asapplication/json
Request Example:cURL
curl --get https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 
200 Response Example: QuoteRequestPagedQueryResponsejson
{
  "limit": 20,
  "offset": 0,
  "count": 1,
  "total": 1,
  "results": [
    {
      "id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc",
      "version": 1,
      "createdAt": "2022-09-22T15:36:17.510Z",
      "lastModifiedAt": "2022-09-22T15:41:55.816Z",
      "quoteRequestState": "Submitted",
      "comment": "Give me 10% discount",
      "customer": {
        "typeId": "customer",
        "id": "92f5a867-bf19-47ab-982c-6720a03a3921"
      },
      "businessUnit": {
        "key": "bu-345-france",
        "typeId": "business-unit"
      },
      "lineItems": [
        {
          "id": "b925a817-d5ad-48bb-a407-29ad8e0649b5",
          "productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f",
          "name": {
            "en": "SAPPHIRE"
          },
          "productType": {
            "typeId": "product-type",
            "id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d",
            "version": 8
          },
          "productSlug": {
            "en": "sapphire1421832124423"
          },
          "variant": {
            "id": 1,
            "sku": "sku_SAPPHIRE_variant1_1421832124423",
            "prices": [
              {
                "value": {
                  "type": "centPrecision",
                  "fractionDigits": 2,
                  "currencyCode": "EUR",
                  "centAmount": 2800
                },
                "id": "8da659ef-9e54-447d-9c36-84912db1848f"
              }
            ],
            "images": [
              {
                "url": "https://www.commercetools.com/cli/data/252542005_1.jpg",
                "dimensions": {
                  "w": 1400,
                  "h": 1400
                }
              }
            ],
            "attributes": [],
            "assets": []
          },
          "price": {
            "value": {
              "type": "centPrecision",
              "fractionDigits": 2,
              "currencyCode": "EUR",
              "centAmount": 2800
            },
            "id": "8da659ef-9e54-447d-9c36-84912db1848f"
          },
          "quantity": 2,
          "discountedPricePerQuantity": [],
          "state": [
            {
              "quantity": 2,
              "state": {
                "typeId": "state",
                "id": "7c2e2694-aefe-43d7-888e-6a99514caaca"
              }
            }
          ],
          "priceMode": "Platform",
          "lineItemMode": "Standard",
          "totalPrice": {
            "type": "centPrecision",
            "fractionDigits": 2,
            "currencyCode": "EUR",
            "centAmount": 5600
          },
          "perMethodTaxRate": [],
          "taxedPricePortions": []
        }
      ],
      "totalPrice": {
        "type": "centPrecision",
        "fractionDigits": 2,
        "currencyCode": "EUR",
        "centAmount": 5600
      },
      "customLineItems": [],
      "directDiscounts": [],
      "inventoryMode": "None",
      "taxMode": "Platform",
      "taxRoundingMode": "HalfEven",
      "taxCalculationMode": "LineItemLevel"
    }
  ]
}

Check if QuoteRequest exists in BusinessUnit

Check if QuoteRequest exists by ID

HEAD
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id}

Checks if a QuoteRequest exists for a given id. Returns a 200 OK status if the QuoteRequest exists or a 404 Not Found otherwise.

OAuth 2.0 Scopes:
view_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

id
​
String
​

id of the QuoteRequest.

Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Check if QuoteRequest exists by Key

HEAD
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key}

Checks if a QuoteRequest exists for a given key. Returns a 200 OK status if the QuoteRequest exists or a 404 Not Found otherwise.

OAuth 2.0 Scopes:
view_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

key
​
String
​

key of the QuoteRequest.

Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Check if QuoteRequest exists by Query Predicate

HEAD
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests

Checks if a QuoteRequest exists for a given Query Predicate. Returns a 200 OK status if any QuoteRequests match the Query Predicate or a 404 Not Found otherwise.

OAuth 2.0 Scopes:
view_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

Query parameters:
where
​​
The parameter can be passed multiple times.
Response:
200
Request Example:cURL
curl --head https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" 

Create QuoteRequest in BusinessUnit

The Associate must have the CreateMyQuoteRequestsFromMyCarts or CreateQuoteRequestsFromOthersCarts Permission. If a required Permission is missing, an AssociateMissingPermission error is returned.

POST
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests

Creates a QuoteRequest in a BusinessUnit. Creating QuoteRequest fails with an InvalidOperation if the Cart does not reference the same BusinessUnit as the businessUnitKey path parameter.

OAuth 2.0 Scopes:
manage_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Request Body:QuoteRequestDraftasapplication/json
Response:
201

QuoteRequest

asapplication/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "cart" : {
    "typeId" : "cart",
    "id" : "168e5783-73c8-4f2d-91f4-3c90b872c708"
  },
  "cartVersion" : 1,
  "comment" : "Give me 10% discount"
}
DATA
201 Response Example: QuoteRequestjson
{
  "id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc",
  "version": 1,
  "createdAt": "2022-09-22T15:36:17.510Z",
  "lastModifiedAt": "2022-09-22T15:41:55.816Z",
  "quoteRequestState": "Submitted",
  "comment": "Give me 10% discount",
  "customer": {
    "typeId": "customer",
    "id": "92f5a867-bf19-47ab-982c-6720a03a3921"
  },
  "businessUnit": {
    "key": "bu-345-france",
    "typeId": "business-unit"
  },
  "lineItems": [
    {
      "id": "b925a817-d5ad-48bb-a407-29ad8e0649b5",
      "productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f",
      "name": {
        "en": "SAPPHIRE"
      },
      "productType": {
        "typeId": "product-type",
        "id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d",
        "version": 8
      },
      "productSlug": {
        "en": "sapphire1421832124423"
      },
      "variant": {
        "id": 1,
        "sku": "sku_SAPPHIRE_variant1_1421832124423",
        "prices": [
          {
            "value": {
              "type": "centPrecision",
              "fractionDigits": 2,
              "currencyCode": "EUR",
              "centAmount": 2800
            },
            "id": "8da659ef-9e54-447d-9c36-84912db1848f"
          }
        ],
        "images": [
          {
            "url": "https://www.commercetools.com/cli/data/252542005_1.jpg",
            "dimensions": {
              "w": 1400,
              "h": 1400
            }
          }
        ],
        "attributes": [],
        "assets": []
      },
      "price": {
        "value": {
          "type": "centPrecision",
          "fractionDigits": 2,
          "currencyCode": "EUR",
          "centAmount": 2800
        },
        "id": "8da659ef-9e54-447d-9c36-84912db1848f"
      },
      "quantity": 2,
      "discountedPricePerQuantity": [],
      "state": [
        {
          "quantity": 2,
          "state": {
            "typeId": "state",
            "id": "7c2e2694-aefe-43d7-888e-6a99514caaca"
          }
        }
      ],
      "priceMode": "Platform",
      "lineItemMode": "Standard",
      "totalPrice": {
        "type": "centPrecision",
        "fractionDigits": 2,
        "currencyCode": "EUR",
        "centAmount": 5600
      },
      "perMethodTaxRate": [],
      "taxedPricePortions": []
    }
  ],
  "totalPrice": {
    "type": "centPrecision",
    "fractionDigits": 2,
    "currencyCode": "EUR",
    "centAmount": 5600
  },
  "customLineItems": [],
  "directDiscounts": [],
  "inventoryMode": "None",
  "taxMode": "Platform",
  "taxRoundingMode": "HalfEven",
  "taxCalculationMode": "LineItemLevel"
}

Update QuoteRequest in BusinessUnit

The Associate must have the UpdateMyQuoteRequests or UpdateOthersQuoteRequests Permission. If a required Permission is missing, an AssociateMissingPermission error is returned.

Update QuoteRequest in BusinessUnit by ID

POST
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id}

If the QuoteRequest exists in the Project but does not reference the requested BusinessUnit, this method returns an InvalidOperation error.

OAuth 2.0 Scopes:
manage_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

id
​
String
​

id of the QuoteRequest.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Request Body:QuoteRequestUpdateasapplication/json
Response:
200

QuoteRequest

asapplication/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "version" : 1,
  "actions" : [ {
    "action" : "changeQuoteRequestState",
    "quoteRequestState" : "Cancelled"
  } ]
}
DATA
200 Response Example: QuoteRequestjson
{
  "id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc",
  "version": 1,
  "createdAt": "2022-09-22T15:36:17.510Z",
  "lastModifiedAt": "2022-09-22T15:41:55.816Z",
  "quoteRequestState": "Cancelled",
  "comment": "Give me 10% discount",
  "customer": {
    "typeId": "customer",
    "id": "92f5a867-bf19-47ab-982c-6720a03a3921"
  },
  "lineItems": [
    {
      "id": "b925a817-d5ad-48bb-a407-29ad8e0649b5",
      "productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f",
      "name": {
        "en": "SAPPHIRE"
      },
      "productType": {
        "typeId": "product-type",
        "id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d",
        "version": 8
      },
      "productSlug": {
        "en": "sapphire1421832124423"
      },
      "variant": {
        "id": 1,
        "sku": "sku_SAPPHIRE_variant1_1421832124423",
        "prices": [
          {
            "value": {
              "type": "centPrecision",
              "fractionDigits": 2,
              "currencyCode": "EUR",
              "centAmount": 2800
            },
            "id": "8da659ef-9e54-447d-9c36-84912db1848f"
          }
        ],
        "images": [
          {
            "url": "https://www.commercetools.com/cli/data/252542005_1.jpg",
            "dimensions": {
              "w": 1400,
              "h": 1400
            }
          }
        ],
        "attributes": [],
        "assets": []
      },
      "price": {
        "value": {
          "type": "centPrecision",
          "fractionDigits": 2,
          "currencyCode": "EUR",
          "centAmount": 2800
        },
        "id": "8da659ef-9e54-447d-9c36-84912db1848f"
      },
      "quantity": 2,
      "discountedPricePerQuantity": [],
      "state": [
        {
          "quantity": 2,
          "state": {
            "typeId": "state",
            "id": "7c2e2694-aefe-43d7-888e-6a99514caaca"
          }
        }
      ],
      "priceMode": "Platform",
      "lineItemMode": "Standard",
      "totalPrice": {
        "type": "centPrecision",
        "fractionDigits": 2,
        "currencyCode": "EUR",
        "centAmount": 5600
      },
      "perMethodTaxRate": [],
      "taxedPricePortions": []
    }
  ],
  "totalPrice": {
    "type": "centPrecision",
    "fractionDigits": 2,
    "currencyCode": "EUR",
    "centAmount": 5600
  },
  "customLineItems": [],
  "directDiscounts": [],
  "inventoryMode": "None",
  "taxMode": "Platform",
  "taxRoundingMode": "HalfEven",
  "taxCalculationMode": "LineItemLevel"
}

Update QuoteRequest in BusinessUnit by Key

POST
https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key}

If the QuoteRequest exists in the Project but does not reference the requested BusinessUnit, this method returns an InvalidOperation error.

OAuth 2.0 Scopes:
manage_quote_requests:{projectKey}
Path parameters:
region
​
String
​

Region in which the Project is hosted.

projectKey
​
String
​

key of the Project.

associateId
​
String
​

id of the Customer who is acting on behalf of the BusinessUnit.

businessUnitKey
​
String
​

key of the BusinessUnit.

key
​
String
​

key of the QuoteRequest.

Query parameters:
expand
​​
The parameter can be passed multiple times.
Request Body:QuoteRequestUpdateasapplication/json
Response:
200

QuoteRequest

asapplication/json
Request Example:cURL
curl https://api.{region}.commercetools.com/{projectKey}/as-associate/{associateId}/in-business-unit/key={businessUnitKey}/quote-requests/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA 
{
  "version" : 1,
  "actions" : [ {
    "action" : "changeQuoteRequestState",
    "quoteRequestState" : "Cancelled"
  } ]
}
DATA
200 Response Example: QuoteRequestjson
{
  "id": "2a3baa00-44fa-4ab8-bec7-933c31e18dcc",
  "version": 1,
  "createdAt": "2022-09-22T15:36:17.510Z",
  "lastModifiedAt": "2022-09-22T15:41:55.816Z",
  "quoteRequestState": "Cancelled",
  "comment": "Give me 10% discount",
  "customer": {
    "typeId": "customer",
    "id": "92f5a867-bf19-47ab-982c-6720a03a3921"
  },
  "lineItems": [
    {
      "id": "b925a817-d5ad-48bb-a407-29ad8e0649b5",
      "productId": "9f10dcfb-5cc9-4a18-843a-c07f7e22d01f",
      "name": {
        "en": "SAPPHIRE"
      },
      "productType": {
        "typeId": "product-type",
        "id": "2543e1d8-4915-4f72-a3c9-1df9b1b0082d",
        "version": 8
      },
      "productSlug": {
        "en": "sapphire1421832124423"
      },
      "variant": {
        "id": 1,
        "sku": "sku_SAPPHIRE_variant1_1421832124423",
        "prices": [
          {
            "value": {
              "type": "centPrecision",
              "fractionDigits": 2,
              "currencyCode": "EUR",
              "centAmount": 2800
            },
            "id": "8da659ef-9e54-447d-9c36-84912db1848f"
          }
        ],
        "images": [
          {
            "url": "https://www.commercetools.com/cli/data/252542005_1.jpg",
            "dimensions": {
              "w": 1400,
              "h": 1400
            }
          }
        ],
        "attributes": [],
        "assets": []
      },
      "price": {
        "value": {
          "type": "centPrecision",
          "fractionDigits": 2,
          "currencyCode": "EUR",
          "centAmount": 2800
        },
        "id": "8da659ef-9e54-447d-9c36-84912db1848f"
      },
      "quantity": 2,
      "discountedPricePerQuantity": [],
      "state": [
        {
          "quantity": 2,
          "state": {
            "typeId": "state",
            "id": "7c2e2694-aefe-43d7-888e-6a99514caaca"
          }
        }
      ],
      "priceMode": "Platform",
      "lineItemMode": "Standard",
      "totalPrice": {
        "type": "centPrecision",
        "fractionDigits": 2,
        "currencyCode": "EUR",
        "centAmount": 5600
      },
      "perMethodTaxRate": [],
      "taxedPricePortions": []
    }
  ],
  "totalPrice": {
    "type": "centPrecision",
    "fractionDigits": 2,
    "currencyCode": "EUR",
    "centAmount": 5600
  },
  "customLineItems": [],
  "directDiscounts": [],
  "inventoryMode": "None",
  "taxMode": "Platform",
  "taxRoundingMode": "HalfEven",
  "taxCalculationMode": "LineItemLevel"
}