The My Quote Requests API creates and provides access to Quote Requests scoped to a specific Customer.
The API requires an access token from the password flow.
Representations
MyQuoteRequestDraft
cartId ​String​ | id of the Cart from which the Quote Request is created. Carts with Discount Codes and Carts with Multiple ShippingMode are not supported.
The Cart must have a shippingAddress defined, otherwise an InvalidOperation error is returned when creating a Quote Request. |
cartVersion ​Int​ | Current version of the Cart. |
comment ​String​ | Message from the Buyer included in the Quote Request. |
Get My QuoteRequest
Get My QuoteRequest by ID
GET
https://api.{region}.commercetools.com/{projectKey}/me/quote-requests/{id}
OAuth 2.0 Scopes:
manage_my_quote_requests:{projectKey}
customer_id:{id}
Path parameters:
region String ​ | Region in which the Project is hosted. |
projectKey String ​ | key of the Project. |
id String ​ | id of the QuoteRequest. |
Query parameters:
expand | The parameter can be passed multiple times. |
Response:
200as
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/me/quote-requests/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"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 My QuoteRequest by Key
GET
https://api.{region}.commercetools.com/{projectKey}/me/quote-requests/key={key}
OAuth 2.0 Scopes:
manage_my_quote_requests:{projectKey}
customer_id:{id}
Path parameters:
region String ​ | Region in which the Project is hosted. |
projectKey String ​ | key of the Project. |
key String ​ | key of the QuoteRequest. |
Query parameters:
expand | The parameter can be passed multiple times. |
Response:
200as
application/json
curl --get https://api.{region}.commercetools.com/{projectKey}/me/quote-requests/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"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 My QuoteRequests
GET
https://api.{region}.commercetools.com/{projectKey}/me/quote-requests
Retrieves Quote Requests for the authenticated Customer. Returns a
200 OK
status if successful.OAuth 2.0 Scopes:
manage_my_quote_requests:{projectKey}
customer_id:{id}
Path parameters:
region String ​ | Region in which the Project is hosted. |
projectKey String ​ | key of the Project. |
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 ​Minimum: 0 ​Maximum: 500 ​ |
offset Int ​ | Number of elements skipped. Default: 0 ​Maximum: 10000 ​ |
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
curl --get https://api.{region}.commercetools.com/{projectKey}/me/quote-requests -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"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 My QuoteRequest exists
Check if My QuoteRequest exists by ID
HEAD
https://api.{region}.commercetools.com/{projectKey}/quote-requests/{id}
Checks if a QuoteRequest exists with the provided
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. |
id String ​ | id of the QuoteRequest. |
Response:
200
curl --head https://api.{region}.commercetools.com/{projectKey}/quote-requests/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if My QuoteRequest exists by Key
HEAD
https://api.{region}.commercetools.com/{projectKey}/quote-requests/key={key}
Checks if a QuoteRequest exists with the provided
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. |
key String ​ | key of the QuoteRequest. |
Response:
200
curl --head https://api.{region}.commercetools.com/{projectKey}/quote-requests/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Check if My QuoteRequest exists by Query Predicate
HEAD
https://api.{region}.commercetools.com/{projectKey}/quote-requests
Checks if one or more QuoteRequests exist for the provided 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. |
Query parameters:
where | The parameter can be passed multiple times. |
Response:
200
curl --head https://api.{region}.commercetools.com/{projectKey}/quote-requests -i \
--header "Authorization: Bearer ${BEARER_TOKEN}"
Create My QuoteRequest
When creating B2B Quote Requests, the Customer must have the
CreateMyQuoteRequestsFromMyCarts
Permission. If the required Permission is missing, an AssociateMissingPermission error is returned.POST
https://api.{region}.commercetools.com/{projectKey}/me/quote-requests
OAuth 2.0 Scopes:
manage_my_quote_requests:{projectKey}
customer_id:{id}
Path parameters:
region String ​ | Region in which the Project is hosted. |
projectKey String ​ | key of the Project. |
Query parameters:
expand | The parameter can be passed multiple times. |
Request Body:MyQuoteRequestDraftas
application/json
Response:
201as
application/json
curl https://api.{region}.commercetools.com/{projectKey}/me/quote-requests -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"cartId" : "168e5783-73c8-4f2d-91f4-3c90b872c708",
"cartVersion" : 1,
"comment" : "Give me 10% discount"
}
DATA
{
"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 My QuoteRequest
When updating B2B Quote Requests, the Customer must have the
UpdateMyQuoteRequests
Permission. If the required Permission is missing, an AssociateMissingPermission error is returned.Update My QuoteRequest by ID
POST
https://api.{region}.commercetools.com/{projectKey}/me/quote-requests/{id}
OAuth 2.0 Scopes:
manage_my_quote_requests:{projectKey}
customer_id:{id}
Path parameters:
region String ​ | Region in which the Project is hosted. |
projectKey String ​ | key of the Project. |
id String ​ | id of the QuoteRequest. |
Query parameters:
expand | The parameter can be passed multiple times. |
Request Body:
application/json
version ​Int​ | |
actions ​Array of MyQuoteRequestUpdateAction​ |
Response:
200as
application/json
curl https://api.{region}.commercetools.com/{projectKey}/me/quote-requests/{id} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"version" : 1,
"actions" : [ {
"action" : "cancelQuoteRequest"
} ]
}
DATA
{
"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 My QuoteRequest by Key
POST
https://api.{region}.commercetools.com/{projectKey}/me/quote-requests/key={key}
OAuth 2.0 Scopes:
manage_my_quote_requests:{projectKey}
customer_id:{id}
Path parameters:
region String ​ | Region in which the Project is hosted. |
projectKey String ​ | key of the Project. |
key String ​ | key of the QuoteRequest. |
Query parameters:
expand | The parameter can be passed multiple times. |
Request Body:
application/json
version ​Int​ | |
actions ​Array of MyQuoteRequestUpdateAction​ |
Response:
200as
application/json
curl https://api.{region}.commercetools.com/{projectKey}/me/quote-requests/key={key} -i \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--header 'Content-Type: application/json' \
--data-binary @- << DATA
{
"version" : 1,
"actions" : [ {
"action" : "cancelQuoteRequest"
} ]
}
DATA
{
"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 actions
Cancel Quote Request
Transitions the
quoteRequestState
of the Quote Request to Cancelled
. Can only be used when the Quote Request is in state Submitted
.action ​String​ | "cancelQuoteRequest" |
Set Custom Type
action ​String​ | "setCustomType" |
type ​ | Defines the Type that extends the QuoteRequest with Custom Fields.
If absent, any existing Type and Custom Fields are removed from the QuoteRequest. |
fields ​ | Sets the Custom Fields fields for the QuoteRequest. |
{
"action": "setCustomType",
"type": {
"id": "{{type-id}}",
"typeId": "type"
},
"fields": {
"exampleStringField": "TextString"
}
}
Set Custom Field
action ​String​ | "setCustomField" |
name ​String​ | Name of the Custom Field. |
value ​ | If value is absent or null , this field will be removed if it exists.
Removing a field that does not exist returns an InvalidOperation error.
If value is provided, it is set for the field defined by name . |
{
"action": "setCustomField",
"name": "exampleStringField",
"value": "TextString"
}