# My Carts The My Carts API creates and provides access to [Carts](/api/projects/carts.md) scoped to a specific [Customer](/api/projects/customers.md). The endpoints require an access token from the [password flow](/api/authorization.md#password-flow) or [anonymous session flow](/api/authorization.md#tokens-for-anonymous-sessions). The My Carts API intentionally provides write access only to a limited subset of the fields on a [Cart](/urn?urn=ctp%3Aapi%3Atype%3ACart). This provides extra security in scenarios when a mobile or browser application communicates directly with the API on behalf of a customer. For example, the mobile application can not set external line item prices. If you need to modify a protected field available on the full [Cart](/urn?urn=ctp%3Aapi%3Atype%3ACart) resource, do it from a trusted, server-side application. Use an [API Extension](/api/projects/api-extensions.md) to make the modification during the API call. Custom Line Items and custom Tax Rates cannot be set via this API. ## Representations Find below the representations for the request payloads that are specific for My Carts, the response representations are equal to the ones for the general Carts documented [there](/api/projects/carts.md#representations). #### MyCartDraft [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartDraft). #### MyLineItemDraft [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyLineItemDraft). #### ReplicaMyCartDraft [type definition](/api/projects/me-carts.md?urn=ctp:api:type:ReplicaMyCartDraft). ## Get My Cart ### Get My Cart by ID [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/carts/\{id}:GET). ### Get My active Cart [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/active-cart:GET). ## Get My Cart in Store ### Get My Cart in Store by ID [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/carts/\{id}:GET). ### Get My active Cart in Store [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/active-cart:GET). ## Query My Carts [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/carts:GET). ## Query My Carts in Store [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/carts:GET). ## Check if My Cart exists ### Check if My Cart exists by ID [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/carts/\{id}:HEAD). ### Check if My active Cart exists [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/active-cart:HEAD). ### Check if My Cart exists by Query Predicate [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/carts:HEAD). ## Check if My Cart exists in Store ### Check if My Cart exists in Store by ID [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/carts/\{id}:HEAD). ### Check if My active Cart exists in Store [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/active-cart:HEAD). ### Check if My Cart exists in Store by Query Predicate [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/carts:HEAD). ## Create My Cart When creating [B2B Carts](/api/associates-overview.md#b2b-resources), the Customer must have the `CreateMyCarts` [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission). If the required [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission) is missing, an [AssociateMissingPermission](/urn?urn=ctp%3Aapi%3Atype%3AAssociateMissingPermissionError) error is returned. [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/carts:POST). ## Create My Cart in Store When creating [B2B Carts](/api/associates-overview.md#b2b-resources), the Customer must have the `CreateMyCarts` [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission). If the required [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission) is missing, an [AssociateMissingPermission](/urn?urn=ctp%3Aapi%3Atype%3AAssociateMissingPermissionError) error is returned. [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/carts:POST). ## Replicate My Cart When creating [B2B Carts](/api/associates-overview.md#b2b-resources), the Customer must have the `CreateMyCarts` [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission). If the required [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission) is missing, an [AssociateMissingPermission](/urn?urn=ctp%3Aapi%3Atype%3AAssociateMissingPermissionError) error is returned. [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/carts/replicate:POST). ## Update My Cart When updating [B2B Carts](/api/associates-overview.md#b2b-resources), the Customer must have the `UpdateMyCarts` [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission). If the required [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission) is missing, an [AssociateMissingPermission](/urn?urn=ctp%3Aapi%3Atype%3AAssociateMissingPermissionError) error is returned. [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/carts/\{id}:POST). ## Update My Cart in Store When updating [B2B Carts](/api/associates-overview.md#b2b-resources), the Customer must have the `UpdateMyCarts` [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission). If the required [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission) is missing, an [AssociateMissingPermission](/urn?urn=ctp%3Aapi%3Atype%3AAssociateMissingPermissionError) error is returned. [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/carts/\{id}:POST). ## Update actions #### on Cart ##### Set Customer Email [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetCustomerEmailAction). ##### Set Business Unit [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetBusinessUnitAction). ##### Add LineItem [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartAddLineItemAction). ##### Remove LineItem [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartRemoveLineItemAction). ##### Add DiscountCode [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartAddDiscountCodeAction). ##### Remove DiscountCode [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartRemoveDiscountCodeAction). ##### Add Payment [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartAddPaymentAction). ##### Remove Payment [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartRemovePaymentAction). ##### Change TaxMode [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartChangeTaxModeAction). ##### Set Billing Address [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetBillingAddressAction). ##### Set Shipping Address [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetShippingAddressAction). ##### Add ItemShippingAddress [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartAddItemShippingAddressAction). ##### Remove ItemShippingAddress [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartRemoveItemShippingAddressAction). ##### Update ItemShippingAddress [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartUpdateItemShippingAddressAction). ##### Set ShippingMethod [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetShippingMethodAction). ##### Set Locale [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetLocaleAction). ##### Set Country [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetCountryAction). ##### Set DeleteDaysAfterLastModification [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetDeleteDaysAfterLastModificationAction). ##### Set Custom Type [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetCustomTypeAction). ##### Set CustomField [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetCustomFieldAction). ##### Recalculate [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartRecalculateAction). #### on LineItem ##### Change LineItem Quantity [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartChangeLineItemQuantityAction). ##### Change LineItems Order [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartChangeLineItemsOrderAction). ##### Set LineItem DistributionChannel [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetLineItemDistributionChannelAction). ##### Set LineItem SupplyChannel [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetLineItemSupplyChannelAction). ##### Set LineItem ShippingDetails [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetLineItemShippingDetailsAction). ##### Apply DeltaToLineItemShippingDetailsTargets [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartApplyDeltaToLineItemShippingDetailsTargetsAction). ##### Set LineItem Custom Type [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetLineItemCustomTypeAction). ##### Set LineItem CustomField [type definition](/api/projects/me-carts.md?urn=ctp:api:type:MyCartSetLineItemCustomFieldAction). ## Delete My Cart When deleting [B2B Carts](/api/associates-overview.md#b2b-resources), the Customer must have the `DeleteMyCarts` [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission). If the required [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission) is missing, an [AssociateMissingPermission](/urn?urn=ctp%3Aapi%3Atype%3AAssociateMissingPermissionError) error is returned. [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/me/carts/\{id}:DELETE). ## Delete My Cart in Store When deleting [B2B Carts](/api/associates-overview.md#b2b-resources), the Customer must have the `DeleteMyCarts` [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission). If the required [Permission](/urn?urn=ctp%3Aapi%3Atype%3APermission) is missing, an [AssociateMissingPermission](/urn?urn=ctp%3Aapi%3Atype%3AAssociateMissingPermissionError) error is returned. [endpoint definition](/api/projects/me-carts.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/me/carts/\{id}:DELETE). ## Related pages - [Area overview page with navigation](/api.md) - [Previous page: My Business Units](/api/projects/me-business-units.md) - [Next page: My Orders](/api/projects/me-orders.md)