Cart API overview
The Amazon Business Cart API allows you to programmatically manage Amazon Business shopping carts from external systems. This API provides comprehensive cart management capabilities including creating and modifying carts, retrieving cart details, and calculating estimated total purchase costs with shipping and tax information. With this functionality, integrating Cart API can help reduce order rejection rates and simplify the purchasing workflow.
Benefits of Cart API
Cart API provides the following benefits for you and your business customers:
Real-time cart management
Cart API allows you to create and modify Amazon Business carts entirely in external systems, giving you the flexibility to build cart management workflows tailored to your use cases.
Synchronized pricing and availability
Cart API provides current pricing and availability information for all cart items, ensuring customers have accurate data throughout their purchasing process. This synchronization can help prevent order failures due to price or availability changes.
Accurate cost estimation
By providing shipping address context, the API delivers precise cart-level visibility into shipping costs and tax calculations. These details enable your buyers to make informed purchasing decisions based on total delivered cost.
Streamlined procurement workflow
The API eliminates the need for redirecting customers to the Amazon Business website by enabling complete cart management within external platforms, creating a seamless integrated purchasing experience.
How it works
Cart API provides seven API operations:
| Operation | Method | Path | Description |
|---|---|---|---|
listCarts | GET | /cart/2025-04-30/carts | Retrieves a paginated list of cart summaries for a customer. |
getCart | GET | /cart/2025-04-30/carts/{cartId} | Retrieves a summary of the cart's overall information. |
getItems | GET | /cart/2025-04-30/carts/{cartId}/items | Retrieves the items in the cart. |
addItems | POST | /cart/2025-04-30/carts/{cartId}/items | Adds items to the cart. |
modifyItems | PATCH | /cart/2025-04-30/carts/{cartId}/items | Modifies items in the cart. |
deleteItems | DELETE | /cart/2025-04-30/carts/{cartId}/items | Resets the cart by removing all items after an order. |
getEstimatedTotalPurchaseCost | POST | /cart/2025-04-30/carts/{cartId}/totalPurchaseCostEstimations | Computes estimated total purchase cost for the cart. |
After retrieving a product’s ASIN and offer ID using Product Search API, you can use Cart API to add or remove items from the cart and estimate the cart’s total purchase cost, including shipping and taxes. Using item details from the getItems operation, you can call Ordering API to place the order. After the order is placed, call deleteItems to clear the cart and enable you to assemble new carts.
Cart API can only be used with ASINs and offer IDs retrieved from Product Search API. Cart API does not currently support Hosted Catalog.
Managing Amazon Business carts
Prerequisites
- Complete the API onboarding process to register as a developer, create an app client, and retrieve API access and refresh tokens. For more information, see Onboarding overview.
- Gain access to the Amazon Business Order Placement and Business Product Catalog roles. For more information, see Amazon Business API roles.
- Onboard to Product Search API to retrieve the ASIN and offer ID for items to be added to your customers’ carts. For more information, see Initiating a product search.
- Onboard to Ordering API to place orders. For more information, see Ordering API overview.
Step 1. Get initial cart information
Call the listCarts operation to retrieve cart details.
| Type | Name | Description | Schema | Required |
|---|---|---|---|---|
| header | x-amz-user-email | Email address of the Amazon Business customer making the request | string | Yes |
| query | region | The region where the customer wants to retrieve the carts | string | Yes |
| Query | pageToken | A page token returned in the response to your previous request when the number of results exceed the page size. To get the next page of results, include pageToken as a parameter. There are no more pages to return when the response returns no nextPageToken. This token needs to be encoded. | string | No |
| Query | pageSize | Number of cart summaries to return per page. Default: 5. Maximum: 10. | integer | No |
GET /cart/2025-04-30/carts?region=US
A successful request returns an array of cart details, including the id for each cart. Save the id to identify your desired cart in future steps of the workflow.
| Name | Description | Schema | Required |
|---|---|---|---|
cartDetailsList | List of cart details in a page. | < CartDetails > array | Yes |
nextPageToken | A page token returned in the response when the number of results exceed the page size. To get the next page of results, include nextPageToken as a parameter. There are no more pages to return when the response returns no nextPageToken. This token needs to be encoded. | string | No |
{
"cartDetailsList": [
{
"id": "cart-123",
"cartType": "DEFAULT",
"region": "US"
}
]
}
Step 2. Add items to cart
Using the ASINs and offer IDs retrieved from the Product Search API request in Prerequisites Step 3, add your selected items to the cart using the addItems operation. Identify the cart with the id you retrieved in Step 1.
| Type | Name | Description | Schema | Required |
|---|---|---|---|---|
| path | cartId | The unique identifier of the cart to which items are to be added. | string | Yes |
| query | region | The region where the customer wants to add items to the cart. | string | Yes |
| body | items | Items to add to cart. | array | Yes |
POST /cart/2025-04-30/carts/cart-123/items?region=US
{
"items": [
{
"productIdentifier": "Asin1",
"buyingOptionIdentifier": "OId1",
"quantity": 1,
"externalId": "client-item-001"
}
]
}
A successful response returns an array of all items in the cart, including any items that were already present as well as items added in this request. The response also includes an itemId attribute that can be used to modify items, if needed. If any items cannot be added, they are listed in the rejectedItems object.
| Name | Description | Schema | Required |
|---|---|---|---|
items | List of all items in the cart, including items added as part of the add items request. | < CartItem > array | Yes |
rejectedItems | Items that were rejected during cart addition. | < RejectedItem > array | Yes |
{
"items": [
{
"productIdentifier": "Asin1",
"itemId": "Id1",
"buyingOptionIdentifier": "OId1",
"quantity": 1,
"isItemAvailable": true,
"price": {
"currencyCode": "USD",
"amount": 30
},
"addedToCartDate": "2024-07-10T15:00:00.000Z",
"modifiedDate": "2024-07-10T15:00:00.000Z"
}
],
"rejectedItems": []
}
Item rejections
If an item cannot be added to the cart, such as if insufficient quantity is available, the API lists the rejected items in the rejectedItems array. In this example, 90 quantity of an ASIN could not be successfully added to the cart due to unavailability, as indicted by "quantity": 90 in the rejectedItems array.
{
"items": [
{
"itemId": "af3c6c98-1aaa-4ae0-9967-892ea47cf209",
"taxExclusivePrice": {
"amount": 14.16,
"currencyCode": "USD"
},
"quantity": 1,
"isItemAvailable": true,
"addedToCartDate": "2025-12-11T09:55:39.655Z",
"price": {
"amount": 14.16,
"currencyCode": "USD"
},
"modifiedDate": "2025-12-11T15:27:07.138Z",
"buyingOptionIdentifier": "asid-iQbrn3eYKKw7d8J",
"productIdentifier": "1452179611"
},
{
"itemId": "133ab9f9-2821-4c0a-985a-3668b4f1cbef",
"taxExclusivePrice": {
"amount": 39,
"currencyCode": "USD"
},
"quantity": 1,
"isItemAvailable": true,
"addedToCartDate": "2025-12-11T15:14:32.125Z",
"price": {
"amount": 39,
"currencyCode": "USD"
},
"modifiedDate": "2025-12-11T15:14:32.203Z",
"buyingOptionIdentifier": "asid-VExSfJu3uEsLXNA",
"productIdentifier": "B07MRMHML9"
},
{
"itemId": "ff5e84c8-ad95-4b27-9a46-d81a94e4ba06",
"taxExclusivePrice": {
"amount": 13.98,
"currencyCode": "USD"
},
"quantity": 1,
"isItemAvailable": true,
"addedToCartDate": "2025-12-11T09:55:37.099Z",
"price": {
"amount": 13.98,
"currencyCode": "USD"
},
"modifiedDate": "2025-12-11T15:27:07.138Z",
"buyingOptionIdentifier": "asid-Qlh6PBdQ6UDncRO",
"productIdentifier": "0593135229"
},
{
"itemId": "34a9a52d-8e76-403a-b4bd-0ed0856c7fca",
"taxExclusivePrice": {
"amount": 9.46,
"currencyCode": "USD"
},
"quantity": 100,
"isItemAvailable": true,
"addedToCartDate": "2025-12-11T15:26:55.574Z",
"price": {
"amount": 9.46,
"currencyCode": "USD"
},
"modifiedDate": "2025-12-11T15:27:07.16Z",
"buyingOptionIdentifier": "asid-oKFQoIBBiPGVXXF",
"productIdentifier": "B00006IE8P"
},
{
"itemId": "f48c8251-fa8f-41ac-9a63-9506d3b8ad2f",
"taxExclusivePrice": {
"amount": 5.85,
"currencyCode": "USD"
},
"quantity": 90,
"isItemAvailable": true,
"addedToCartDate": "2025-12-11T15:27:07.066Z",
"price": {
"amount": 5.85,
"currencyCode": "USD"
},
"modifiedDate": "2025-12-11T15:27:07.171Z",
"buyingOptionIdentifier": "asid-Xpuv9NwJlIrhSms",
"productIdentifier": "B0047CP6HE"
}
],
"rejectedItems": [
{
"rejectionArtifacts": [
{
"quantity": 90,
"rejectionArtifactType": "UnavailableQuantity"
}
],
"id": "40bca614-5e86-4cc9-8065-0808dc01fa9d"
}
]
}
Step 3 (Optional). Modify cart items
To update quantities of items that have already been added to a cart, call the modifyItems operation. Use the itemId returned in Step 2 to identify the items to modify.
This operation only updates the quantity of items explicitly identified in the API request. Any items not identified are unchanged.
| Type | Name | Description | Schema | Required |
|---|---|---|---|---|
| path | cartId | The unique identifier of the cart in which items are to be modified. | string | Yes |
| query | region | The region where the customer wants to modify items in the cart. | string | Yes |
| body | items | Items to modify in the cart. | array | Yes |
PATCH /cart/2025-04-30/carts/cart-123/items?region=US
{
"items": [
{
"itemId": "cId1",
"quantity": 3
}
]
}
A successful request returns the whole cart, including any items that were modified. If any items were rejected during cart modification, they will be listed in the rejectedItems array.
This operation is idempotent and safe to retry in case a request fails.
| Name | Description | Schema | Required |
|---|---|---|---|
items required | List of all items in the cart after processing the modify items request. | < CartItem > array | Yes |
rejectedItemsrequired | Items that were rejected during cart modification. | < RejectedItem > array | Yes |
{
"items": [
{
"productIdentifier": "Asin1",
"itemId": "cId1",
"buyingOptionIdentifier": "OId1",
"quantity": 3,
"isItemAvailable": true,
"price": {
"currencyCode": "USD",
"amount": 30
},
"addedToCartDate": "2024-07-10T15:00:00.000Z",
"modifiedDate": "2024-07-10T15:00:00.000Z"
}
],
"rejectedItems": []
}
Removing an item from cart
To remove an item from the cart, set quantity to 0 in the modifyItems request.
PATCH /cart/2025-04-30/carts/cart-123/items?region=US
{
"items": [
{
"itemId": "cId1",
"quantity":0
}
]
Step 4. Review cart items
After adding items to the cart, call the getItems operation to retrieve the latest status of all items in the cart.
| Type | Name | Description | Schema | Required |
|---|---|---|---|---|
| path | cartId | The unique identifier of the cart whose items are to be retrieved. | string | Yes |
| query | region | The region where the customer wants to retrieve the cart items. | string | Yes |
GET /cart/2025-04-30/carts/cart-123/items?region=US
A successful request returns an array of all items in the cart, including each item’s productIdentifier , itemId, and buyingOptionIdentifier.
| Name | Description | Schema | Required |
|---|---|---|---|
| items | List of items in the cart along with their data. | < CartItem > array | Yes |
{
"items": [
{
"itemId": "e4009f7e-5dae-406c-a557-e0cce1bdfa2b",
"taxExclusivePrice": {
"amount": 6.77,
"currencyCode": "USD"
},
"quantity": 1,
"isItemAvailable": true,
"addedToCartDate": "2025-12-16T08:53:13.044Z",
"price": {
"amount": 6.77,
"currencyCode": "USD"
},
"modifiedDate": "2025-12-16T08:53:16.404Z",
"buyingOptionIdentifier": "asid-cDgO1MoVosdUh19",
"productIdentifier": "B004J0YPAI"
}
]
}
Step 5. Retrieve cart summary
After adding items to a cart, call the getCart operation to return a summary of the entire cart, including the subtotal.
| Type | Name | Description | Schema |
|---|---|---|---|
| Path | cartId required | The unique identifier of the cart whose details are to be retrieved. | string |
| Query | region required | The region where the customer wants to retrieve the cart. | enum (Region) |
GET /cart/2025-04-30/carts/cart-123?region=US
A successful request returns the following details:
{
"id": "cart-123",
"cartType": "DEFAULT",
"region": "US",
"attributes": [
{
"attributeType": "SubTotal",
"amount": {
"currencyCode": "USD",
"amount": 70
}
}
]
}
Step 6. Get cart total cost estimation
Calculate the estimated total purchase cost using the getEstimatedTotalPurchaseCost operation. This operation uses the full delivery address to calculate the final cost of the cart.
| Type | Name | Description | Schema | Required |
|---|---|---|---|---|
| path | cartId | The unique identifier of the cart whose estimated total purchase cost is to be computed. | string | Yes |
| query | region | The region where the customer wants to compute the estimated total purchase cost. | string | Yes |
| body | address | Address to which items in the cart are to be delivered. | object | Yes |
POST /cart/2025-04-30/carts/cart-123/totalPurchaseCostEstimations?region=US
{
"address": {
"addressType": "PhysicalAddress",
"fullName": "cart user",
"addressLine1": "307 Boren Ave",
"city": "Seattle",
"stateOrRegion": "WA",
"postalCode": "98101",
"countryCode": "US"
}
}
A successful request returns an array of the total cost of the cart, broken down into categories such as shipping, tax, and principal. You can use this data to populate a checkout screen showing the total cost of the cart.
| Name | Description | Schema | Required |
|---|---|---|---|
charges required | Detailed breakdown of all costs when delivering cart items to the provided address. This array will be empty when rejectionArtifacts contains items. | < Charge > array | Yes |
rejectionArtifacts required | Array of rejection artifacts explaining any issues with the cost estimation. This array will be empty when charges contains items. | < RejectionArtifact > array | Yes |
Either the
chargesattribute will be populated with cost estimation orrejectionArtifactswill be populated if cost estimation fails. Both attributes will never be populated simultaneously.
{
"charges": [
{
"type": "PRINCIPAL",
"category": "SUBTOTAL",
"amount": {
"currencyCode": "USD",
"amount": 123.0
}
},
{
"type": "PRINCIPAL",
"category": "SHIPPING",
"amount": {
"currencyCode": "USD",
"amount": 10.0
}
},
{
"type": "TAX",
"category": "SUBTOTAL",
"amount": {
"currencyCode": "USD",
"amount": 12.3
}
},
{
"type": "TAX",
"category": "SHIPPING",
"amount": {
"currencyCode": "USD",
"amount": 1.2
}
}
],
"rejectionArtifacts": []
}
Rejected items
If any item in the cart would be rejected from any orders placed, the getEstimatedTotalPurchaseCost operation returns a rejectionArtifacts object listing the item identifiers of the item that would be rejected and a message explaining the rejection reason. If you proceed to place an order for this item, the item would be rejected.
To prevent order rejections, return to Step 3 to remove the item from your cart using the modifyItems operation.
{
"charges": [],
"rejectionArtifacts": [
{
"cartItemIdentifiers": [
"28db74d3-8f7a-460d-b62c-b096324e4d7a"
],
"message": "Restricted item ineligible for non-business customer.",
"rejectionArtifactType": "UnsupportedCartItems"
}
]
}
Step 7. Place order
Call Ordering API to place an order. Populate the following Ordering API request fields with values from the Cart API getItems operation:
quantity: Provide the applicable quantity.productIdentifier: Provide theproductIdentifiervalue.BuyingOptionIdentifier: Provide thebuyingOptionIdentifiervalue.
Providing Cart API values ensures that Amazon Business honors the price and quantity displayed in the Cart API response. For more information on calling Ordering API, see Placing an order.
{
"lineItems": [
{
"quantity": "1",
"externalId": "5976b95e-66f2-4cf1-9f57-6e5ed4b33033",
"attributes": [
{
"attributeType": "SelectedProductReference",
"productReference": {
"id": "B004J0YPAI",
"productReferenceType": "ProductIdentifier"
}
},
{
"attributeType": "SelectedBuyingOptionReference",
"buyingOptionReference": {
"id": "asid-cDgO1MoVosdUh19",
"buyingOptionReferenceType": "BuyingOptionIdentifier"
}
}
],
"expectations": [
{
"amount": {
"amount": 6.77,
"currencyCode": "USD"
},
"expectationType": "ExpectedUnitPrice"
},
{
"amount": {
"amount": 8.12,
"currencyCode": "USD"
},
"expectationType": "ExpectedCharge",
"source": "SUBTOTAL"
}
]
}
],
"externalId": "ed3462f3-db89-403e-ab57-8415f5ce0eda",
"attributes": [
{
"attributeType": "Region",
"region": "US"
},
{
"paymentMethodReference": {
"paymentMethodReferenceType": "StoredPaymentMethod"
},
"attributeType": "SelectedPaymentMethodReference"
},
{
"attributeType": "BuyingGroupReference",
"groupReference": {
"identifier": "CartAPITest",
"groupReferenceType": "GroupIdentity"
}
},
{
"attributeType": "BuyerReference",
"userReference": {
"emailAddress": "[email protected]",
"userReferenceType": "UserEmail"
}
},
{
"attributeType": "PurchaseOrderNumber",
"purchaseOrderNumber": "ABC9984760840871204"
},
{
"address": {
"stateOrRegion": "CA",
"city": "San Francisco",
"addressType": "PhysicalAddress",
"countryCode": "US",
"postalCode": "94107",
"fullName": "John Doe",
"addressLine1": "1000 Business Way"
},
"attributeType": "ShippingAddress"
},
{
"address": {
"stateOrRegion": "CA",
"city": "San Francisco",
"addressType": "PhysicalAddress",
"countryCode": "US",
"postalCode": "94107",
"fullName": "John Doe",
"addressLine1": "1000 Business Way"
},
"attributeType": "BillingAddress"
}
],
"expectations": []
}
{
"lineItems": [
{
"externalId": "5976b95e-66f2-4cf1-9f57-6e5ed4b33033",
"acceptedItems": [
{
"acceptedItemType": "SingleAcceptedItem",
"quantity": 1,
"artifacts": [
{
"acceptanceArtifactType": "DeliveryTimeRange",
"lowerBoundary": "2025-12-19T08:00:00Z",
"upperBoundary": "2025-12-20T07:59:59Z"
},
{
"acceptanceArtifactType": "UnitPrice",
"amount": {
"currencyCode": "USD",
"amount": 6.77
}
},
{
"acceptanceArtifactType": "Charge",
"amount": {
"currencyCode": "USD",
"amount": 6.99
},
"category": "SHIPPING",
"type": "PRINCIPAL"
},
{
"acceptanceArtifactType": "Charge",
"amount": {
"currencyCode": "USD",
"amount": 0.6
},
"category": "SHIPPING",
"type": "TAX"
},
{
"acceptanceArtifactType": "Charge",
"amount": {
"currencyCode": "USD",
"amount": 6.77
},
"category": "SUBTOTAL",
"type": "PRINCIPAL"
},
{
"acceptanceArtifactType": "Charge",
"amount": {
"currencyCode": "USD",
"amount": 0.58
},
"category": "SUBTOTAL",
"type": "TAX"
},
{
"acceptanceArtifactType": "OrderIdentifier",
"identifier": "113-0980705-5671420"
},
{
"acceptanceArtifactType": "LineItemIdentifier",
"identifier": "149622596122481:"
}
]
}
],
"rejectedItems": []
}
],
"acceptanceArtifacts": [
{
"acceptanceArtifactType": "Signed"
},
{
"acceptanceArtifactType": "Charge",
"amount": {
"currencyCode": "USD",
"amount": 6.99
},
"category": "SHIPPING",
"type": "PRINCIPAL"
},
{
"acceptanceArtifactType": "Charge",
"amount": {
"currencyCode": "USD",
"amount": 0.6
},
"category": "SHIPPING",
"type": "TAX"
},
{
"acceptanceArtifactType": "Charge",
"amount": {
"currencyCode": "USD",
"amount": 6.77
},
"category": "SUBTOTAL",
"type": "PRINCIPAL"
},
{
"acceptanceArtifactType": "Charge",
"amount": {
"currencyCode": "USD",
"amount": 0.58
},
"category": "SUBTOTAL",
"type": "TAX"
}
],
"rejectionArtifacts": []
}
Step 8. Clear cart
After successfully ordering items in the cart, clear your cart using the deleteItems operation. This operation resets the cart by removing all items, allowing you to create new carts for subsequent orders.
| Type | Name | Description | Schema | Required |
|---|---|---|---|---|
| path | cartId | The unique identifier of the cart from which items are to be deleted | string | Yes |
| query | region | The region where the customer wants to delete items from the cart | string | Yes |
DELETE /cart/2025-04-30/carts/cart-123/items?region=US
A successful request a 204 response code with no response body data.
204 No Content
Error handling
If your request is not successful, the API returns an errors object that provides information about what went wrong. For more information, see Error responses and schemas.
Best practices
Follow these best practices while integrating with Cart API:
- Search using delivery context: While implementing Product Search API, send the delivery zip code in the
shippingPostalCoderequest query parameter. Including this value ensures that the search results contain items that are deliverable to the final address with the same zip code when the order is placed. For more information about shipping details in Product Search API, see Personalizing searches. - Always order using the new
buyingOptionIdentifierreturned inaddItemsoperation response: All Cart API operations can be performed by using theofferIdreturned by Product Search API. However, when placing an order, send thebuyingOptionIdentifierreturned by the Cart APIgetItemsresponse in the Ordering API request. Using thisbuyingOptionIdentifierensures that the item is ordered and fulfilled using the prices in the cart. - Refresh cart using
getEstimatedTotalProductCostbefore placing the final order: The Product Search API only uses the zip code for delivery context, while orders are placed using a full shipping address. Before placing the final order, call thegetEstimatedTotalProductCostoperation with the full address. This operation returns the final charges, refreshes the cart with the final price, and identifies any line items that would get rejected during order placement.
Frequently asked questions
What is the difference between offerId returned by Product Search API and buyingOptionIdentifier in Cart API?
The buyingOptionIdentifier returned in the Cart API response will also contain the cartId and cartItemId. Amazon Business uses these IDs to identify that the order is using Cart API and honor the price displayed in the request. However, if you send the offerId from the Product Search API response, the order becomes a direct Ordering API order. Amazon Business will then place the order using normal marketplace offers, potentially diverging from the price displayed in the Cart API response.
Which offerId do we use to place the order?
Use the buyingOptionIdentifier that is returned in the Cart API response. Using this ID ensures that the prices seen during cart creation are the ones being used to place the order.
Which operations update the items in the cart?
The addItems, modifyItems, and getItems operations refresh the cart with the latest item details, including price and availability.
Is the cart automatically cleared after placing an order?
No. After placing an order, call the deleteItems operation to clear the cart.
Can we add the same ASIN with different buyingOptionIdentifier values to the cart?
Yes. Cart API treats each buyingOptionIdentifier as different line items.
Appendices
The Cart API GetEstimatedTotalPurchaseCost operation returns constraint violations when a purchase cannot be completed due to constraint violations from the Purchase Checkout Engine (PCE).
Each constraint violation in the following table includes five fields. The constraint violation field contains the internal constraint violation name from the Purchase Checkout Engine (PCE). The error message field contains the message returned to the customer in the API response. The level field indicates whether the error applies to a specific line item or the entire order. The "When does this occur?" field describes the condition that triggers this constraint violation, and the "How to fix?" field provides the recommended action for the customer or calling system to resolve the issue.
Appendix 1: Line Item Level Constraint Violations
These errors are associated with specific items in the cart.
| Constraint Violation | Error Message | Level | When does this occur? | How to fix? |
|---|---|---|---|---|
AlcoholContentConstraintViolation | Age verification required. | Line Item | The item has an age restriction (for example, alcohol) and the buyer has not completed age verification. | Complete the age verification process for the buyer's account before purchasing this item. |
AgeLimitationConstraintViolation | Age verification required. | Line Item | The item has a jurisdiction-based age limitation. | Complete the age verification process for the buyer's account. |
BusinessLevelQuantityLimitsConstraintViolation | Quantity limit exceeded. | Line Item | The quantity requested exceeds a business-level purchasing limit configured by the organization's admin. | Reduce the quantity to within the allowed limit or contact your organization's admin to increase the limit. |
BusinessOfferUsedByNonBusinessCustomer | Restricted item ineligible for non-business customer. | Line Item | A business-only restricted item is being purchased by a non-business customer or a customer without the required business affiliation. | Ensure the customer has a valid Amazon Business account with appropriate group membership. |
BusinessOnlyRestrictedItemCannotShipToState | Restricted items cannot be shipped out of state. | Line Item | A restricted item (for example, requiring a state license) cannot be shipped to an address outside the license's state. | Change the shipping address to one within the state covered by the license. |
BusinessOnlyRestrictedItemCustomerNotCertified | Restricted items require certification. | Line Item | The item requires a valid professional certification that the customer has not uploaded. | Upload the required certification in the Amazon Business account settings before purchasing. |
BusinessOnlyRestrictedItemLicenseAddressMismatch | Shipping address mismatch in license. | Line Item | The shipping address does not match the address associated with the required license for this restricted item. | Update the shipping address to match the license address or update the license. |
BusinessOnlyRestrictedItemLicenseExpired | Restricted item license expired. | Line Item | The license required to purchase this restricted item has expired. | Renew the license and upload the updated version to the Amazon Business account. |
BusinessOnlyRestrictedItemLicenseStateMismatch | Restricted item license address mismatch. | Line Item | The state on the license does not match the shipping state for this restricted item. | Ensure the license state matches the shipping destination state. |
BuyerEqualsSellerConstraintViolation | Buyer cannot be same as seller. | Line Item | The buying customer is also the seller of this item. | Remove this item from the cart. A customer cannot buy their own listed items. |
CommercialAddressRequiredConstraintViolation | Restricted items require commercial address. | Line Item | This item can only be shipped to a verified commercial address. | Change the shipping address to a commercial address. Residential addresses are not allowed for this item. |
CommercialAddressRequiredSharedPayConstraintViolation | Restricted items require commercial address. | Line Item | This item requires a commercial address when using shared payment. | Change the shipping address to a commercial address. |
ConsumerOnlyItemUsedByBusinessCustomer | Consumer-only item. | Line Item | This item is restricted to personal or consumer accounts and cannot be purchased through a business checkout flow. | This item cannot be purchased through the Cart API. It must be purchased through a personal consumer checkout. |
CredentialMissing | Item requires credential. | Line Item | A specific professional credential is required to purchase this item. | Upload the required credential in the Amazon Business account settings. |
CrossBorderExportConstraintViolation | Shipping export restrictions. | Line Item | The item cannot be shipped to the selected destination due to cross-border export control regulations. | Change the shipping address to a permitted destination or remove the item from the cart. |
CustomerNotEligibleConstraintViolation | Customer not eligible for purchasing. | Line Item | The customer's account is not eligible to purchase this item (for example, account restrictions, compliance holds). | Contact Amazon Business support to resolve account eligibility issues. |
DeliveryInformationMissingConstraintViolation | The item cannot be shipped to your selected shipping address. | Line Item | Delivery information is missing for the selected address and item combination. | Verify the shipping address is complete and valid or try a different address. |
OfferUnbuyableForCustomerContextConstraintViolation | The item cannot be shipped to your selected shipping address. | Line Item | The offer is not buyable in the current customer context (for example, address or marketplace mismatch). | Try a different shipping address or verify the item is available in your marketplace. |
DeliveryOptionConstraintViolation | No valid shipping option. | Line Item | No shipping carrier or delivery method can deliver this item to the selected address. | Verify the shipping address is complete and correct. Try a different address or remove the item. |
MFN DeliveryOptionConstraintViolation | No valid shipping option. | Line Item | No Merchant Fulfilled Network (MFN) delivery option is available for this item to the selected address. | Try a different shipping address or contact the seller. |
EduKThru12CredentialMissing | Item requires K12 credential. | Line Item | This item is restricted to K-12 educational institutions and requires a K-12 credential. | Upload a valid K-12 educational credential in the Amazon Business account. |
EligibilityConstraintViolation | Age verification required. | Line Item | The item has an eligibility restriction requiring age verification. | Complete the age verification process for the buyer's account. |
ExportOfferBuyabilityRestriction | Shipping export restrictions. | Line Item | The item has export restrictions preventing shipment to the selected destination. | Change the shipping address to a permitted destination or remove the item. |
FulfillmentNetworkMissingConstraintViolation | The item cannot be shipped to your selected shipping address. | Line Item | No fulfillment network can deliver this item to the selected address. | Try a different shipping address. The item may not be available for delivery to this location. |
IncompleteInputConstraintViolation | Slot not available for scheduled delivery. | Line Item | The selected scheduled delivery slot is no longer available or input is incomplete. | Choose a different delivery slot or switch to standard delivery. |
IneligibleQuantityLimitsConstraintViolation | Quantity limit exceeded. | Line Item | The requested quantity exceeds the allowed limit for this specific item. | Reduce the quantity to within the allowed limit. |
InvalidSelectedDeliveryOptionForLineItemConstraintViolation | No valid shipping option. | Line Item | The previously selected delivery option is no longer valid for this item. | Retry the purchase to get updated delivery options. |
InvalidInputConstraintViolation | No valid shipping option. | Line Item | Invalid input was provided for scheduled delivery. | Retry without scheduled delivery preferences or select a valid delivery slot. |
InvalidServiceAppointmentPreferences | Amazon Home Services is not supported. | Line Item | Amazon Home Services items are not supported through this checkout channel. | These items cannot be purchased through the Cart API. |
ItemQuantityUnavailableConstraintViolation (AFN) | Item is out of stock. | Line Item | The item is not available in the requested quantity from Amazon Fulfillment Network (AFN). | Reduce the quantity or retry later when stock is replenished. |
ItemQuantityUnavailableConstraintViolation (MFN) | Item is out of stock. | Line Item | The item is not available in the requested quantity from the MFN (Merchant Fulfilled Network). | Reduce the quantity or retry later when stock is replenished. |
JurisdictionConstraintViolation | Shipping export restrictions. | Line Item | The item cannot be shipped to the selected jurisdiction due to legal restrictions. | Change the shipping address to a jurisdiction where this item is permitted. |
MilitaryUSArmyCredentialMissing | Item requires US Army credentials. | Line Item | This item is restricted to verified US Army personnel. | Upload valid US Army credentials in the Amazon Business account. |
MinimumQuantityLimitsConstraintViolation | Minimum quantity not reached. | Line Item | The order quantity is below the minimum required for this item (for example, bulk-only items). | Increase the quantity to meet the minimum order requirement. |
OfferListingNotAvailableContraintViolation | Selected offer is unavailable. | Line Item | The specific offer or listing selected for this item is no longer available. | Retry the purchase. A different offer may be automatically selected. If the issue persists, the item may no longer be available. |
PanasonicITVARCredentialMissing | Item requires Panasonic IT-VAR reseller license. | Line Item | This item requires a Panasonic IT-VAR reseller license. | Upload a valid Panasonic IT-VAR reseller license in the account settings. |
PaymentMethodConstraintViolation | Inactive payment instrument. | Line Item | The payment method associated with specific line items is inactive or invalid. | Update the payment method in the group's business settings or use a different active payment instrument. |
PrescriptionMissingConstraintViolation | Item requires veterinary prescription. | Line Item | This item requires a valid veterinary prescription on file. | Upload a valid veterinary prescription before purchasing this item. |
ProfessionalBeautyCredentialMissing | Item requires a professional beauty license. | Line Item | This item is restricted to licensed beauty professionals. | Upload a valid professional beauty license in the Amazon Business account. |
ProhibitedItemsConstraintViolation | Item or seller is prohibited. | Line Item | The item or its seller has been blocked by your organization's purchasing policy. | Contact your organization's admin to review the prohibited items or sellers policy, or remove the item. |
QuantityLimitsConstraintViolation | Quantity limit exceeded. | Line Item | The requested quantity exceeds the general allowed limit for this item. | Reduce the quantity to within the allowed limit. |
ServiceLocationOutOfCoverageArea | Amazon Home Services is not supported. | Line Item | The service location is outside the coverage area for Amazon Home Services. | These items cannot be purchased through the Cart API. |
ShipAddressDeactivatedConstraintViolation | Unexpected error. | Line Item | The shipping address has been deactivated. | Reactivate the shipping address or use a different address. Contact your admin if the address was deactivated by policy. |
ShippingEngine_FilterBasedConstraintViolation | No valid shipping option. | Line Item | The item was filtered out by shipping engine rules for the selected address. | Try a different shipping address or remove the item. |
ShippingEngine_InvalidCustomerNameConstraintViolation | No valid shipping option. | Line Item | The customer's name on the shipping address is invalid or contains unsupported characters. | Update the customer's name on the shipping address to remove invalid characters. |
ShippingEngine_InvalidInputConstraintViolation | No valid shipping option. | Line Item | Invalid input was provided to the shipping engine. | Verify the shipping address is complete and correctly formatted. |
ShippingEngine_RemoverBasedConstraintViolation | No valid shipping option. | Line Item | The item was removed from shipping eligibility by shipping engine rules. | Try a different shipping address or remove the item. |
VirtualBundleQuantityConstraintViolation | Multiple quantities are unsupported in bundle. | Line Item | Virtual bundle items cannot be ordered in quantities greater than one. | Set the quantity to 1 for bundle items. |
Appendix 2: Order Level Constraint Violations
These errors apply to the entire order and are not associated with a specific item.
| Constraint Violation | Error Message | Level | When does this occur? | How to fix? |
|---|---|---|---|---|
InvalidCheckoutGroupConstraintViolation | Your group is not enabled for purchasing. | Order | No valid checkout group could be resolved for the customer. This typically happens when the customer has multiple groups and no default group is configured, or the customer has never checked out before through this channel, or the group has purchasing disabled. | Ensure the customer belongs to a group with purchasing enabled. If the customer has multiple groups, pass a specific checkoutGroupId in the request. Contact your organization's admin to verify group purchasing settings. |
EligibilityFaultConstraintViolation | Your group is not enabled for purchasing. | Order | The customer's group has a payment eligibility fault. The group's payment configuration is invalid, or the group is not enabled for the selected payment type. | Contact your organization's admin to verify the group's payment settings and ensure purchasing is enabled. |
InvalidSharedDestinationConstraintViolation | The selected shipping address is not valid for your group. | Order | The shipping address is not on the list of approved shared addresses for the customer's purchasing group. | Use an approved shared address from the group's address book or contact the group admin to add this address to the approved list. |
MissingCOFReferenceConstraintViolation | Required business order information is missing for your group. | Order | Custom Order Fields (for example, Purchase Order (PO) number, cost center) required by the group's purchasing policy are not provided in the request. | Provide the required Custom Order Fields (for example, PO number) in the purchase request. Contact the group admin to see which fields are mandatory. |
AddressAssociationConstraintViolation | Unexpected error. | Order | An internal address association error occurred during payment plan validation. | Retry the request. If the issue persists, verify the shipping address is valid and associated correctly, then contact support. |
ExpiredInstrumentConstraintViolation | Expired payment instrument. | Order | The payment method configured for the group has expired. | Contact your organization's admin to update the group's payment method with a valid, non-expired instrument. |
InactiveInstrumentBillingAddressViolation | Invalid billing address. | Order | The billing address associated with the payment instrument is inactive or invalid. | Update the billing address on the payment instrument through the Amazon Business account settings. |
InactiveInstrumentConstraintViolation | Inactive payment instrument. | Order | The payment instrument configured for the group is inactive. | Contact your organization's admin to activate the payment instrument or configure a new one. |
InsufficientCoverageConstraintViolation | Insufficient balance in Pay-by-Invoice credit line. | Order | The Pay-by-Invoice credit line does not have sufficient remaining balance to cover this purchase. | Wait for existing invoices to be paid to free up credit, request a credit line increase, or use a different payment method. |
PaymentPlanAspect.ConstraintViolation | Your group is not configured to use shared payment instruments. | Order | The group's payment configuration does not allow the payment method to be used (for example, trying to use shared payment when only self-pay is configured). | Contact the group admin to review the payment configuration or ensure the correct payment method type is being used. |
VirtualBundleASINPresentConstraintViolation | Multiple quantities are unsupported in bundle. | Order | A virtual bundle ASIN is present in the order with invalid configuration. | Ensure bundle items have quantity of 1. |
OrderingUnitLimitConstraintViolation | Total quantity limit exceeded. | Order | The total quantity of items across the entire order exceeds the maximum order-level limit. | Reduce the total number of items/units in the order or split them into multiple orders. |
InvalidBudgetConstraintViolation | The budget selected for this purchase is not valid. | Order | The budget assigned to this purchase has been deactivated, deleted, or is otherwise invalid. | Select a different valid budget or contact the admin to reactivate the budget. |
InsufficientFundsConstraintViolation | The budget used to complete this purchase has insufficient funds. | Order | The assigned budget does not have enough remaining funds to cover this purchase. | Choose a budget with sufficient funds, request a budget increase from the admin, or reduce the order amount. |
KycDocumentUploadRequiredConstraintViolation | Item requires Know Your Customer (KYC) document upload. | Order | A Know Your Customer (KYC) document upload is required by regulatory compliance before this purchase can proceed. | Upload the required KYC documents in the account settings before retrying the purchase. |