Quote Management
Retrieves quotes. The response includes either all quotes or a subset of quotes based on the assigned access token scopes.
When the request uses a B2B customer token, the response includes only quotes that are linked to the legal entity from the token.
Additional scope information
One of the scopes is required.
The
quote.quote_readscope is required to employees to retrieve all tenant quotes.The
quote.quote_read_ownis assigned to customers to enable them to retrieve only the quotes that they created themselves or that were created on their behalf. Quotes in theCREATINGstatus are not returned to these customers.
- : Needed to retrieve quotes.
- : Needed to retrieve own quotes by the customer.
Your Emporix tenant name.
Note: The tenant name should always be written in lowercase.
saasdev2Number of items to be retrieved per page.
60Page number to be retrieved. The number of the first page is 1.
1List of properties used to sort the results, separated by colons. The order of properties indicates their priority in sorting.
Possible values:
{fieldName}{fieldName}:asc{fieldName}:desc
Note: If you want to sort the results by localized properties, the possible values are:
{fieldName}.{language}{fieldName}.{language}:asc{fieldName}.{language}:desc
If the sorting direction is not specified, the fields are sorted in ascending order.
A standard query parameter is used to search for specific values.
- Searching for items by string-based properties:
- By a field value:
q=siteCode:main, wheresiteCodeis the field name, andmainis its desired value. - By a localized field value:
q=items.product.name.en:apple_lobo, wherenameis the field name of product,enis the language code, andapple_lobois the field value expressed in the specified language. Note: This query works only for localized fields, which are stored in a map format, wherekeyis the language code andvalueis the translation to particular language.
- By a field value:
- Searching for items by a number-based property:
- With a specific value:
q=items.quantity.quantity:20 - With a value greater than:
q=items.quantity.quantity:>20 - With a value lower than:
q=items.quantity.quantity:<20 - With a value greater than or equal to:
q=items.quantity.quantity:>=20 - With a value lower than or equal to:
q=items.quantity.quantity:<=20 - With a value within a range of values:
q=items.quantity.quantity:(>=10 AND <=20)
whereitems.quantity.quantityis the name of the number-based field, and20is its querying value.
- With a specific value:
- 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") - Searching for items by a boolean-based property:
q=description.multiLanguage:true, wheredescription.multiLanguageis the boolean field name, andtrueis its desired value. - Searching for items with a nonexistent or empty property:
q=description.en:null, wheredescription.enis the field that has its value set tonull. - Searching for items with an existing property:
q=mixins.mixinName:exists, where the specific mixin namedmixinNameexists in the database. - Searching for items by multiple specific values:
q=id:(5c3325baa9812100098ff48f,5c3325d1a9812100098ff494), whereidis the field name, and strings within the bracket are the desired values. - Searching for items by multiple fields:
q=id:5c3325baa9812100098ff48f siteCode:mainwhereidandsiteCodeare 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. - Searching for items with string-based properties conforming to a regex:
q=siteCode:~ainorq=code:(~U PL)- in case of searching for strings with space, wheresiteCodeis the name of the field, andainorU PLis its querying regex. - Searching for items with a localized string-based property conforming to a regex:
items.product.name.en:~(Yoghurt im)- wherenameis the product field name,enis the desired language, andJoghurt imis the search term.
siteCode:{main}Fields to be returned in the response.
When this parameter is passed, only the id and {fieldName} are retrieved for each entry.
You can specify multiple fields by separating them with commas.
code,messageList 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.
- If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.
- 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. - If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.
Flag indicating whether the total number of retrieved items should be returned.
falseExample: trueThe request was successful. Quote's details are returned.
Quote ID
NOTE: If not specified during creation, this attribute is automatically generated. It is also possible to assign a custom ID.
Business model of the quote.
Customer-provided reference stored on the quote.
PO-12345Customer-provided comment stored on the quote.
Please deliver before FridayThe ID of the cart from which the quote was created (not available when the quote was created manually)
Identifier of the legal entity linked to the quote.
The site code for which the quote was created
The ID of the order which was created based on the quote. The order is created and assigned to the quote when status of the quote transitions to ACCEPTED.
The currency of the quote prices.
The date until which the quote is valid and can be accepted by the customer.
Access control identifier that determines who can view or manage the quotes.
Purpose: Restricts quote visibility based on scope permissions. Only users/applications with matching restriction scopes can access quotes with a specific restriction value.
Access Control:
- Reading: Users can only query and view quotes with the
restrictionvalue that matches one of their authorized restrictions.
Validation: The value must exist in the tenant's configured list of valid restrictions.
Restriction Synchronization:
- If quote is created by a customer (based on a cart) and
restrictionproperty is not set, therestrictionvalue of quote is inherited from customer's restriction. - If a quote is created by an employee and the
restrictionproperty is not set with tenant configuration propertyenableSyncBetweenRestrictionsAndSiteCodesset totrue, therestrictionfield automatically syncs with quote's siteCode property.
DEUnsupported language provided.
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.
Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.
GET /quote/{tenant}/quotes HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
[
{
"id": "5b3188dc-9a5c-4163-8756-4f228c295a59",
"businessModel": "B2B",
"customer": {
"customerId": "72318750",
"firstName": "Stefan",
"lastName": "Muller",
"contactEmail": "s.muller@emporix.com"
},
"employee": {
"employeeId": "00u6fo3yzjE8Q7X0d417",
"firstName": "John",
"lastName": "Smith"
},
"cartId": "63ee5168e55c231c327220d3",
"legalEntityId": "le-1",
"company": {
"name": "ABC"
},
"siteCode": "main",
"orderId": "B7025189",
"currency": "USD",
"status": {
"value": "ACCEPTED",
"comment": "comment example",
"quoteReason": {
"id": "29817428df374918f236951",
"code": "PRICE_TOO_HIGH",
"type": "CHANGE",
"message": {
"en": "The price is too high",
"de": "Der Preis ist zu hoch"
}
}
},
"validTo": "2023-03-25T09:36:55.974Z",
"totalPrice": {
"netValue": 205,
"grossValue": 225.5,
"taxValue": 20.5
},
"subtotalPrice": {
"netValue": 205,
"grossValue": 225.5,
"taxValue": 20.5
},
"taxAggregate": {
"lines": [
{
"name": "STANDARD",
"amount": 20.5,
"rate": 10,
"taxable": 225.5
}
]
},
"shipping": {
"value": 10,
"grossValue": 12,
"methodId": "fedex-2dayground",
"zoneId": "63440460ceeaa26d794fcbbb",
"methodName": {
"en": "FedEx 2Day",
"pl": "FedEx 2Dni"
},
"shippingTaxCode": "STANDARD"
},
"comment": {
"employeeComment": "Employee comment"
},
"customerReference": "PO-12345",
"customerComment": "Please deliver before Friday",
"billingAddress": {
"id": "63440460cee2826d794fcb8a",
"name": "ABC",
"addressLine1": "Street",
"addressLine2": "27a",
"city": "London",
"countryCode": "GB",
"postcode": "32131",
"state": "London"
},
"shippingAddress": {
"id": "63440460cee2826d794fcb8a",
"name": "ABC",
"addressLine1": "Street",
"addressLine2": "27a",
"city": "London",
"countryCode": "GB",
"postcode": "32131",
"state": "London"
},
"items": [
{
"id": "0972ef39-9a4a-4867-b3c1-f8c00f66ee0a",
"quantity": {
"quantity": 1,
"unitCode": "piece"
},
"price": {
"priceId": "63ec99a2457e8f7548685fe5",
"unitPrice": 34,
"newUnitPrice": 34,
"discount": 0,
"totalNetValue": 34,
"tax": {
"taxClass": "STANDARD",
"taxRate": 10,
"prices": {
"grossValue": 37.4,
"netValue": 34
}
}
},
"product": {
"productId": "BC10033--BC10033-35",
"name": {
"de": "Hohe Sicherheitsschuhe Reptile RS S3 SRC, schwarz",
"ar": "حذاء الجريمة المحافظ المرتفع RS S3 SRC ، NERE",
"ru": "Safety shoes high Reptile RS S3 SRC, black",
"th": "Safety shoes high Reptile RS S3 SRC, black",
"en": "Safety shoes high Reptile RS S3 SRC, black",
"it": "Scarpe antinfortunistiche alte Reptile RS S3 SRC, nere",
"fr": "Chaussures de sécurité hautes Reptile RS S3 SRC, noir",
"en-gb": "Safety shoes high Reptile RS S3 SRC, black",
"es": "Zapatos de seguridad altos Reptile RS S3 SRC, negros"
},
"media": {
"id": "82c30154-dcf7-4bb9-b210-d960fec6c9fd",
"contentType": "image/jpg",
"url": "https://res.cloudinary.com/saas-ag/image/upload/emporix-docs/82c30154-dcf7-4bb9-b210-d960fec6c9fd.jpg"
},
"taxClasses": {
"DE": "STANDARD",
"PL": "ZERO"
}
}
},
{
"id": "ac16dd14-baa4-4ccb-bad3-756b36b89235",
"quantity": {
"quantity": 3,
"unitCode": "piece"
},
"price": {
"priceId": "63ec9ad0457e8f75486861cf",
"unitPrice": 57,
"newUnitPrice": 57,
"totalNetValue": 171,
"tax": {
"taxClass": "STANDARD",
"taxRate": 10,
"prices": {
"grossValue": 188.1,
"netValue": 171
}
}
},
"product": {
"productId": "0601394000",
"name": {
"de": "GWS 750 - Kabelgebundener Winkelschleifer 750 W 115 mm",
"ar": "GWS 750 - 750 W 115 مم طاحونة الزاوية",
"ru": "GWS 750 - Corded angle grinder 750 W 115 mm",
"th": "GWS 750 - Corded angle grinder 750 W 115 mm",
"en": "GWS 750 - Corded angle grinder 750 W 115 mm",
"it": "GWS 750 - Smerigliatrice angolare a filo 750 W 115 mm",
"fr": "GWS 750 - Meuleuse d'angle filaire 750 W 115 mm",
"en-gb": "GWS 750 - Corded angle grinder 750 W 115 mm",
"es": "GWS 750 - Amoladora angular con cable 750 W 115 mm"
},
"media": {
"contentType": "image/jpg",
"url": "https://res.cloudinary.com/saas-ag/image/upload/emporix-docs/937b1491-e099-46f2-b31a-f7c2f7945f7a.jpg"
},
"taxClasses": {
"DE": "STANDARD",
"PL": "ZERO"
}
}
}
],
"restriction": "main",
"mixins": {
"customAttributes": {
"attribute": {
"value": 1,
"unit": "kg"
}
}
},
"metadata": {
"mixins": {
"customAttributes": "https://res.cloudinary.com/saas-ag/raw/upload/emporix-docs/695297f5b3fd5d378296ae41_customAttributes_v2.json"
},
"version": 1,
"createdAt": "2023-02-23T09:36:55.929Z",
"modifiedAt": "2023-02-23T09:38:49.196Z"
}
}
]Generates a new quote, which can be created either manually using a complete quote definition that includes items, or by copying the details from cart.
When you provide legalEntityId in a manual quote definition, billingAddressId is required and the legal entity must be assigned to that billing address; otherwise, the request fails with the 400 status code. The company name is filled in from the legal entity. A quote created from a cart copies the legalEntityId of the cart.
Additional scope information
One of the scopes is required.
The
quote.quote_manage_ownscope is required for customers to create a quote from cart.The additional
cart.cart_manage_external_pricesscope is required for managing external prices.
- : Needed to manage quotes.
- : Needed to manage own quotes by the customer.
Your Emporix tenant name.
Note: The tenant name should always be written in lowercase.
saasdev2The request was successful. The Quote has been created.
ID of the generated quote.
ID of the generated document.
Unsupported content language provided.
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.
Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.
Conflict.
POST /quote/{tenant}/quotes HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1339
{
"customerId": "9tt954309b06d46d3cf19fe",
"employeeId": "9tt954309b06d46d3cf19fa",
"billingAddressId": "64672a8f9939d331699cbe6e",
"shippingAddressId": "64672a8f9939d331699cbe6e",
"legalEntityId": "le-1",
"siteCode": "main",
"currency": "USD",
"validTo": "2022-04-01T04:37:04.301Z",
"shipping": {
"value": 10,
"methodId": "fedex-2dayground",
"zoneId": "63440460ceeaa26d794fcbbb",
"shippingTaxCode": "STANDARD"
},
"items": [
{
"quantity": {
"quantity": 1,
"unitCode": "piece"
},
"price": {
"type": "INTERNAL",
"priceId": "6245aa0a78a8576e338fa9c4",
"unitPrice": 13,
"totalNetValue": 13,
"tax": {
"taxClass": "STANDARD",
"taxRate": 20
}
},
"product": {
"type": "INTERNAL",
"productId": "7i98542309b06d46d3cf19fe",
"mixins": {
"customAttributes": {
"attribute": {
"value": 3,
"unit": "kg"
}
}
},
"metadata": {
"mixins": {
"customAttributes": "https://res.cloudinary.com/saas-ag/raw/upload/emporix-docs/695297f5b3fd5d378296ae41_customAttributes_v2.json"
}
}
},
"mixins": {
"customAttributes": {
"attribute": {
"value": 2,
"unit": "kg"
}
}
},
"metadata": {
"mixins": {
"customAttributes": "https://res.cloudinary.com/saas-ag/raw/upload/emporix-docs/695297f5b3fd5d378296ae41_customAttributes_v2.json"
}
}
}
],
"restriction": "US",
"mixins": {
"customAttributes": {
"attribute": {
"value": 1,
"unit": "kg"
}
}
},
"metadata": {
"mixins": {
"customAttributes": "https://res.cloudinary.com/saas-ag/raw/upload/emporix-docs/695297f5b3fd5d378296ae41_customAttributes_v2.json"
}
}
}{
"id": "e241dc9e-a3f6-4573-bb01-a8ae21d2d4ae"
}Retrieves a quote by a given id.
When the request uses a B2B customer token, the quote must be linked to the legal entity from the token; otherwise, the request fails with the 404 status code. When the approval process is enabled, a customer who is not the quote owner can retrieve the quote only if the approval service permits it for the legal entity from the token; otherwise, the request fails with the 403 status code.
Additional scope information
One of the scopes is required.
The
quote.quote_read_ownscope is only required to customers to retrieve their own quote.
- : Needed to retrieve quotes.
- : Needed to retrieve own quotes by the customer.
The tenant that the caller is acting upon
Note: This value must always be provided in lowercase.
^[a-z][a-z0-9]+$Quote unique identifier generated when the quote is created.
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.
- If the header is set to a particular language or a list of languages, all localized fields are retrieved as strings.
- 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. - If the header is empty, localized fields are retrieved in the default language defined in the Configuration Service.
OK
Quote ID
NOTE: If not specified during creation, this attribute is automatically generated. It is also possible to assign a custom ID.
Business model of the quote.
Customer-provided reference stored on the quote.
PO-12345Customer-provided comment stored on the quote.
Please deliver before FridayThe ID of the cart from which the quote was created (not available when the quote was created manually)
Identifier of the legal entity linked to the quote.
The site code for which the quote was created
The ID of the order which was created based on the quote. The order is created and assigned to the quote when status of the quote transitions to ACCEPTED.
The currency of the quote prices.
The date until which the quote is valid and can be accepted by the customer.
Access control identifier that determines who can view or manage the quotes.
Purpose: Restricts quote visibility based on scope permissions. Only users/applications with matching restriction scopes can access quotes with a specific restriction value.
Access Control:
- Reading: Users can only query and view quotes with the
restrictionvalue that matches one of their authorized restrictions.
Validation: The value must exist in the tenant's configured list of valid restrictions.
Restriction Synchronization:
- If quote is created by a customer (based on a cart) and
restrictionproperty is not set, therestrictionvalue of quote is inherited from customer's restriction. - If a quote is created by an employee and the
restrictionproperty is not set with tenant configuration propertyenableSyncBetweenRestrictionsAndSiteCodesset totrue, therestrictionfield automatically syncs with quote's siteCode property.
DEUnsupported language provided.
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.
Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.
Given resource cannot be found.
GET /quote/{tenant}/quotes/{quoteId} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
"id": "5b3188dc-9a5c-4163-8756-4f228c295a59",
"businessModel": "B2B",
"customer": {
"customerId": "72318750",
"firstName": "Stefan",
"lastName": "Muller",
"contactEmail": "s.muller@emporix.com"
},
"employee": {
"employeeId": "00u6fo3yzjE8Q7X0d417",
"firstName": "John",
"lastName": "Smith"
},
"cartId": "63ee5168e55c231c327220d3",
"legalEntityId": "le-1",
"company": {
"name": "The best company"
},
"siteCode": "main",
"orderId": "B7025189",
"currency": "USD",
"status": {
"value": "ACCEPTED",
"comment": "comment example",
"quoteReason": {
"id": "29817428df374918f236951",
"code": "PRICE_TOO_HIGH",
"type": "CHANGE",
"message": {
"en": "The price is too high",
"de": "Der Preis ist zu hoch"
}
},
"validTo": "2023-03-25T09:36:55.974Z"
},
"comment": {
"employeeComment": "Employee comment"
},
"customerReference": "PO-12345",
"customerComment": "Please deliver before Friday",
"validTo": "2023-03-25T09:36:55.974Z",
"totalPrice": {
"netValue": 205,
"grossValue": 225.5,
"taxValue": 20.5
},
"subtotalPrice": {
"netValue": 205,
"grossValue": 225.5,
"taxValue": 20.5
},
"taxAggregate": {
"lines": [
{
"name": "STANDARD",
"amount": 20.5,
"rate": 10,
"taxable": 225.5
}
]
},
"shipping": {
"value": 10,
"grossValue": 12,
"methodId": "fedex-2dayground",
"zoneId": "63440460ceeaa26d794fcbbb",
"methodName": {
"en": "FedEx 2Day",
"pl": "FedEx 2Dni"
},
"shippingTaxCode": "STANDARD"
},
"billingAddress": {
"id": "63440460cee2826d794fcb8a",
"name": "ABC",
"addressLine1": "Street",
"addressLine2": "27a",
"city": "London",
"countryCode": "GB",
"postcode": "32131",
"state": "London"
},
"shippingAddress": {
"id": "63440460cee2826d794fcb8a",
"name": "ABC",
"addressLine1": "Street",
"addressLine2": "27a",
"city": "London",
"countryCode": "GB",
"postcode": "32131",
"state": "London"
},
"items": [
{
"id": "0972ef39-9a4a-4867-b3c1-f8c00f66ee0a",
"quantity": {
"quantity": 1,
"unitCode": "piece"
},
"price": {
"type": "INTERNAL",
"priceId": "63ec99a2457e8f7548685fe5",
"unitPrice": 34,
"newUnitPrice": 34,
"discount": 0,
"totalNetValue": 34,
"tax": {
"taxClass": "STANDARD",
"taxRate": 10,
"prices": {
"grossValue": 37.4,
"netValue": 34
}
}
},
"product": {
"productId": "BC10033--BC10033-35",
"type": "INTERNAL",
"name": {
"de": "Hohe Sicherheitsschuhe Reptile RS S3 SRC, schwarz",
"ar": "حذاء الجريمة المحافظ المرتفع RS S3 SRC ، NERE",
"ru": "Safety shoes high Reptile RS S3 SRC, black",
"th": "Safety shoes high Reptile RS S3 SRC, black",
"en": "Safety shoes high Reptile RS S3 SRC, black",
"it": "Scarpe antinfortunistiche alte Reptile RS S3 SRC, nere",
"fr": "Chaussures de sécurité hautes Reptile RS S3 SRC, noir",
"en-gb": "Safety shoes high Reptile RS S3 SRC, black",
"es": "Zapatos de seguridad altos Reptile RS S3 SRC, negros"
},
"media": {
"id": "82c30154-dcf7-4bb9-b210-d960fec6c9fd",
"contentType": "image/jpg",
"url": "https://res.cloudinary.com/saas-ag/image/upload/emporix-docs/82c30154-dcf7-4bb9-b210-d960fec6c9fd.jpg"
},
"taxClasses": {
"DE": "STANDARD",
"PL": "ZERO"
},
"mixins": {
"customAttributes": {
"attribute": {
"value": 1,
"unit": "kg"
}
}
},
"metadata": {
"mixins": {
"customAttributes": "https://res.cloudinary.com/saas-ag/raw/upload/emporix-docs/695297f5b3fd5d378296ae41_customAttributes_v2.json"
}
}
},
"mixins": {
"customAttributes": {
"attribute": {
"value": 1,
"unit": "kg"
}
}
},
"metadata": {
"mixins": {
"customAttributes": "https://res.cloudinary.com/saas-ag/raw/upload/emporix-docs/695297f5b3fd5d378296ae41_customAttributes_v2.json"
}
}
},
{
"id": "ac16dd14-baa4-4ccb-bad3-756b36b89235",
"quantity": {
"quantity": 3,
"unitCode": "piece"
},
"price": {
"type": "INTERNAL",
"priceId": "63ec9ad0457e8f75486861cf",
"unitPrice": 57,
"newUnitPrice": 57,
"totalNetValue": 171,
"tax": {
"taxClass": "STANDARD",
"taxRate": 10,
"prices": {
"grossValue": 188.1,
"netValue": 171
}
}
},
"product": {
"type": "INTERNAL",
"productId": "0601394000",
"name": {
"de": "GWS 750 - Kabelgebundener Winkelschleifer 750 W 115 mm",
"ar": "GWS 750 - 750 W 115 مم طاحونة الزاوية",
"ru": "GWS 750 - Corded angle grinder 750 W 115 mm",
"th": "GWS 750 - Corded angle grinder 750 W 115 mm",
"en": "GWS 750 - Corded angle grinder 750 W 115 mm",
"it": "GWS 750 - Smerigliatrice angolare a filo 750 W 115 mm",
"fr": "GWS 750 - Meuleuse d'angle filaire 750 W 115 mm",
"en-gb": "GWS 750 - Corded angle grinder 750 W 115 mm",
"es": "GWS 750 - Amoladora angular con cable 750 W 115 mm"
},
"media": {
"contentType": "image/jpg",
"url": "https://res.cloudinary.com/saas-ag/image/upload/emporix-docs/937b1491-e099-46f2-b31a-f7c2f7945f7a.jpg"
},
"taxClasses": {
"DE": "STANDARD",
"PL": "ZERO"
}
}
}
],
"restriction": "main",
"mixins": {
"customAttributes": {
"attribute": {
"value": 1,
"unit": "kg"
}
}
},
"metadata": {
"mixins": {
"customAttributes": "https://res.cloudinary.com/saas-ag/raw/upload/emporix-docs/695297f5b3fd5d378296ae41_customAttributes_v2.json"
},
"version": 1,
"createdAt": "2023-02-23T09:36:55.929Z",
"modifiedAt": "2023-02-23T09:38:49.196Z"
}
}Deletes a quote with a given quote ID.
When the request uses a B2B customer token, only a quote that is linked to the legal entity from the token can be deleted. A quote linked to another legal entity is not deleted.
- : Needed to manage quotes.
The tenant that the caller is acting upon
Note: This value must always be provided in lowercase.
^[a-z][a-z0-9]+$Quote unique identifier generated when the quote is created.
Quote has been deleted successfully.
No content
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.
Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.
DELETE /quote/{tenant}/quotes/{quoteId} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
No content
Partially updates a quote with a given ID. Single update may contain multiple partial updates in the form of an array. It contains the allowed operations list:
add- adding an item to the items listremove- removing an item from the items listreplace- replacing an item with given ID with new definition which may contain custom price proposal or defined price
After events are saved, some of the information is retrieved in the async way from other services: full price definition is based on the provided price ID, and the full product name is based on the provided product ID.
The /legalEntityId path links the quote to a legal entity and fills the company name from it. The legal entity must be assigned to the quote billing address; otherwise, the request fails with the 400 status code. Removing /legalEntityId or /companyName clears both the company and legalEntityId, and changes the quote to B2C.
When the request uses a B2B customer token, the quote must be linked to the legal entity from the token; otherwise, the request fails with the 404 status code. When the approval process is enabled, a customer who is not the quote owner can update the quote only if the approval service permits it for the legal entity from the token, and a quote can be accepted only after the approval check passes. Otherwise, the request fails with the 403 status code.
Additional scope information
One of the scopes is required.
The
quote.quote_manage_ownscope allows customers to modify only their own quotes.Customers can update the
status,customerReference, andcustomerCommentfields.Customer status updates are limited to
ACCEPTED,DECLINED, andIN_PROGRESS.
- : Needed to manage quotes.
- : Needed to manage own quotes by the customer.
The tenant that the caller is acting upon
Note: This value must always be provided in lowercase.
^[a-z][a-z0-9]+$Quote unique identifier generated when the quote is created.
Quote update operation list.
JSON Pointer path of the quote field to update. The /companyName value is deprecated; use /legalEntityId instead.
Value of the string type.
Mixin request.
The request was successful. The quote has been updated.
No content
Unsupported content language provided.
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.
Permission denied due to insufficient rights. This may happen when request does not contain sufficient scopes for given query values.
Given resource cannot be found.
PATCH /quote/{tenant}/quotes/{quoteId} HTTP/1.1
Host: api.emporix.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 725
[
{
"op": "ADD",
"path": "/items",
"value": {
"itemId": "2298854309b06d4c6d3cf1zfe",
"quantity": {
"quantity": 1,
"unitCode": "H87"
},
"price": {
"priceId": "14551d2309b06sd46d3cf19bq",
"unitPrice": 13,
"totalNetValue": 13,
"tax": {
"taxClass": "STANDARD",
"taxRate": 20
}
},
"product": {
"productId": "74698542309b06dc46d3cf19fe"
}
}
},
{
"op": "REPLACE",
"path": "/status",
"value": {
"value": "OPEN",
"comment": "new comment"
}
},
{
"op": "REPLACE",
"path": "/items/22988s54309b06d46d3acf19fe",
"value": {
"quantity": {
"quantity": 1,
"unitCode": "H87"
},
"price": {
"priceId": "14551d2309b06sd46d3cf19bq",
"unitPrice": 13,
"totalNetValue": 13,
"tax": {
"taxClass": "STANDARD",
"taxRate": 20
}
},
"product": {
"productId": "74698542309b06dc46d3cf19fe"
}
}
},
{
"op": "REMOVE",
"path": "/items/124dfa82410fas824kfa"
}
]No content
Last updated
Was this helpful?

