> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# EstimateCurrentCart

# Package: purchaseFlow

# Namespace: CurrentCartService

# Method link: https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/purchase-flow/cart-v2/estimate-current-cart.md

## Introduction

Estimates the customer's current cart totals based on its current state and the selected
calculation components.

This API provides a partial, component-based estimation of the cart and is
intended for preview purposes (for example, showing partial estimated totals).

The estimation is controlled by boolean flags that indicate which components
should be included (delivery costs, additional fees, taxes, gift cards).
Components that aren't explicitly enabled are excluded from the calculation.

This isn't a full cart calculation.

Note that line item discounts are already pre-computed and applied to the current cart.

---

## REST API

### Schema

```
 Method: estimateCurrentCart
 Description: Estimates the customer's current cart totals based on its current state and the selected calculation components.  This API provides a partial, component-based estimation of the cart and is intended for preview purposes (for example, showing partial estimated totals).  The estimation is controlled by boolean flags that indicate which components should be included (delivery costs, additional fees, taxes, gift cards). Components that aren't explicitly enabled are excluded from the calculation.  This isn't a full cart calculation.  Note that line item discounts are already pre-computed and applied to the current cart.
 URL: https://www.wixapis.com/ecom/v2/carts/current/estimate
 Method: POST
 Method parameters:
   param name: calculateAdditionalFees | type: calculateAdditionalFees | description: Whether to calculate any additional fees. Default: `false`.  
   param name: calculateDelivery | type: calculateDelivery | description: Whether to calculate delivery costs. Default: `false`.  
   param name: calculateGiftCards | type: calculateGiftCards | description: Whether to calculate the effect of gift card balances on the cart total. Gift cards aren't redeemed - only reflected for estimation purposes. Default: `false`.  
   param name: calculateTax | type: calculateTax | description: Whether to include tax calculation. Default: `false`.  
   param name: refreshCart | type: refreshCart | description: Whether to retrieve the latest item prices, discounts, and inventory data from the catalogs before estimating the cart.  Default: `false`.  
   param name: validationConfig | type: ValidationsConfig    
      - enum:
           SKIP_VALIDATIONS - No business validations are performed.
           PRE_CHECKOUT_VALIDATIONS - Perform cart-level business validations as defined by the service plugin implementer.
           CHECKOUT_VALIDATIONS - Perform checkout-specific business validations as defined by the service plugin implementer.
 Return type: EstimateCurrentCartResponse
  - name: cart | type: Cart | description: The cart that was calculated.  
     - name: id | type: string | description: Cart GUID.  | read-only: true | validation: format GUID
     - name: createdDate | type: string | description: Date and time the Cart was created.  | read-only: true | validation: format date-time
     - name: updatedDate | type: string | description: Date and time the Cart was last updated.  | read-only: true | validation: format date-time
     - name: revision | type: string | description: Revision number, which increments by 1 each time the Cart is updated.  | read-only: true 
     - name: lineItems | type: array<LineItem> | description: Line items added to the Cart by the customer. This list may include in-stock items and invalid or out-of-stock items.  | read-only: true | validation: maxItems 300
        - name: id | type: string | description: Unique identifier for the line item within the cart.  | validation: format GUID
        - name: name | type: TranslatableString | description: Display name for the line item.  
           - name: original | type: string | description: __Required.__ String in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  Min: 1 character. Max: 200 characters.  | validation: minLength 1, maxLength 200
           - name: translated | type: string | description: String translated into the buyer's language.  Min: 1 character. Max: 400 characters. Default: Same as `original`.  | validation: minLength 1, maxLength 400
        - name: quantityInfo | type: ItemQuantityInfo | description: Quantity details for the line item.  
           - name: confirmedQuantity | type: integer | description: Confirmed quantity to purchase. The minimum of `requestedQuantity` and `availableQuantity`.  | validation: minimum 1, maximum 100000
           - name: requestedQuantity | type: integer | description: Quantity the customer originally requested.  | validation: minimum 1, maximum 100000
           - name: availableQuantity | type: integer | description: Maximum quantity available for purchase.  | validation: format int32
           - name: fixedQuantity | type: boolean | description: Whether the line item quantity is fixed and can't be changed.  Default: `false`  
        - name: pricing | type: ItemPricingInfo | description: Pricing details for the line item.  
           - name: unitPrice | type: ConvertedMoney | description: Final unit price after discounts. Includes tax when `taxInfo.pricesIncludeTax` is true.  
              - name: amount | type: string | description: Monetary amount in the original currency, as specified in `businessInfo.currencyCode`.  | validation: format DECIMAL_VALUE, decimalValue {"gte":"0","lte":"999999999","maxScale":3}
              - name: convertedAmount | type: string | description: Monetary amount in the converted currency, as specified in `customerInfo.currencyCode`.  Default: `amount`.  | read-only: true | validation: format DECIMAL_VALUE, decimalValue {"gte":"0","lte":"999999999","maxScale":3}
           - name: totalPrice | type: ConvertedMoney | description: Final total price for this item (unit price × quantity). Includes tax when `taxInfo.pricesIncludeTax` is true.  
           - name: priceDescription | type: PriceDescription | description: Additional price description. For example, when the price is `0` but you need more detail, such as "Starts at $67".  
              - name: original | type: string | description: __Required.__ Price description in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: minLength 1, maxLength 100
              - name: translated | type: string | description: Price description translated into the buyer's language.  Default: Same as `original`.  | validation: minLength 1, maxLength 100
           - name: priceUndetermined | type: boolean | description: Whether the price isn't yet defined and will be updated after the order is created.  
           - name: breakdown | type: ItemPriceBreakdown | description: Detailed breakdown of price components.  
              - name: fullPrice | type: ConvertedMoney | description: Full catalog price for a single item before discounts, including modifiers. Includes tax when `taxInfo.pricesIncludeTax` is true.  
              - name: salePrice | type: ConvertedMoney | description: Catalog sale price for a single item, including modifiers. Includes tax when `taxInfo.pricesIncludeTax` is true.  
              - name: totalModifiersPrice | type: ConvertedMoney | description: Total price of all modifiers for a single item. Includes tax when `taxInfo.pricesIncludeTax` is true.  
        - name: source | type: ItemSource | description: Information about the line item's origin.  
           - name: catalogReference | type: CatalogReference | description: Catalog and item reference: GUIDs for the item and catalog, plus optional details. Optional for custom line items, which don't trigger the Catalog service plugin.  
              - name: catalogItemId | type: string | description: GUID of the item within the catalog it belongs to.  | validation: minLength 1, maxLength 36
              - name: appId | type: string | description: GUID of the app providing the catalog.  You can get your app's GUID from its page in the [app dashboard](https://dev.wix.com/dc3/my-apps/).  For items from Wix catalogs, the following values always apply: + Wix Stores: `"215238eb-22a5-4c36-9e7b-e7c08025e04e"` + Wix Bookings: `"13d21c63-b5ec-5912-8397-c3a5ddb27a97"` + Wix Restaurants: `"9a5d83fd-8570-482e-81ab-cfa88942ee60"`  | validation: minLength 1
              - name: options | type: object | description: Additional item details in `key:value` pairs.  Use this optional field for more specificity with item selection. The values of the `options` field differ depending on which catalog is providing the items.  For Wix Stores products, learn more about integrating with [Catalog V3](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/e-commerce-integration.md) or [Catalog V1](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v1/catalog/e-commerce-integration.md), depending on [the version the site uses](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-versioning/introduction.md).  
           - name: catalogOverrideFields | type: CatalogOverrideFields | description: Overriding values for catalog item properties.  
              - name: name | type: TranslatableString | description: Display name for the line item.  
              - name: salePrice | type: string | description: Sale price for a single item after modifiers, before discounts.  | validation: decimalValue {"gte":"0","lte":"999999999","maxScale":3}
              - name: fullPrice | type: string | description: Full price for a single item after modifiers, before discounts.  | validation: decimalValue {"gte":"0","lte":"999999999","maxScale":3}
              - name: descriptionLines | type: array<DescriptionLine> | description: Description lines for the item. Shown when displaying the line item to buyers.  | validation: minItems 0, maxItems 20
                 - ONE-OF: 
                    - name: plainText | type: PlainTextValue | description: Description line plain text value.  
                       - name: original | type: string | description: Description line plain text value in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: maxLength 600
                       - name: translated | type: string | description: Description line plain text value translated into the buyer's language.  Default: Same as `original`.  | validation: maxLength 600
                    - name: colorInfo | type: Color | description: Description line color value.  
                       - name: original | type: string | description: Description line color name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: maxLength 500
                       - name: translated | type: string | description: Description line color name translated into the buyer's language.  Default: Same as `original`.  | validation: maxLength 500
                       - name: code | type: string | description: HEX or RGB color code for display.  
                 - name: name | type: DescriptionLineName | description: Description line name.  
                    - name: original | type: string | description: Description line name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: maxLength 100
                    - name: translated | type: string | description: Description line name translated into the buyer's language.  Default: Same as `original`.  | validation: maxLength 200
              - name: physicalProperties | type: PhysicalProperties | description: Physical properties of the item.  
                 - name: weight | type: number | description: Line item weight. Measurement unit matches the weight unit specified in `weightUnit` in the request.  | validation: format double
                 - name: sku | type: string | description: Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).  | validation: maxLength 40
                 - name: shippable | type: boolean | description: Whether this line item is shippable.  
              - name: image | type: Image | description: Item image.  
                 - name: id | type: string | description: WixMedia image GUID.  | validation: maxLength 400
                 - name: url | type: string | description: Image URL, if exists.  | validation: format WEB_URL
                 - name: height | type: integer | description: Original image height.  | read-only: true 
                 - name: width | type: integer | description: Original image width.  | read-only: true 
                 - name: altText | type: string | description: Image alt text.  | validation: maxLength 200
                 - name: filename | type: string | description: Image filename.  | read-only: true | validation: maxLength 200
              - name: paymentOption | type: PaymentOption | description: Selected payment option for the item.  
                 - name: value | type: PaymentOptionType | description: Selected payment option type for this item.  Default: `FULL_PAYMENT_ONLINE`  
                         - enum:
                         -     FULL_PAYMENT_ONLINE: The entire payment for this item happens as part of the checkout.
                         -     FULL_PAYMENT_OFFLINE: The entire payment for this item happens after checkout. For example, when using cash, check, or other offline payment methods.
                         -     MEMBERSHIP: Payment for this item is done by charging a membership. Any remaining amount not covered by the membership, such as item modifiers, is paid online.
                         -     DEPOSIT_ONLINE: Partial payment to be paid upfront during checkout. The initial amount to be paid for each line item is specified in `depositAmount`.
                         -     MEMBERSHIP_OFFLINE: Payment for this item can only be done by charging a membership and must be manually redeemed in the dashboard by the site admin. When selected, `price` is `0`.
                         -     MEMBERSHIP_ONLINE_WITH_OFFLINE_REMAINDER: Item price is charged to online membership. Any remaining amount not covered by the membership, such as item modifiers, is paid offline.
              - name: depositAmount | type: string | description: Partial payment due upfront during checkout. Only when `paymentOption.value` is `DEPOSIT_ONLINE`.  | validation: format DECIMAL_VALUE, decimalValue {"gt":"0","lte":"999999999","maxScale":3}
              - name: savePaymentMethod | type: boolean | description: Whether to save the payment method on the order.  Default: `false`  
              - name: inventoryAppId | type: string | description: GUID of the app managing inventory.  | validation: format GUID
           - name: rootCatalogItemId | type: string | description: When `catalogReference.catalogItemId` isn't the actual catalog item GUID, this field returns the true catalog item GUID. For example, for Wix Bookings, `catalogReference.catalogItemId` is the booking GUID, so this value is the service GUID. In most cases, this matches `catalogReference.catalogItemId`. Used in membership validation.  | validation: minLength 1, maxLength 36
           - name: inventoryAppId | type: string | description: GUID of the app managing the inventory.  | validation: format GUID
        - name: attributes | type: ItemAttributes | description: Display details for the item.  
           - name: descriptionLines | type: array<DescriptionLine> | description: Description lines for the item.  | validation: maxItems 100
           - name: image | type: Image | description: Item image.  
           - name: url | type: PageUrlV2 | description: URL of the item's page on the site.  
              - name: relativePath | type: string | description: The relative path for the page within the site. For example, `/product-page/a-product`.  
              - name: url | type: string | description: The page's full URL. For example, `https://mysite.com/product-page/a-product`.  | validation: format WEB_URL
           - name: policies | type: array<Policy> | description: Policies shown to the buyer on the checkout page.  | validation: maxItems 5
              - name: title | type: string | description: Policy title - should be translated  | validation: minLength 1, maxLength 29
              - name: content | type: string | description: Policy content - should be translated  | validation: minLength 1, maxLength 3000
           - name: itemType | type: ItemType | description: Item type: preset or custom.  
              - ONE-OF: 
                 - name: preset | type: ItemTypePreset | description: Preset item type.  
                         - enum: UNRECOGNISED, PHYSICAL, DIGITAL, GIFT_CARD, SERVICE
                 - name: custom | type: string | description: Custom item type. When none of the preset types are suitable, specifies the custom type.  
           - name: physicalProperties | type: PhysicalProperties | description: Physical properties of the item. When relevant, includes SKU, weight, and shippability.  
           - name: subscriptionInfo | type: SubscriptionOptionInfo | description: Subscription option details.  
              - name: subscriptionSettings | type: SubscriptionSettings | description: Subscription option settings.  
                 - name: frequency | type: SubscriptionFrequency | description: Frequency of recurring payment.  
                         - enum: UNDEFINED, DAY, WEEK, MONTH, YEAR
                 - name: interval | type: integer | description: Interval of recurring payment.  Default: `1`. If SubscriptionFrequency is Day the minimum interval is 7  | validation: minimum 1, maximum 3650, format int32
                 - name: autoRenewal | type: boolean | description: Whether subscription is renewed automatically at the end of each period.  
                 - name: billingCycles | type: integer | description: Number of billing cycles before subscription ends. Ignored if `autoRenewal` is `true`.  | validation: minimum 1, format int32
                 - name: enableCustomerCancellation | type: boolean | description: Whether to allow the customer to cancel the subscription..  
                 - name: freeTrialPeriod | type: FreeTrialPeriod | description: Period until first cycle starts. If applied payNow will be 0 If None => no free trial  
                    - name: frequency | type: SubscriptionFrequency | description: Frequency of period. Values: DAY, WEEK, MONTH, YEAR  
                    - name: interval | type: integer | description: Number of frequency units in the free trial period. For example, frequency `MONTH` with interval `3` means a 3-month free trial.  | validation: minimum 1, maximum 999
              - name: title | type: Title | description: Subscription option title.  
                 - name: original | type: string | description: Subscription option name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: minLength 1, maxLength 150
                 - name: translated | type: string | description: Subscription option name translated into the buyer's language.  Default: Same as `original`.  | validation: minLength 1, maxLength 150
              - name: description | type: Description | description: Subscription option description.  
                 - name: original | type: string | description: Subscription option description.  | validation: maxLength 500
                 - name: translated | type: string | description: Translated subscription option description.  | validation: maxLength 500
           - name: serviceProperties | type: ServiceProperties | description: Service properties. When relevant, includes date and number of participants.  
              - name: scheduledDate | type: string | description: Date and time the service is to be provided, in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. For example, the start time of a class.  | validation: format date-time
              - name: numberOfParticipants | type: integer | description: The number of people participating in the service. For example, the number of people attending a class or the number of people per hotel room.  | validation: minimum 1, maximum 10000, format int32
           - name: membersOnly | type: boolean | description: Whether the item can only be purchased by site members.  Default: `false`  
        - name: deliveryConfig | type: ItemDeliveryConfig | description: Delivery configuration for the line item.  
           - name: deliveryProfileId | type: string | description: Delivery profile GUID.  | validation: format GUID
           - name: fulfillerId | type: string | description: Optional custom fulfiller GUID.  | validation: format GUID
        - name: taxConfig | type: ItemTaxConfig | description: Tax configuration for the line item.  
           - name: taxableAddress | type: TaxableAddress | description: Address used for tax calculation.  
              - ONE-OF: 
                 - name: addressType | type: TaxableAddressType | description: taxable address type. if this field is selected, the address is automatically resolved, and the tax is calculated accordingly.  
                         - enum: BUSINESS, BILLING, SHIPPING
           - name: taxGroupId | type: string | description: Tax group GUID for this line item.  | validation: maxLength 50
        - name: paymentConfig | type: ItemPaymentConfig | description: Payment configuration for the line item.  
           - name: savePaymentMethod | type: boolean | description: Whether to save the payment method on the order.  Default: `false`  
           - name: consentRequiredPaymentPolicy | type: string | description: Item payment policy that requires buyer consent to complete the purchase. Displayed on the checkout page.  | validation: minLength 1, maxLength 2500
           - name: depositAmount | type: ConvertedMoney | description: Partial payment due upfront during checkout. Only when `paymentOption` is `DEPOSIT_ONLINE`.  
           - name: paymentOption | type: PaymentOptionType | description: Selected payment option type for this item.  Default: `FULL_PAYMENT_ONLINE`  
        - name: status | type: ItemStatus | description: Inventory availability status for the line item.  
             - enum:
             -     IN_STOCK: Item is available in the requested quantity.
             -     PARTIALLY_IN_STOCK: Only part of the requested quantity is available.
             -     OUT_OF_STOCK: Item is out of stock.
             -     REMOVED_FROM_CATALOG: Item no longer exists in the catalog.
        - name: extendedFields | type: ExtendedFields | description: Custom extended fields for the line item object.  [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md) must be configured using the Checkout & Orders - Line Items Schema Plugin in the app dashboard before they can be accessed with API calls.  
           - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map
        - name: modifierGroups | type: array<ModifierGroup> | description: Modifier groups added to the item.  | validation: maxItems 25
           - name: id | type: string | description: Modifier group GUID.  | read-only: true | validation: minLength 1, maxLength 36
           - name: name | type: TranslatableString | description: Modifier group name.  
           - name: modifiers | type: array<ItemModifier> | description: Modifiers in this group.  | validation: minItems 1, maxItems 25
              - name: id | type: string | description: Modifier GUID.  | read-only: true | validation: minLength 1, maxLength 36
              - name: quantity | type: integer | description: Modifier quantity.  | validation: minimum 1, maximum 100000, format int32
              - name: label | type: TranslatableString | description: Primary label for the modifier.  
              - name: details | type: TranslatableString | description: Extra modifier copy.  
              - name: price | type: ConvertedMoney | description: Modifier price.  
        - name: discounts | type: array<ItemDiscount> | description: Discounts applied to this line item.  | validation: maxItems 100
           - name: name | type: TranslatableString | description: Discount display name.  
           - name: amountOff | type: ConvertedMoney | description: Total amount taken off the item's sale price for the full line item quantity.  
           - name: source | type: DiscountSource | description: Discount source (for example, coupon or automatic discount) and related identifiers.  
              - name: sourceType | type: DiscountSourceType | description: Discount source type.  
                     - enum:
                     -     AUTOMATIC_RULE: Discount applied automatically by a rule.
                     -     COUPON: Discount applied by a coupon code.
              - name: couponCode | type: string | description: Coupon code that triggered the discount. Only relevant for coupon discounts.  | validation: maxLength 50
        - name: customLineItem | type: boolean | description: Whether the line item is a custom line item. Custom line items don't trigger the Catalog service plugin.  
     - name: subtotal | type: ConvertedMoney | description: The sum of all line item final prices.  | read-only: true 
     - name: note | type: string | description: Optional message left by the customer. Usually intended for the merchant and contains special instructions, requests, or clarifications related to the order.  | validation: maxLength 1000
     - name: coupons | type: array<Coupon> | description: List of coupons added to the Cart. Currently only one coupon code is supported.  | read-only: true | validation: maxItems 1
        - name: id | type: string | description: Coupon GUID in the cart.  | validation: format GUID
        - name: code | type: string | description: Coupon code entered at checkout.  | validation: minLength 1, maxLength 50
     - name: source | type: CartSource | description: Information about the source of the Cart, detailing the origin or context in which the Cart was created.  
        - name: channelType | type: ChannelType | description: Sales channel that created the cart.  
             - enum:
             -     UNSPECIFIED: Unspecified sales channel. This value is not supported.
             -     WEB: A web client.
             -     POS: [Point of sale solutions](https://support.wix.com/en/wix-mobile-pos-2196395).
             -     EBAY: [eBay shop](https://support.wix.com/en/article/wix-stores-connecting-and-setting-up-an-ebay-shop).
             -     AMAZON: [Amazon shop](https://support.wix.com/en/article/wix-stores-connecting-and-setting-up-an-amazon-shop).
             -     OTHER_PLATFORM: Other sales platform.
             -     WIX_APP_STORE: [Wix Owner app](https://support.wix.com/article/wix-owner-app-an-overview).
             -     WIX_INVOICES: Wix Invoices app in [your dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Finvoices/settings/general-settings)
             -     BACKOFFICE_MERCHANT: Wix merchant backoffice.
             -     WISH: Wish sales channel.
             -     CLASS_PASS: [ClassPass sales channel](https://support.wix.com/en/article/wix-bookings-letting-clients-book-your-services-with-classpass).
             -     GLOBAL_E: Global-E sales channel.
             -     FACEBOOK: [Facebook shop](https://support.wix.com/en/article/wix-stores-changes-to-facebook-shops).
             -     ETSY: [Etsy sales channel](https://support.wix.com/en/article/wix-stores-request-adding-etsy-as-a-sales-channel).
             -     TIKTOK: [TikTok sales channel](https://support.wix.com/en/article/wix-stores-request-adding-tiktok-as-a-sales-channel).
             -     FAIRE_COM: [Faire marketplace integration](https://support.wix.com/en/article/wix-stores-creating-a-faire-store-using-the-faire-integration-app).
             -     PAYPAL_AGENTIC_CHECKOUT: PayPal Agentic Checkout sales channel.
             -     STRIPE_AGENTIC_CHECKOUT: Stripe Agentic Checkout sales channel.
        - name: externalReferences | type: array<ExternalReference> | description: External app and resource references for this cart, used for integration and tracking across platforms.  | read-only: true | validation: maxItems 10, immutable
           - name: appId | type: string | description: GUID of the app associated with the purchase flow. For example, the Wix Pay Links app GUID.  | validation: format GUID, immutable
           - name: resourceId | type: string | description: Reference to an external resource GUID. Used to link the purchase flow to a specific entity in an external system. For example, a Wix Pay Link GUID.  | validation: minLength 1, maxLength 100, immutable
        - name: createdBy | type: CreatedBy | description: Entity that created the cart.  | read-only: true 
           - ONE-OF: 
              - name: visitorId | type: string | description: Site visitor GUID when the visitor isn't a site member.  | read-only: true | validation: format GUID
              - name: memberId | type: string | description: Site member GUID.  | read-only: true | validation: format GUID
              - name: userId | type: string | description: Wix user GUID when the cart was created by a Wix user on behalf of a buyer (for example, POS).  | validation: format GUID
              - name: appId | type: string | description: App GUID when the cart was created by an external app or Wix service.  | validation: format GUID
        - name: customContentReference | type: CustomContentReference | description: App and component GUIDs for the custom checkout page content provider.  
           - name: appId | type: string | description: App GUID for the checkout content provider. Find it in the [app dashboard](https://dev.wix.com/dc3/my-apps/).  | validation: format GUID
           - name: componentId | type: string | description: Component GUID within that app. Find it in the [app dashboard](https://dev.wix.com/dc3/my-apps/).  | validation: format GUID
     - name: businessInfo | type: BusinessInfo | description: Information about the site from which the Cart's line items were added.  
        - name: locationId | type: string | description: Business location GUID for the cart. See the [Locations API](https://dev.wix.com/docs/rest/business-management/locations/introduction.md).  | validation: format GUID
        - name: languageCode | type: string | description: 2-letter language code in ISO 639-1 alpha-2 format. The business's default language.  | read-only: true | validation: format LANGUAGE
        - name: currencyCode | type: string | description: Three-letter currency code in ISO-4217 alphabetic format. The site's base currency; it doesn't change when the [customer selects a different display currency](https://support.wix.com/en/article/multicurrency-an-overview).  | read-only: true | validation: format CURRENCY
     - name: customerInfo | type: CustomerInfo | description: Information about the customer that owns the Cart.  
        - ONE-OF: 
           - name: visitorId | type: string | description: Site visitor GUID when the visitor isn't a site member.  | read-only: true | validation: format GUID
           - name: memberId | type: string | description: Site member GUID.  | read-only: true | validation: format GUID
           - name: userId | type: string | description: Wix user GUID when the cart was created by a Wix user on behalf of a customer (for example, POS).  | read-only: true | validation: format GUID
           - name: openAccess | type: boolean | description: Whether the cart has no owner yet and anyone can access it; the first visitor to access it becomes the owner.  | read-only: true 
        - name: firstName | type: string | description: Customer's first name.  | validation: maxLength 100
        - name: lastName | type: string | description: Customer's last name.  | validation: maxLength 100
        - name: phone | type: string | description: Customer's phone number.  | validation: format PHONE
        - name: company | type: string | description: Company name.  | validation: maxLength 1000
        - name: vatId | type: VatId | description: Business VAT registration number.  
           - name: id | type: string | description: Customer's tax GUID.  
           - name: type | type: VatType | description: Tax type.  Supported values: + `CPF`: for individual tax payers + `CNPJ`: for corporations  
                 - enum:
                 -     UNSPECIFIED: 
                 -     CPF: CPF - for individual tax payers.
                 -     CNPJ: CNPJ - for corporations
        - name: email | type: string | description: Customer's email address.  | validation: format EMAIL
        - name: contactId | type: string | description: Customer's contact GUID. Created automatically if one doesn't exist yet. See the [Contacts API](https://dev.wix.com/api/rest/contacts/contacts/introduction).  | read-only: true | validation: format GUID
        - name: languageCode | type: string | description: 2-letter language code in ISO 639-1 alpha-2 format. Resolved automatically from request metadata (`x-wix-linguist` header).  | read-only: true | validation: format LANGUAGE
        - name: currencyCode | type: string | description: Three-letter currency code in ISO-4217 alphabetic format. [Currency the customer selects](https://support.wix.com/en/article/multicurrency-an-overview) during checkout; it's their preferred display currency and may differ from the site's default.  | read-only: true | validation: format CURRENCY
     - name: deliveryInfo | type: DeliveryInfo | description: Delivery-related information associated with the Cart.  
        - name: address | type: Address | description: Delivery address.  
           - name: country | type: string | description: Two-letter country code in [ISO-3166 alpha-2](https://www.iso.org/obp/ui/#search/code/) format.  | validation: format COUNTRY
           - name: subdivision | type: string | description: Code for a subdivision (such as state, prefecture, or province) in [ISO 3166-2](https://www.iso.org/standard/72483.html) format.  | validation: maxLength 50
           - name: city | type: string | description: City name.  | validation: maxLength 50
           - name: postalCode | type: string | description: Postal or zip code.  | validation: maxLength 50
           - name: streetAddress | type: StreetAddress | description: Street address.  
              - name: number | type: string | description: Street number.  
              - name: name | type: string | description: Street name.  
           - name: addressLine | type: string | description: Main address line (usually street name and number).  | validation: maxLength 150
           - name: addressLine2 | type: string | description: Free text providing more detailed address info. Usually contains apt, suite, floor.  | validation: maxLength 100
           - name: geocode | type: AddressLocation | description: Geocode object containing latitude and longitude coordinates.  
              - name: latitude | type: number | description: Address latitude.  | validation: format double
              - name: longitude | type: number | description: Address longitude.  | validation: format double
           - name: countryFullname | type: string | description: Country's full name.  | read-only: true 
           - name: subdivisionFullname | type: string | description: Subdivision full-name.  | read-only: true 
        - name: method | type: DeliveryMethod | description: Delivery method selected by the customer.  | read-only: true 
           - name: code | type: string | description: Shipping rate code. Example: `"usps_std_overnight"`.  | validation: maxLength 100
           - name: appId | type: string | description: Carrier app GUID.  | validation: format GUID
           - name: title | type: TranslatableString | description: Delivery rate title. Examples: `"USPS Standard Overnight Delivery"`, `"Standard"`, `"First-Class Package International"`.  
           - name: pickup | type: boolean | description: Whether this method is pickup.  
        - name: weightUnit | type: WeightUnit | description: Weight unit used when shipping items (for example, kg or lb).  | read-only: true 
             - enum:
             -     UNSPECIFIED_WEIGHT_UNIT: Weight unit can't be classified due to an error.
             -     KG: Kilograms.
             -     LB: Pounds.
     - name: taxInfo | type: TaxInfo | description: Tax-related information associated with the Cart.  
        - name: pricesIncludeTax | type: boolean | description: Whether tax is already included in prices (line items, delivery, additional fees).  | read-only: true 
        - name: taxExemptGroupId | type: string | description: Tax-exempt group GUID applied for tax exemptions.  | validation: format GUID
     - name: paymentInfo | type: PaymentInfo | description: Payment-related information associated with the Cart.  
        - name: giftCards | type: array<GiftCard> | description: Gift cards applied to the payment. Only one gift card is supported.  | read-only: true | validation: maxItems 1
           - name: id | type: string | description: Unique identifier of the gift card within the cart.  | validation: format GUID
           - name: obfuscatedCode | type: string | description: Partially masked gift card code.  | validation: maxLength 50
           - name: appId | type: string | description: App GUID of the gift card provider.  | validation: format GUID
           - name: externalId | type: string | description: External GUID in the gift card provider's system, used for integration and tracking across platforms.  | validation: minLength 1, maxLength 50
           - name: requestedRedeemAmount | type: ConvertedMoney | description: Amount to redeem from this gift card.  
        - name: currencyCode | type: string | description: Three-letter currency code in ISO-4217 alphabetic format. Currency used to process payment. Matches `customerInfo.currencyCode` when that currency is supported for payment, otherwise falls back to `businessInfo.currencyCode`.  | read-only: true | validation: format CURRENCY
        - name: billingAddress | type: Address | description: Billing address.  
        - name: billingContact | type: FullAddressContactDetails | description: Billing contact details.  
           - name: firstName | type: string | description: First name.  | validation: maxLength 100
           - name: lastName | type: string | description: Last name.  | validation: maxLength 100
           - name: phone | type: string | description: Phone number.  | validation: format PHONE
           - name: company | type: string | description: Company name.  | validation: maxLength 1000
           - name: vatId | type: VatId | description: Tax information (for Brazil only). If GUID is provided, `vatId.type` must also be set, `UNSPECIFIED` is not allowed.  
     - name: orderPlaced | type: boolean | description: Whether the Cart has been placed as an Order. Defaults to `false`.  | read-only: true 
     - name: orderId | type: string | description: Order GUID. Empty until the checkout process is completed.  | read-only: true | validation: format GUID
     - name: purchaseFlowId | type: string | description: Persistent GUID that correlates the Cart with the created Order after checkout is completed.  | read-only: true | validation: format GUID
     - name: settings | type: CartSettings | description: Additional cart settings.  Settings can only be configured at cart creation time and can't be changed afterwards.  | read-only: true | validation: immutable
        - name: lockGiftCard | type: boolean | description: Whether adding or removing a gift card on checkout is restricted.  
        - name: lockCouponCode | type: boolean | description: Whether adding or removing a coupon code on checkout is restricted.  
        - name: policyAgreementCheckboxDisabled | type: boolean | description: Whether the policy agreement checkbox on checkout is disabled.  
        - name: manualPaymentDisabled | type: boolean | description: Whether the manual payment option is disabled for this checkout.  
     - name: customCheckoutUrl | type: string | description: Custom checkout URL to redirect the customer to a checkout page. By default, customers are redirected to the standard Wix checkout page. Clients can override this behavior by providing their own URL here. If the URL contains the placeholder `{checkout_id}`, it will be replaced with the actual Cart GUID.  | validation: maxLength 2048
     - name: extendedFields | type: ExtendedFields | description: Custom fields. [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md) must be configured in the app dashboard before they can be accessed with API calls.  
     - name: currentCart | type: boolean | description: Whether this is the customer's current cart. The current cart can be accessed using the identity context (for example, `visitorId` from session cookies) without an explicit cart GUID.  | read-only: true 
     - name: demo | type: boolean | description: Whether this is a demo cart. Demo carts are created in the Wix editor for merchant preview and can't proceed to checkout.  Default: `false`  
  - name: summary | type: CartSummary | description: The calculation summary.  
     - name: cartId | type: string | description: Cart GUID.  | validation: format GUID
     - name: cartRevision | type: string | description: Cart revision.  
     - name: calculationId | type: string | description: Unique identifier for this cart calculation.  | validation: format GUID
     - name: lineItems | type: array<LineItemSummary> | description: Summarized details for each line item in the cart.  | validation: maxItems 300
        - name: lineItemId | type: string | description: Line item GUID.  | validation: format GUID
        - name: quantity | type: integer | description: Line item quantity.  | validation: minimum 1, maximum 100000
        - name: unitPrice | type: ConvertedMoney | description: Final unit price after discounts. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: totalPrice | type: ConvertedMoney | description: Line total (unit price × quantity). Includes tax when `taxSummary.pricesIncludeTax` is true.  
     - name: discounts | type: array<Discount> | description: Discounts applied to the cart.  | validation: maxItems 100
        - name: name | type: TranslatableString | description: Display name of the discount.  
        - name: source | type: DiscountSource | description: Source of the discount; how it was applied.  
        - name: scope | type: DiscountScope | description: Part of the cart the discount applies to.  
             - enum:
             -     UNKNOWN_DISCOUNT_SCOPE: Unknown discount scope.
             -     CART_SUBTOTAL: Discount applies to the cart subtotal.
             -     LINE_ITEM: Discount applies to a specific line item.
             -     DELIVERY: Discount applies to the delivery price.
        - name: subscriptionCycles | type: integer | description: Number of subscription billing cycles this discount applies to. If unset, it applies to all cycles.  | validation: minimum 1, maximum 1000, format int32
        - name: total | type: ConvertedMoney | description: Total amount discounted across all of this discount's benefits.  
        - name: lineItemDiscounts | type: array<LineItemDiscount> | description: Per-line-item discount amounts for item-level discounts.  | validation: maxItems 100
           - name: lineItemId | type: string | description: Line item GUID the discount applies to.  | validation: format GUID
           - name: amountOff | type: ConvertedMoney | description: Total amount discounted on this line item.  
     - name: deliverySummary | type: DeliverySummary | description: Summary of delivery costs.  
        - name: method | type: DeliveryMethod | description: Calculated delivery method.  
        - name: price | type: ConvertedMoney | description: Delivery price before discounts. Includes tax when `taxSummary.pricesIncludeTax` is true.  
     - name: additionalFees | type: array<AdditionalFee> | description: Additional fees applied to the cart.  | validation: maxItems 100
        - name: code | type: string | description: Additional fee code.  | validation: minLength 1, maxLength 100
        - name: name | type: TranslatableString | description: Additional fee display name.  
        - name: providerAppId | type: string | description: App GUID of the fee provider.  | validation: minLength 1, maxLength 100
        - name: lineItemIds | type: array<string> | description: Line items this fee applies to. When empty, the fee applies to the whole cart.  | validation: maxItems 100, format GUID
        - name: price | type: ConvertedMoney | description: Additional fee amount. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: subscriptionCycles | type: integer | description: Number of subscription cycles this fee applies to. When unset and a discount is tied to a subscription line item, it applies to all cycles.  | validation: minimum 1, maximum 999, format int32
        - name: source | type: Source | description: Where the additional fee came from.  
             - enum:
             -     UNKNOWN_ADDITIONAL_FEE_SOURCE: Unknown fee source.
             -     SERVICE_PLUGIN: Added by an additional fee service plugin.
             -     LINE_ITEM: Added on the item from the catalog or as a custom line item.
             -     DELIVERY: Added by the delivery provider.
             -     PLATFORM: Added by a Wix vertical as a platform fee.
     - name: taxSummary | type: TaxSummary | description: Tax calculation summary for the cart.  
        - name: taxes | type: array<Tax> | description: Taxes applied to the cart. Multiple entries can appear when advanced tax rates are set, or one entry for the total. See [advanced tax rates](https://support.wix.com/en/article/setting-up-tax-calculation-using-the-manual-method#step-3-optional-customize-advanced-mode-settings).  | validation: maxItems 100
           - name: name | type: TranslatableString | description: Tax name.  
           - name: taxableAmount | type: ConvertedMoney | description: Amount tax is calculated on.  
           - name: exemptAmount | type: ConvertedMoney | description: Amount exempt from tax.  
           - name: amount | type: ConvertedMoney | description: Calculated tax from `taxableAmount`.  
        - name: totalExempt | type: ConvertedMoney | description: Amount exempt from tax.  
        - name: pricesIncludeTax | type: boolean | description: Whether tax is included in prices for line items, discounts, delivery, and additional fees.  | read-only: true 
        - name: lineItemTaxes | type: array<LineItemTax> | description: Per line item tax amounts.  | validation: maxItems 300
           - name: lineItemId | type: string | description: Line item GUID.  | validation: format GUID
           - name: tax | type: ConvertedMoney | description: Tax amount for the line item.  
           - name: rate | type: string | description: Tax rate as a decimal between 0 and 1.  | validation: decimalValue {"gte":"0","lte":"1","maxScale":6}
        - name: deliveryTax | type: ConvertedMoney | description: Tax on the delivery method.  
        - name: additionalFeeTaxes | type: array<AdditionalFeeTax> | description: Tax on additional fees.  | validation: maxItems 100
           - name: additionalFeeCode | type: string | description: Additional fee code.  | validation: minLength 1, maxLength 100
           - name: tax | type: ConvertedMoney | description: Tax amount for the additional fee.  
     - name: priceSummary | type: PriceSummary | description: Summary of calculated price components for the cart.  
        - name: subtotal | type: ConvertedMoney | description: Total for all line items after item-level discounts. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: discount | type: ConvertedMoney | description: Cart subtotal discount amount, deducted from the subtotal. Item-level discounts are already reflected in the subtotal. Returns 0 when no cart subtotal discount is applied. For details of all applied discounts (including delivery discounts), see `cartSummary.discounts`. Currently, only a single coupon is supported.  
        - name: delivery | type: ConvertedMoney | description: Delivery price after discounts. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: additionalFees | type: ConvertedMoney | description: Total of additional fees. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: tax | type: ConvertedMoney | description: Tax charged on top of the prices, summed across items, discounts, delivery, and fees. When `taxSummary.pricesIncludeTax` is true, tax is already embedded in the prices, so this field is `0`. For the full tax breakdown in either case, see `taxSummary.taxes`.  
        - name: total | type: ConvertedMoney | description: Amount to pay.  
     - name: paymentSummary | type: PaymentSummary | description: How the customer pays for the order.  
        - name: giftCards | type: array<GiftCardSummary> | description: Per-gift card deduction amounts. Only one gift card is supported today.  | validation: maxItems 1
           - name: giftCardId | type: string | description: Gift card GUID assigned by the cart.  | validation: format GUID
           - name: redeemAmount | type: ConvertedMoney | description: Amount to redeem from the gift card balance.  
        - name: memberships | type: array<MembershipSummary> | description: Memberships charged with the order.  | validation: maxItems 300
           - name: id | type: string | description: Membership GUID.  | validation: minLength 1, maxLength 200
           - name: appId | type: string | description: App GUID for this payment option.  | validation: format GUID
           - name: lineItemIds | type: array<string> | description: Line item GUIDs this membership applies to.  | validation: minItems 1, maxItems 300, minLength 1, maxLength 100
        - name: subscriptionCharges | type: array<SubscriptionCharges> | description: Subscription charge details for checkout.  | validation: maxItems 100
           - name: lineItemIds | type: array<string> | description: Line items covered by the subscription.  | validation: minItems 1, maxItems 300, format GUID
           - name: description | type: string | description: Human-readable schedule and amounts for upcoming charges. Localized to the buyer's language for subscription orders, or the site language if none is set.  | validation: maxLength 1000
           - name: charges | type: array<Charge> | description: Scheduled charges.  | validation: maxItems 50
              - name: cycleFrom | type: integer | description: First billing cycle for this charge.  
              - name: cycleCount | type: integer | description: Number of cycles this charge covers, when set.  | validation: format int32
              - name: cycleBillingDate | type: string | description: Billing period start.  | validation: format date-time
        - name: requiresPaymentAfterGiftCard | type: boolean | description: Whether additional payment is required to create the order after gift cards.  
        - name: totalAfterGiftCards | type: ConvertedMoney | description: Total due after gift cards.  
        - name: payNow | type: ConvertedMoney | description: Amount charged when the order is placed, after gift cards.  
        - name: payLater | type: ConvertedMoney | description: Amount collected later.  
        - name: payAfterFreeTrial | type: ConvertedMoney | description: Amount charged after a free trial, often for subscriptions.  
     - name: priceVerificationToken | type: string | description: Opaque token for the cart's calculated prices.  Pass this token when placing an order so the prices the customer saw match checkout.  If provided, the server validates it by recalculating the cart and comparing the pricing token. If validation fails, checkout is rejected.  This limits unexpected price changes or tampering between cart calculation and order placement.  Don't parse or modify the token on the client.  | validation: maxLength 1024
     - name: violations | type: array<Violation> | description: All business violations for the cart.  | validation: maxItems 100
        - ONE-OF: 
           - name: customValidationData | type: CustomValidationErrorData | description: Payload for Validations service plugin violations.  
              - name: target | type: Target | description: Where to show the violation on the cart or checkout page.  
                 - ONE-OF: 
                    - name: other | type: Other | description: General (other) violation.  
                       - name: name | type: NameInOther | description: Location on a checkout or a cart page where a general (other) violation will be displayed.  
                                 - enum:
                                 -     OTHER_DEFAULT: Default location, in case no specific location is specified.
                    - name: lineItem | type: LineItem | description: Specific line item violation.  
                       - name: name | type: NameInLineItem | description: Location on a checkout or a cart page where the specific line item violation will be displayed.  
                                 - enum:
                                 -     LINE_ITEM_DEFAULT: Default location, in case no specific location is specified.
                       - name: id | type: string | description: GUID of the line item containing the violation.  
           - name: invalidCouponStatusData | type: InvalidCouponStatusErrorData | description: Payload when a coupon's status is invalid.  
              - ONE-OF: 
                 - name: minLineItemQuantityNotReachedDetails | type: MinLineItemQuantityNotReachedDetails | description:   
                    - name: requiredMinimumQuantity | type: integer | description: Minimum line item quantity required.  
                 - name: minSubtotalNotReachedDetails | type: MinSubtotalNotReachedDetails | description:   
                    - name: requiredMinimumSubtotal | type: ConvertedMoney | description: Minimum subtotal required.  
                    - name: originalDescription | type: string | description: Original wording for the minimum subtotal rule.  | validation: maxLength 100
              - name: couponCode | type: string | description: Coupon code with an invalid status.  | validation: maxLength 100
              - name: reason | type: InvalidCouponReason | description: Why the coupon status is invalid.  
                     - enum:
                     -     UNKNOWN_INVALID_COUPON_REASON: Unspecified status.
                     -     EXPIRED: Coupon has expired.
                     -     DISABLED: Coupon is disabled.
                     -     INACTIVE: Coupon isn't active yet.
                     -     MAX_USAGE_EXCEEDED: Coupon hit its usage limit.
                     -     MAX_USAGE_PER_CUSTOMER_EXCEEDED: Coupon hit its per-customer usage limit.
                     -     NOT_APPLICABLE_TO_SUBSCRIPTIONS: Coupon doesn't apply to subscriptions.
                     -     NOT_APPLICABLE_TO_SELECTED_LINE_ITEMS: Coupon doesn't apply to the cart's selected line items.
                     -     MIN_LINE_ITEM_QUANTITY_NOT_REACHED: Coupon needs a higher line item quantity than the cart has.
                     -     MIN_SUBTOTAL_NOT_REACHED: Coupon needs a higher subtotal than the cart has.
           - name: invalidCouponCodeData | type: InvalidCouponCodeErrorData | description: Payload when a coupon code is invalid.  
              - name: couponCode | type: string | description: Invalid coupon code.  | validation: maxLength 100
           - name: invalidGiftCardCodeData | type: InvalidGiftCardCodeErrorData | description: Payload when a gift card code is invalid.  
              - name: giftCardCode | type: string | description: Invalid gift card code.  | validation: maxLength 100
              - name: giftCardId | type: string | description: Gift card GUID. Available when the gift card was found but failed validation.  | validation: format GUID
           - name: invalidGiftCardStatusData | type: InvalidGiftCardStatusErrorData | description: Payload when a gift card's status is invalid.  
              - name: giftCardCode | type: string | description: Gift card code with an invalid status.  | validation: maxLength 100
              - name: reason | type: InvalidGiftCardReason | description: Why the gift card status is invalid.  
                     - enum:
                     -     UNKNOWN_INVALID_GIFT_CARD_REASON: Unspecified status.
                     -     EXPIRED: Gift card has expired.
                     -     DISABLED: Gift card is disabled.
                     -     EMPTY_BALANCE: Gift card has no balance left.
              - name: giftCardId | type: string | description: Gift card GUID. Available when the gift card was found but failed validation.  | validation: format GUID
           - name: lineItemsOutOfStockData | type: LineItemsOutOfStockErrorData | description: Payload when line items are out of stock.  
              - name: lineItemIds | type: array<string> | description: Out-of-stock line item GUIDs.  | validation: maxItems 300, format GUID
              - name: allLineItemsOutOfStock | type: boolean | description: Whether every line item in the cart is out of stock.  
           - name: membersOnlyItemData | type: MembersOnlyItemErrorData | description: Payload for members-only items.  
              - name: lineItemIds | type: array<string> | description: Members-only line item GUIDs.  | validation: maxItems 300, format GUID
           - name: subtotalBelowOrderMinimumData | type: SubtotalBelowOrderMinimumErrorData | description: Payload when the cart's subtotal is below the minimum order subtotal.  
              - name: minimumOrderSubtotal | type: ConvertedMoney | description: Minimum subtotal required to place an order.  
              - name: remainingAmount | type: ConvertedMoney | description: Amount that needs to be added to the current order to reach the minimum subtotal amount.  
           - name: invalidMembershipStatusData | type: InvalidMembershipStatusErrorData | description: Payload when a selected membership has an invalid status.  
              - name: membershipId | type: string | description: Membership GUID with an invalid status. Absent when the offending membership can't be identified.  | validation: maxLength 200
              - name: reason | type: InvalidMembershipReason | description: Why the membership status is invalid.  
                     - enum:
                     -     UNKNOWN_INVALID_MEMBERSHIP_REASON: Unspecified status.
                     -     INSUFFICIENT_FUNDS: The membership doesn't have sufficient funds to pay for the cart.
        - name: scope | type: ViolationScope | description: Violation scope.  
             - enum:
             -     GLOBAL: Violation applies to the cart as a whole.
             -     LINE_ITEM: Violation is tied to a specific line item.
             -     DISCOUNT: Violation is tied to a discount.
             -     DELIVERY: Violation is tied to the delivery method or address.
             -     TAX: Violation is tied to tax calculation.
             -     MEMBERSHIP: Violation is tied to a membership payment.
             -     GIFT_CARD: Violation is tied to a gift card.
        - name: code | type: ViolationCode | description: Violation type code.  
             - enum:
             -     GENERAL_CODE: A general violation not covered by more specific codes.
             -     CUSTOM_VALIDATION: Custom violation (e.g., violations from Validation Service Plugin).
             -     EMPTY_CART: The cart doesn't contain any line items.
             -     LINE_ITEMS_OUT_OF_STOCK: One or more line items are out of stock.
             -     MEMBERS_ONLY_ITEM: One or more line items can be purchased only by members and the customer isn't a member.
             -     INVALID_COUPON_CODE: No coupon exists with the provided code.
             -     INVALID_COUPON_STATUS: The coupon status isn't valid for use (e.g., expired, usage limit reached, etc.).
             -     CANNOT_APPLY_COUPON_DISCOUNT_WHEN_PURCHASING_GIFT_CARD: A coupon discount can't be applied when purchasing a gift card.
             -     MISSING_DELIVERY_ADDRESS: The cart is missing a delivery address.
             -     MISSING_DELIVERY_METHOD: The cart is missing a delivery method.
             -     DELIVERY_METHOD_NO_LONGER_AVAILABLE: The selected delivery method is no longer available.
             -     DELIVERY_METHOD_NOT_APPLIED_TO_ALL_LINE_ITEMS: The selected delivery method doesn't apply to all line items in the cart.
             -     INVALID_GIFT_CARD_CODE: No gift card exists with the provided code.
             -     INVALID_GIFT_CARD_STATUS: The gift card status isn't valid for use (e.g., expired, fully redeemed, etc.).
             -     CANNOT_PAY_FOR_GIFT_CARD_WITH_GIFT_CARD: Can't pay for a gift card with another gift card.
             -     SUBTOTAL_BELOW_ORDER_MINIMUM: The cart's subtotal is below the minimum order subtotal.
             -     INVALID_MEMBERSHIP_STATUS: A selected membership has an invalid status (e.g., insufficient funds).
             -     INVALID_POSTAL_CODE: The address's postal code is missing or invalid.
             -     INVALID_SUBDIVISION: The address's subdivision is missing or invalid.
        - name: description | type: string | description: Human-readable violation message.  | validation: maxLength 1000
        - name: severity | type: ViolationSeverity | description: How serious the violation is; errors block placing an order.  
             - enum:
             -     WARNING: Informational or advisory violation. Doesn't block placing an order.
             -     ERROR: Blocking violation. Must be resolved before an order can be placed.

 Possible Errors:
   HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: CART_ALREADY_ORDERED | Description: Cart was already placed as an order.


```

### Examples

### Estimate Current Cart
Estimates current cart totals for the requested calculation components.

```curl
curl -X POST \
'https://www.wixapis.com/ecom/v2/carts/current/estimate' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json' \
-d '{
  "calculateTax": true
}'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.ecom.currentCartV2.estimateCurrentCart(options)
 Description: Estimates the customer's current cart totals based on its current state and the selected calculation components.  This API provides a partial, component-based estimation of the cart and is intended for preview purposes (for example, showing partial estimated totals).  The estimation is controlled by boolean flags that indicate which components should be included (delivery costs, additional fees, taxes, gift cards). Components that aren't explicitly enabled are excluded from the calculation.  This isn't a full cart calculation.  Note that line item discounts are already pre-computed and applied to the current cart.
 Method parameters:
   param name: options | type: EstimateCurrentCartOptions  none  
        - name: refreshCart | type: boolean | description: Whether to retrieve the latest item prices, discounts, and inventory data from the catalogs before estimating the cart.  Default: `false`.  
        - name: validationConfig | type: ValidationsConfig | description: Specifies the level of **business validation** to perform during cart calculation, by calling the [Validations service plugin](https://dev.wix.com/api/rest/wix-ecommerce/validations-integration-spi/introduction).  
             - enum:
             -     SKIP_VALIDATIONS: No business validations are performed.
             -     PRE_CHECKOUT_VALIDATIONS: Perform cart-level business validations as defined by the service plugin implementer.
             -     CHECKOUT_VALIDATIONS: Perform checkout-specific business validations as defined by the service plugin implementer.
        - name: calculateDelivery | type: boolean | description: Whether to calculate delivery costs. Default: `false`.  
        - name: calculateAdditionalFees | type: boolean | description: Whether to calculate any additional fees. Default: `false`.  
        - name: calculateTax | type: boolean | description: Whether to include tax calculation. Default: `false`.  
        - name: calculateGiftCards | type: boolean | description: Whether to calculate the effect of gift card balances on the cart total. Gift cards aren't redeemed - only reflected for estimation purposes. Default: `false`.  
 Return type: PROMISE<EstimateCurrentCartResponse>
  - name: cart | type: Cart | description: The cart that was calculated.  
     - name: _id | type: string | description: Cart GUID.  | read-only: true | validation: format GUID
     - name: _createdDate | type: Date | description: Date and time the Cart was created.  | read-only: true 
     - name: _updatedDate | type: Date | description: Date and time the Cart was last updated.  | read-only: true 
     - name: revision | type: string | description: Revision number, which increments by 1 each time the Cart is updated.  | read-only: true 
     - name: lineItems | type: array<LineItem> | description: Line items added to the Cart by the customer. This list may include in-stock items and invalid or out-of-stock items.  | read-only: true | validation: maxItems 300
        - name: _id | type: string | description: Unique identifier for the line item within the cart.  | validation: format GUID
        - name: name | type: TranslatableString | description: Display name for the line item.  
           - name: original | type: string | description: __Required.__ String in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  Min: 1 character. Max: 200 characters.  | validation: minLength 1, maxLength 200
           - name: translated | type: string | description: String translated into the buyer's language.  Min: 1 character. Max: 400 characters. Default: Same as `original`.  | validation: minLength 1, maxLength 400
        - name: quantityInfo | type: ItemQuantityInfo | description: Quantity details for the line item.  
           - name: confirmedQuantity | type: integer | description: Confirmed quantity to purchase. The minimum of `requestedQuantity` and `availableQuantity`.  | validation: minimum 1, maximum 100000
           - name: requestedQuantity | type: integer | description: Quantity the customer originally requested.  | validation: minimum 1, maximum 100000
           - name: availableQuantity | type: integer | description: Maximum quantity available for purchase.  | validation: format int32
           - name: fixedQuantity | type: boolean | description: Whether the line item quantity is fixed and can't be changed.  Default: `false`  
        - name: pricing | type: ItemPricingInfo | description: Pricing details for the line item.  
           - name: unitPrice | type: ConvertedMoney | description: Final unit price after discounts. Includes tax when `taxInfo.pricesIncludeTax` is true.  
              - name: amount | type: string | description: Monetary amount in the original currency, as specified in `businessInfo.currencyCode`.  | validation: format DECIMAL_VALUE, decimalValue {"gte":"0","lte":"999999999","maxScale":3}
              - name: convertedAmount | type: string | description: Monetary amount in the converted currency, as specified in `customerInfo.currencyCode`.  Default: `amount`.  | read-only: true | validation: format DECIMAL_VALUE, decimalValue {"gte":"0","lte":"999999999","maxScale":3}
           - name: totalPrice | type: ConvertedMoney | description: Final total price for this item (unit price × quantity). Includes tax when `taxInfo.pricesIncludeTax` is true.  
           - name: priceDescription | type: PriceDescription | description: Additional price description. For example, when the price is `0` but you need more detail, such as "Starts at $67".  
              - name: original | type: string | description: __Required.__ Price description in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: minLength 1, maxLength 100
              - name: translated | type: string | description: Price description translated into the buyer's language.  Default: Same as `original`.  | validation: minLength 1, maxLength 100
           - name: priceUndetermined | type: boolean | description: Whether the price isn't yet defined and will be updated after the order is created.  
           - name: breakdown | type: ItemPriceBreakdown | description: Detailed breakdown of price components.  
              - name: fullPrice | type: ConvertedMoney | description: Full catalog price for a single item before discounts, including modifiers. Includes tax when `taxInfo.pricesIncludeTax` is true.  
              - name: salePrice | type: ConvertedMoney | description: Catalog sale price for a single item, including modifiers. Includes tax when `taxInfo.pricesIncludeTax` is true.  
              - name: totalModifiersPrice | type: ConvertedMoney | description: Total price of all modifiers for a single item. Includes tax when `taxInfo.pricesIncludeTax` is true.  
        - name: source | type: ItemSource | description: Information about the line item's origin.  
           - name: catalogReference | type: CatalogReference | description: Catalog and item reference: GUIDs for the item and catalog, plus optional details. Optional for custom line items, which don't trigger the Catalog service plugin.  
              - name: catalogItemId | type: string | description: GUID of the item within the catalog it belongs to.  | validation: minLength 1, maxLength 36
              - name: appId | type: string | description: GUID of the app providing the catalog.  You can get your app's GUID from its page in the [app dashboard](https://dev.wix.com/dc3/my-apps/).  For items from Wix catalogs, the following values always apply: + Wix Stores: `"215238eb-22a5-4c36-9e7b-e7c08025e04e"` + Wix Bookings: `"13d21c63-b5ec-5912-8397-c3a5ddb27a97"` + Wix Restaurants: `"9a5d83fd-8570-482e-81ab-cfa88942ee60"`  | validation: minLength 1
              - name: options | type: object | description: Additional item details in `key:value` pairs.  Use this optional field for more specificity with item selection. The values of the `options` field differ depending on which catalog is providing the items.  For Wix Stores products, learn more about integrating with [Catalog V3](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v3/e-commerce-integration.md) or [Catalog V1](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-v1/catalog/e-commerce-integration.md), depending on [the version the site uses](https://dev.wix.com/docs/api-reference/business-solutions/stores/catalog-versioning/introduction.md).  
           - name: catalogOverrideFields | type: CatalogOverrideFields | description: Overriding values for catalog item properties.  
              - name: name | type: TranslatableString | description: Display name for the line item.  
              - name: salePrice | type: string | description: Sale price for a single item after modifiers, before discounts.  | validation: decimalValue {"gte":"0","lte":"999999999","maxScale":3}
              - name: fullPrice | type: string | description: Full price for a single item after modifiers, before discounts.  | validation: decimalValue {"gte":"0","lte":"999999999","maxScale":3}
              - name: descriptionLines | type: array<DescriptionLine> | description: Description lines for the item. Shown when displaying the line item to buyers.  | validation: minItems 0, maxItems 20
                 - ONE-OF: 
                    - name: plainText | type: PlainTextValue | description: Description line plain text value.  
                       - name: original | type: string | description: Description line plain text value in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: maxLength 600
                       - name: translated | type: string | description: Description line plain text value translated into the buyer's language.  Default: Same as `original`.  | validation: maxLength 600
                    - name: colorInfo | type: Color | description: Description line color value.  
                       - name: original | type: string | description: Description line color name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: maxLength 500
                       - name: translated | type: string | description: Description line color name translated into the buyer's language.  Default: Same as `original`.  | validation: maxLength 500
                       - name: code | type: string | description: HEX or RGB color code for display.  
                 - name: name | type: DescriptionLineName | description: Description line name.  
                    - name: original | type: string | description: Description line name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: maxLength 100
                    - name: translated | type: string | description: Description line name translated into the buyer's language.  Default: Same as `original`.  | validation: maxLength 200
              - name: physicalProperties | type: PhysicalProperties | description: Physical properties of the item.  
                 - name: weight | type: number | description: Line item weight. Measurement unit matches the weight unit specified in `weightUnit` in the request.  
                 - name: sku | type: string | description: Stock-keeping unit. Learn more about [SKUs](https://www.wix.com/encyclopedia/definition/stock-keeping-unit-sku).  | validation: maxLength 40
                 - name: shippable | type: boolean | description: Whether this line item is shippable.  
              - name: image | type: string | description: Item image.  
              - name: paymentOption | type: PaymentOption | description: Selected payment option for the item.  
                 - name: value | type: PaymentOptionType | description: Selected payment option type for this item.  Default: `FULL_PAYMENT_ONLINE`  
                         - enum:
                         -     FULL_PAYMENT_ONLINE: The entire payment for this item happens as part of the checkout.
                         -     FULL_PAYMENT_OFFLINE: The entire payment for this item happens after checkout. For example, when using cash, check, or other offline payment methods.
                         -     MEMBERSHIP: Payment for this item is done by charging a membership. Any remaining amount not covered by the membership, such as item modifiers, is paid online.
                         -     DEPOSIT_ONLINE: Partial payment to be paid upfront during checkout. The initial amount to be paid for each line item is specified in `depositAmount`.
                         -     MEMBERSHIP_OFFLINE: Payment for this item can only be done by charging a membership and must be manually redeemed in the dashboard by the site admin. When selected, `price` is `0`.
                         -     MEMBERSHIP_ONLINE_WITH_OFFLINE_REMAINDER: Item price is charged to online membership. Any remaining amount not covered by the membership, such as item modifiers, is paid offline.
              - name: depositAmount | type: string | description: Partial payment due upfront during checkout. Only when `paymentOption.value` is `DEPOSIT_ONLINE`.  | validation: format DECIMAL_VALUE, decimalValue {"gt":"0","lte":"999999999","maxScale":3}
              - name: savePaymentMethod | type: boolean | description: Whether to save the payment method on the order.  Default: `false`  
              - name: inventoryAppId | type: string | description: GUID of the app managing inventory.  | validation: format GUID
           - name: rootCatalogItemId | type: string | description: When `catalogReference.catalogItemId` isn't the actual catalog item GUID, this field returns the true catalog item GUID. For example, for Wix Bookings, `catalogReference.catalogItemId` is the booking GUID, so this value is the service GUID. In most cases, this matches `catalogReference.catalogItemId`. Used in membership validation.  | validation: minLength 1, maxLength 36
           - name: inventoryAppId | type: string | description: GUID of the app managing the inventory.  | validation: format GUID
        - name: attributes | type: ItemAttributes | description: Display details for the item.  
           - name: descriptionLines | type: array<DescriptionLine> | description: Description lines for the item.  | validation: maxItems 100
           - name: image | type: string | description: Item image.  
           - name: url | type: string | description: URL of the item's page on the site.  
           - name: policies | type: array<Policy> | description: Policies shown to the buyer on the checkout page.  | validation: maxItems 5
              - name: title | type: string | description: Policy title - should be translated  | validation: minLength 1, maxLength 29
              - name: content | type: string | description: Policy content - should be translated  | validation: minLength 1, maxLength 3000
           - name: itemType | type: ItemType | description: Item type: preset or custom.  
              - ONE-OF: 
                 - name: preset | type: ItemTypePreset | description: Preset item type.  
                         - enum: UNRECOGNISED, PHYSICAL, DIGITAL, GIFT_CARD, SERVICE
                 - name: custom | type: string | description: Custom item type. When none of the preset types are suitable, specifies the custom type.  
           - name: physicalProperties | type: PhysicalProperties | description: Physical properties of the item. When relevant, includes SKU, weight, and shippability.  
           - name: subscriptionInfo | type: SubscriptionOptionInfo | description: Subscription option details.  
              - name: subscriptionSettings | type: SubscriptionSettings | description: Subscription option settings.  
                 - name: frequency | type: SubscriptionFrequency | description: Frequency of recurring payment.  
                         - enum: UNDEFINED, DAY, WEEK, MONTH, YEAR
                 - name: interval | type: integer | description: Interval of recurring payment.  Default: `1`. If SubscriptionFrequency is Day the minimum interval is 7  | validation: minimum 1, maximum 3650, format int32
                 - name: autoRenewal | type: boolean | description: Whether subscription is renewed automatically at the end of each period.  
                 - name: billingCycles | type: integer | description: Number of billing cycles before subscription ends. Ignored if `autoRenewal` is `true`.  | validation: minimum 1, format int32
                 - name: enableCustomerCancellation | type: boolean | description: Whether to allow the customer to cancel the subscription..  
                 - name: freeTrialPeriod | type: FreeTrialPeriod | description: Period until first cycle starts. If applied payNow will be 0 If None => no free trial  
                    - name: frequency | type: SubscriptionFrequency | description: Frequency of period. Values: DAY, WEEK, MONTH, YEAR  
                    - name: interval | type: integer | description: Number of frequency units in the free trial period. For example, frequency `MONTH` with interval `3` means a 3-month free trial.  | validation: minimum 1, maximum 999
              - name: title | type: Title | description: Subscription option title.  
                 - name: original | type: string | description: Subscription option name in the site's default language as defined in the [request envelope](https://dev.wix.com/docs/build-apps/develop-your-app/frameworks/self-hosting/supported-extensions/backend-extensions/add-self-hosted-service-plugin-extensions.md#request-envelope).  | validation: minLength 1, maxLength 150
                 - name: translated | type: string | description: Subscription option name translated into the buyer's language.  Default: Same as `original`.  | validation: minLength 1, maxLength 150
              - name: description | type: Description | description: Subscription option description.  
                 - name: original | type: string | description: Subscription option description.  | validation: maxLength 500
                 - name: translated | type: string | description: Translated subscription option description.  | validation: maxLength 500
           - name: serviceProperties | type: ServiceProperties | description: Service properties. When relevant, includes date and number of participants.  
              - name: scheduledDate | type: Date | description: Date and time the service is to be provided, in [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) format. For example, the start time of a class.  
              - name: numberOfParticipants | type: integer | description: The number of people participating in the service. For example, the number of people attending a class or the number of people per hotel room.  | validation: minimum 1, maximum 10000, format int32
           - name: membersOnly | type: boolean | description: Whether the item can only be purchased by site members.  Default: `false`  
        - name: deliveryConfig | type: ItemDeliveryConfig | description: Delivery configuration for the line item.  
           - name: deliveryProfileId | type: string | description: Delivery profile GUID.  | validation: format GUID
           - name: fulfillerId | type: string | description: Optional custom fulfiller GUID.  | validation: format GUID
        - name: taxConfig | type: ItemTaxConfig | description: Tax configuration for the line item.  
           - name: taxableAddress | type: TaxableAddress | description: Address used for tax calculation.  
              - ONE-OF: 
                 - name: addressType | type: TaxableAddressType | description: taxable address type. if this field is selected, the address is automatically resolved, and the tax is calculated accordingly.  
                         - enum: BUSINESS, BILLING, SHIPPING
           - name: taxGroupId | type: string | description: Tax group GUID for this line item.  | validation: maxLength 50
        - name: paymentConfig | type: ItemPaymentConfig | description: Payment configuration for the line item.  
           - name: savePaymentMethod | type: boolean | description: Whether to save the payment method on the order.  Default: `false`  
           - name: consentRequiredPaymentPolicy | type: string | description: Item payment policy that requires buyer consent to complete the purchase. Displayed on the checkout page.  | validation: minLength 1, maxLength 2500
           - name: depositAmount | type: ConvertedMoney | description: Partial payment due upfront during checkout. Only when `paymentOption` is `DEPOSIT_ONLINE`.  
           - name: paymentOption | type: PaymentOptionType | description: Selected payment option type for this item.  Default: `FULL_PAYMENT_ONLINE`  
        - name: status | type: ItemStatus | description: Inventory availability status for the line item.  
             - enum:
             -     IN_STOCK: Item is available in the requested quantity.
             -     PARTIALLY_IN_STOCK: Only part of the requested quantity is available.
             -     OUT_OF_STOCK: Item is out of stock.
             -     REMOVED_FROM_CATALOG: Item no longer exists in the catalog.
        - name: extendedFields | type: ExtendedFields | description: Custom extended fields for the line item object.  [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md) must be configured using the Checkout & Orders - Line Items Schema Plugin in the app dashboard before they can be accessed with API calls.  
           - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map
        - name: modifierGroups | type: array<ModifierGroup> | description: Modifier groups added to the item.  | validation: maxItems 25
           - name: _id | type: string | description: Modifier group GUID.  | read-only: true | validation: minLength 1, maxLength 36
           - name: name | type: TranslatableString | description: Modifier group name.  
           - name: modifiers | type: array<ItemModifier> | description: Modifiers in this group.  | validation: minItems 1, maxItems 25
              - name: _id | type: string | description: Modifier GUID.  | read-only: true | validation: minLength 1, maxLength 36
              - name: quantity | type: integer | description: Modifier quantity.  | validation: minimum 1, maximum 100000, format int32
              - name: label | type: TranslatableString | description: Primary label for the modifier.  
              - name: details | type: TranslatableString | description: Extra modifier copy.  
              - name: price | type: ConvertedMoney | description: Modifier price.  
        - name: discounts | type: array<ItemDiscount> | description: Discounts applied to this line item.  | validation: maxItems 100
           - name: name | type: TranslatableString | description: Discount display name.  
           - name: amountOff | type: ConvertedMoney | description: Total amount taken off the item's sale price for the full line item quantity.  
           - name: source | type: DiscountSource | description: Discount source (for example, coupon or automatic discount) and related identifiers.  
              - name: sourceType | type: DiscountSourceType | description: Discount source type.  
                     - enum:
                     -     AUTOMATIC_RULE: Discount applied automatically by a rule.
                     -     COUPON: Discount applied by a coupon code.
              - name: couponCode | type: string | description: Coupon code that triggered the discount. Only relevant for coupon discounts.  | validation: maxLength 50
        - name: customLineItem | type: boolean | description: Whether the line item is a custom line item. Custom line items don't trigger the Catalog service plugin.  
     - name: subtotal | type: ConvertedMoney | description: The sum of all line item final prices.  | read-only: true 
     - name: note | type: string | description: Optional message left by the customer. Usually intended for the merchant and contains special instructions, requests, or clarifications related to the order.  | validation: maxLength 1000
     - name: coupons | type: array<Coupon> | description: List of coupons added to the Cart. Currently only one coupon code is supported.  | read-only: true | validation: maxItems 1
        - name: _id | type: string | description: Coupon GUID in the cart.  | validation: format GUID
        - name: code | type: string | description: Coupon code entered at checkout.  | validation: minLength 1, maxLength 50
     - name: source | type: CartSource | description: Information about the source of the Cart, detailing the origin or context in which the Cart was created.  
        - name: channelType | type: ChannelType | description: Sales channel that created the cart.  
             - enum:
             -     UNSPECIFIED: Unspecified sales channel. This value is not supported.
             -     WEB: A web client.
             -     POS: [Point of sale solutions](https://support.wix.com/en/wix-mobile-pos-2196395).
             -     EBAY: [eBay shop](https://support.wix.com/en/article/wix-stores-connecting-and-setting-up-an-ebay-shop).
             -     AMAZON: [Amazon shop](https://support.wix.com/en/article/wix-stores-connecting-and-setting-up-an-amazon-shop).
             -     OTHER_PLATFORM: Other sales platform.
             -     WIX_APP_STORE: [Wix Owner app](https://support.wix.com/article/wix-owner-app-an-overview).
             -     WIX_INVOICES: Wix Invoices app in [your dashboard](https://www.wix.com/my-account/site-selector/?buttonText=Select%20Site&title=Select%20a%20Site&autoSelectOnSingleSite=true&actionUrl=https:%2F%2Fwww.wix.com%2Fdashboard%2F%7B%7BmetaSiteId%7D%7D%2Finvoices/settings/general-settings)
             -     BACKOFFICE_MERCHANT: Wix merchant backoffice.
             -     WISH: Wish sales channel.
             -     CLASS_PASS: [ClassPass sales channel](https://support.wix.com/en/article/wix-bookings-letting-clients-book-your-services-with-classpass).
             -     GLOBAL_E: Global-E sales channel.
             -     FACEBOOK: [Facebook shop](https://support.wix.com/en/article/wix-stores-changes-to-facebook-shops).
             -     ETSY: [Etsy sales channel](https://support.wix.com/en/article/wix-stores-request-adding-etsy-as-a-sales-channel).
             -     TIKTOK: [TikTok sales channel](https://support.wix.com/en/article/wix-stores-request-adding-tiktok-as-a-sales-channel).
             -     FAIRE_COM: [Faire marketplace integration](https://support.wix.com/en/article/wix-stores-creating-a-faire-store-using-the-faire-integration-app).
             -     PAYPAL_AGENTIC_CHECKOUT: PayPal Agentic Checkout sales channel.
             -     STRIPE_AGENTIC_CHECKOUT: Stripe Agentic Checkout sales channel.
        - name: externalReferences | type: array<ExternalReference> | description: External app and resource references for this cart, used for integration and tracking across platforms.  | read-only: true | validation: maxItems 10, immutable
           - name: appId | type: string | description: GUID of the app associated with the purchase flow. For example, the Wix Pay Links app GUID.  | validation: format GUID, immutable
           - name: resourceId | type: string | description: Reference to an external resource GUID. Used to link the purchase flow to a specific entity in an external system. For example, a Wix Pay Link GUID.  | validation: minLength 1, maxLength 100, immutable
        - name: createdBy | type: CreatedBy | description: Entity that created the cart.  | read-only: true 
           - ONE-OF: 
              - name: visitorId | type: string | description: Site visitor GUID when the visitor isn't a site member.  | read-only: true | validation: format GUID
              - name: memberId | type: string | description: Site member GUID.  | read-only: true | validation: format GUID
              - name: userId | type: string | description: Wix user GUID when the cart was created by a Wix user on behalf of a buyer (for example, POS).  | validation: format GUID
              - name: appId | type: string | description: App GUID when the cart was created by an external app or Wix service.  | validation: format GUID
        - name: customContentReference | type: CustomContentReference | description: App and component GUIDs for the custom checkout page content provider.  
           - name: appId | type: string | description: App GUID for the checkout content provider. Find it in the [app dashboard](https://dev.wix.com/dc3/my-apps/).  | validation: format GUID
           - name: componentId | type: string | description: Component GUID within that app. Find it in the [app dashboard](https://dev.wix.com/dc3/my-apps/).  | validation: format GUID
     - name: businessInfo | type: BusinessInfo | description: Information about the site from which the Cart's line items were added.  
        - name: locationId | type: string | description: Business location GUID for the cart. See the [Locations API](https://dev.wix.com/docs/rest/business-management/locations/introduction.md).  | validation: format GUID
        - name: languageCode | type: string | description: 2-letter language code in ISO 639-1 alpha-2 format. The business's default language.  | read-only: true | validation: format LANGUAGE
        - name: currencyCode | type: string | description: Three-letter currency code in ISO-4217 alphabetic format. The site's base currency; it doesn't change when the [customer selects a different display currency](https://support.wix.com/en/article/multicurrency-an-overview).  | read-only: true | validation: format CURRENCY
     - name: customerInfo | type: CustomerInfo | description: Information about the customer that owns the Cart.  
        - ONE-OF: 
           - name: visitorId | type: string | description: Site visitor GUID when the visitor isn't a site member.  | read-only: true | validation: format GUID
           - name: memberId | type: string | description: Site member GUID.  | read-only: true | validation: format GUID
           - name: userId | type: string | description: Wix user GUID when the cart was created by a Wix user on behalf of a customer (for example, POS).  | read-only: true | validation: format GUID
           - name: openAccess | type: boolean | description: Whether the cart has no owner yet and anyone can access it; the first visitor to access it becomes the owner.  | read-only: true 
        - name: firstName | type: string | description: Customer's first name.  | validation: maxLength 100
        - name: lastName | type: string | description: Customer's last name.  | validation: maxLength 100
        - name: phone | type: string | description: Customer's phone number.  | validation: format PHONE
        - name: company | type: string | description: Company name.  | validation: maxLength 1000
        - name: vatId | type: VatId | description: Business VAT registration number.  
           - name: _id | type: string | description: Customer's tax GUID.  
           - name: type | type: VatType | description: Tax type.  Supported values: + `CPF`: for individual tax payers + `CNPJ`: for corporations  
                 - enum:
                 -     UNSPECIFIED: 
                 -     CPF: CPF - for individual tax payers.
                 -     CNPJ: CNPJ - for corporations
        - name: email | type: string | description: Customer's email address.  | validation: format EMAIL
        - name: contactId | type: string | description: Customer's contact GUID. Created automatically if one doesn't exist yet. See the [Contacts API](https://dev.wix.com/api/rest/contacts/contacts/introduction).  | read-only: true | validation: format GUID
        - name: languageCode | type: string | description: 2-letter language code in ISO 639-1 alpha-2 format. Resolved automatically from request metadata (`x-wix-linguist` header).  | read-only: true | validation: format LANGUAGE
        - name: currencyCode | type: string | description: Three-letter currency code in ISO-4217 alphabetic format. [Currency the customer selects](https://support.wix.com/en/article/multicurrency-an-overview) during checkout; it's their preferred display currency and may differ from the site's default.  | read-only: true | validation: format CURRENCY
     - name: deliveryInfo | type: DeliveryInfo | description: Delivery-related information associated with the Cart.  
        - name: address | type: Address | description: Delivery address.  
           - name: streetAddress | type: StreetAddress | description: none  
              - name: name | type: string | description: none  
              - name: number | type: string | description: none  
           - name: city | type: string | description: none  
           - name: subdivision | type: string | description: none  
           - name: country | type: string | description: none  
           - name: postalCode | type: string | description: none  
           - name: addressLine2 | type: string | description: none  
        - name: method | type: DeliveryMethod | description: Delivery method selected by the customer.  | read-only: true 
           - name: code | type: string | description: Shipping rate code. Example: `"usps_std_overnight"`.  | validation: maxLength 100
           - name: appId | type: string | description: Carrier app GUID.  | validation: format GUID
           - name: title | type: TranslatableString | description: Delivery rate title. Examples: `"USPS Standard Overnight Delivery"`, `"Standard"`, `"First-Class Package International"`.  
           - name: pickup | type: boolean | description: Whether this method is pickup.  
        - name: weightUnit | type: WeightUnit | description: Weight unit used when shipping items (for example, kg or lb).  | read-only: true 
             - enum:
             -     UNSPECIFIED_WEIGHT_UNIT: Weight unit can't be classified due to an error.
             -     KG: Kilograms.
             -     LB: Pounds.
     - name: taxInfo | type: TaxInfo | description: Tax-related information associated with the Cart.  
        - name: pricesIncludeTax | type: boolean | description: Whether tax is already included in prices (line items, delivery, additional fees).  | read-only: true 
        - name: taxExemptGroupId | type: string | description: Tax-exempt group GUID applied for tax exemptions.  | validation: format GUID
     - name: paymentInfo | type: PaymentInfo | description: Payment-related information associated with the Cart.  
        - name: giftCards | type: array<GiftCard> | description: Gift cards applied to the payment. Only one gift card is supported.  | read-only: true | validation: maxItems 1
           - name: _id | type: string | description: Unique identifier of the gift card within the cart.  | validation: format GUID
           - name: obfuscatedCode | type: string | description: Partially masked gift card code.  | validation: maxLength 50
           - name: appId | type: string | description: App GUID of the gift card provider.  | validation: format GUID
           - name: externalId | type: string | description: External GUID in the gift card provider's system, used for integration and tracking across platforms.  | validation: minLength 1, maxLength 50
           - name: requestedRedeemAmount | type: ConvertedMoney | description: Amount to redeem from this gift card.  
        - name: currencyCode | type: string | description: Three-letter currency code in ISO-4217 alphabetic format. Currency used to process payment. Matches `customerInfo.currencyCode` when that currency is supported for payment, otherwise falls back to `businessInfo.currencyCode`.  | read-only: true | validation: format CURRENCY
        - name: billingAddress | type: Address | description: Billing address.  
        - name: billingContact | type: FullAddressContactDetails | description: Billing contact details.  
           - name: firstName | type: string | description: First name.  | validation: maxLength 100
           - name: lastName | type: string | description: Last name.  | validation: maxLength 100
           - name: phone | type: string | description: Phone number.  | validation: format PHONE
           - name: company | type: string | description: Company name.  | validation: maxLength 1000
           - name: vatId | type: VatId | description: Tax information (for Brazil only). If GUID is provided, `vatId.type` must also be set, `UNSPECIFIED` is not allowed.  
     - name: orderPlaced | type: boolean | description: Whether the Cart has been placed as an Order. Defaults to `false`.  | read-only: true 
     - name: orderId | type: string | description: Order GUID. Empty until the checkout process is completed.  | read-only: true | validation: format GUID
     - name: purchaseFlowId | type: string | description: Persistent GUID that correlates the Cart with the created Order after checkout is completed.  | read-only: true | validation: format GUID
     - name: settings | type: CartSettings | description: Additional cart settings.  Settings can only be configured at cart creation time and can't be changed afterwards.  | read-only: true | validation: immutable
        - name: lockGiftCard | type: boolean | description: Whether adding or removing a gift card on checkout is restricted.  
        - name: lockCouponCode | type: boolean | description: Whether adding or removing a coupon code on checkout is restricted.  
        - name: policyAgreementCheckboxDisabled | type: boolean | description: Whether the policy agreement checkbox on checkout is disabled.  
        - name: manualPaymentDisabled | type: boolean | description: Whether the manual payment option is disabled for this checkout.  
     - name: customCheckoutUrl | type: string | description: Custom checkout URL to redirect the customer to a checkout page. By default, customers are redirected to the standard Wix checkout page. Clients can override this behavior by providing their own URL here. If the URL contains the placeholder `{checkout_id}`, it will be replaced with the actual Cart GUID.  | validation: maxLength 2048
     - name: extendedFields | type: ExtendedFields | description: Custom fields. [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md) must be configured in the app dashboard before they can be accessed with API calls.  
     - name: currentCart | type: boolean | description: Whether this is the customer's current cart. The current cart can be accessed using the identity context (for example, `visitorId` from session cookies) without an explicit cart GUID.  | read-only: true 
     - name: demo | type: boolean | description: Whether this is a demo cart. Demo carts are created in the Wix editor for merchant preview and can't proceed to checkout.  Default: `false`  
  - name: summary | type: CartSummary | description: The calculation summary.  
     - name: cartId | type: string | description: Cart GUID.  | validation: format GUID
     - name: cartRevision | type: string | description: Cart revision.  
     - name: calculationId | type: string | description: Unique identifier for this cart calculation.  | validation: format GUID
     - name: lineItems | type: array<LineItemSummary> | description: Summarized details for each line item in the cart.  | validation: maxItems 300
        - name: lineItemId | type: string | description: Line item GUID.  | validation: format GUID
        - name: quantity | type: integer | description: Line item quantity.  | validation: minimum 1, maximum 100000
        - name: unitPrice | type: ConvertedMoney | description: Final unit price after discounts. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: totalPrice | type: ConvertedMoney | description: Line total (unit price × quantity). Includes tax when `taxSummary.pricesIncludeTax` is true.  
     - name: discounts | type: array<Discount> | description: Discounts applied to the cart.  | validation: maxItems 100
        - name: name | type: TranslatableString | description: Display name of the discount.  
        - name: source | type: DiscountSource | description: Source of the discount; how it was applied.  
        - name: scope | type: DiscountScope | description: Part of the cart the discount applies to.  
             - enum:
             -     UNKNOWN_DISCOUNT_SCOPE: Unknown discount scope.
             -     CART_SUBTOTAL: Discount applies to the cart subtotal.
             -     LINE_ITEM: Discount applies to a specific line item.
             -     DELIVERY: Discount applies to the delivery price.
        - name: subscriptionCycles | type: integer | description: Number of subscription billing cycles this discount applies to. If unset, it applies to all cycles.  | validation: minimum 1, maximum 1000, format int32
        - name: total | type: ConvertedMoney | description: Total amount discounted across all of this discount's benefits.  
        - name: lineItemDiscounts | type: array<LineItemDiscount> | description: Per-line-item discount amounts for item-level discounts.  | validation: maxItems 100
           - name: lineItemId | type: string | description: Line item GUID the discount applies to.  | validation: format GUID
           - name: amountOff | type: ConvertedMoney | description: Total amount discounted on this line item.  
     - name: deliverySummary | type: DeliverySummary | description: Summary of delivery costs.  
        - name: method | type: DeliveryMethod | description: Calculated delivery method.  
        - name: price | type: ConvertedMoney | description: Delivery price before discounts. Includes tax when `taxSummary.pricesIncludeTax` is true.  
     - name: additionalFees | type: array<AdditionalFee> | description: Additional fees applied to the cart.  | validation: maxItems 100
        - name: code | type: string | description: Additional fee code.  | validation: minLength 1, maxLength 100
        - name: name | type: TranslatableString | description: Additional fee display name.  
        - name: providerAppId | type: string | description: App GUID of the fee provider.  | validation: minLength 1, maxLength 100
        - name: lineItemIds | type: array<string> | description: Line items this fee applies to. When empty, the fee applies to the whole cart.  | validation: maxItems 100, format GUID
        - name: price | type: ConvertedMoney | description: Additional fee amount. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: subscriptionCycles | type: integer | description: Number of subscription cycles this fee applies to. When unset and a discount is tied to a subscription line item, it applies to all cycles.  | validation: minimum 1, maximum 999, format int32
        - name: source | type: Source | description: Where the additional fee came from.  
             - enum:
             -     UNKNOWN_ADDITIONAL_FEE_SOURCE: Unknown fee source.
             -     SERVICE_PLUGIN: Added by an additional fee service plugin.
             -     LINE_ITEM: Added on the item from the catalog or as a custom line item.
             -     DELIVERY: Added by the delivery provider.
             -     PLATFORM: Added by a Wix vertical as a platform fee.
     - name: taxSummary | type: TaxSummary | description: Tax calculation summary for the cart.  
        - name: taxes | type: array<Tax> | description: Taxes applied to the cart. Multiple entries can appear when advanced tax rates are set, or one entry for the total. See [advanced tax rates](https://support.wix.com/en/article/setting-up-tax-calculation-using-the-manual-method#step-3-optional-customize-advanced-mode-settings).  | validation: maxItems 100
           - name: name | type: TranslatableString | description: Tax name.  
           - name: taxableAmount | type: ConvertedMoney | description: Amount tax is calculated on.  
           - name: exemptAmount | type: ConvertedMoney | description: Amount exempt from tax.  
           - name: amount | type: ConvertedMoney | description: Calculated tax from `taxableAmount`.  
        - name: totalExempt | type: ConvertedMoney | description: Amount exempt from tax.  
        - name: pricesIncludeTax | type: boolean | description: Whether tax is included in prices for line items, discounts, delivery, and additional fees.  | read-only: true 
        - name: lineItemTaxes | type: array<LineItemTax> | description: Per line item tax amounts.  | validation: maxItems 300
           - name: lineItemId | type: string | description: Line item GUID.  | validation: format GUID
           - name: tax | type: ConvertedMoney | description: Tax amount for the line item.  
           - name: rate | type: string | description: Tax rate as a decimal between 0 and 1.  | validation: decimalValue {"gte":"0","lte":"1","maxScale":6}
        - name: deliveryTax | type: ConvertedMoney | description: Tax on the delivery method.  
        - name: additionalFeeTaxes | type: array<AdditionalFeeTax> | description: Tax on additional fees.  | validation: maxItems 100
           - name: additionalFeeCode | type: string | description: Additional fee code.  | validation: minLength 1, maxLength 100
           - name: tax | type: ConvertedMoney | description: Tax amount for the additional fee.  
     - name: priceSummary | type: PriceSummary | description: Summary of calculated price components for the cart.  
        - name: subtotal | type: ConvertedMoney | description: Total for all line items after item-level discounts. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: discount | type: ConvertedMoney | description: Cart subtotal discount amount, deducted from the subtotal. Item-level discounts are already reflected in the subtotal. Returns 0 when no cart subtotal discount is applied. For details of all applied discounts (including delivery discounts), see `cartSummary.discounts`. Currently, only a single coupon is supported.  
        - name: delivery | type: ConvertedMoney | description: Delivery price after discounts. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: additionalFees | type: ConvertedMoney | description: Total of additional fees. Includes tax when `taxSummary.pricesIncludeTax` is true.  
        - name: tax | type: ConvertedMoney | description: Tax charged on top of the prices, summed across items, discounts, delivery, and fees. When `taxSummary.pricesIncludeTax` is true, tax is already embedded in the prices, so this field is `0`. For the full tax breakdown in either case, see `taxSummary.taxes`.  
        - name: total | type: ConvertedMoney | description: Amount to pay.  
     - name: paymentSummary | type: PaymentSummary | description: How the customer pays for the order.  
        - name: giftCards | type: array<GiftCardSummary> | description: Per-gift card deduction amounts. Only one gift card is supported today.  | validation: maxItems 1
           - name: giftCardId | type: string | description: Gift card GUID assigned by the cart.  | validation: format GUID
           - name: redeemAmount | type: ConvertedMoney | description: Amount to redeem from the gift card balance.  
        - name: memberships | type: array<MembershipSummary> | description: Memberships charged with the order.  | validation: maxItems 300
           - name: _id | type: string | description: Membership GUID.  | validation: minLength 1, maxLength 200
           - name: appId | type: string | description: App GUID for this payment option.  | validation: format GUID
           - name: lineItemIds | type: array<string> | description: Line item GUIDs this membership applies to.  | validation: minItems 1, maxItems 300, minLength 1, maxLength 100
        - name: subscriptionCharges | type: array<SubscriptionCharges> | description: Subscription charge details for checkout.  | validation: maxItems 100
           - name: lineItemIds | type: array<string> | description: Line items covered by the subscription.  | validation: minItems 1, maxItems 300, format GUID
           - name: description | type: string | description: Human-readable schedule and amounts for upcoming charges. Localized to the buyer's language for subscription orders, or the site language if none is set.  | validation: maxLength 1000
           - name: charges | type: array<Charge> | description: Scheduled charges.  | validation: maxItems 50
              - name: cycleFrom | type: integer | description: First billing cycle for this charge.  
              - name: cycleCount | type: integer | description: Number of cycles this charge covers, when set.  | validation: format int32
              - name: cycleBillingDate | type: Date | description: Billing period start.  
        - name: requiresPaymentAfterGiftCard | type: boolean | description: Whether additional payment is required to create the order after gift cards.  
        - name: totalAfterGiftCards | type: ConvertedMoney | description: Total due after gift cards.  
        - name: payNow | type: ConvertedMoney | description: Amount charged when the order is placed, after gift cards.  
        - name: payLater | type: ConvertedMoney | description: Amount collected later.  
        - name: payAfterFreeTrial | type: ConvertedMoney | description: Amount charged after a free trial, often for subscriptions.  
     - name: priceVerificationToken | type: string | description: Opaque token for the cart's calculated prices.  Pass this token when placing an order so the prices the customer saw match checkout.  If provided, the server validates it by recalculating the cart and comparing the pricing token. If validation fails, checkout is rejected.  This limits unexpected price changes or tampering between cart calculation and order placement.  Don't parse or modify the token on the client.  | validation: maxLength 1024
     - name: violations | type: array<Violation> | description: All business violations for the cart.  | validation: maxItems 100
        - ONE-OF: 
           - name: customValidationData | type: CustomValidationErrorData | description: Payload for Validations service plugin violations.  
              - name: target | type: Target | description: Where to show the violation on the cart or checkout page.  
                 - ONE-OF: 
                    - name: other | type: Other | description: General (other) violation.  
                       - name: name | type: NameInOther | description: Location on a checkout or a cart page where a general (other) violation will be displayed.  
                                 - enum:
                                 -     OTHER_DEFAULT: Default location, in case no specific location is specified.
                    - name: lineItem | type: LineItem | description: Specific line item violation.  
                       - name: name | type: NameInLineItem | description: Location on a checkout or a cart page where the specific line item violation will be displayed.  
                                 - enum:
                                 -     LINE_ITEM_DEFAULT: Default location, in case no specific location is specified.
                       - name: _id | type: string | description: GUID of the line item containing the violation.  
           - name: invalidCouponStatusData | type: InvalidCouponStatusErrorData | description: Payload when a coupon's status is invalid.  
              - ONE-OF: 
                 - name: minLineItemQuantityNotReachedDetails | type: MinLineItemQuantityNotReachedDetails | description:   
                    - name: requiredMinimumQuantity | type: integer | description: Minimum line item quantity required.  
                 - name: minSubtotalNotReachedDetails | type: MinSubtotalNotReachedDetails | description:   
                    - name: requiredMinimumSubtotal | type: ConvertedMoney | description: Minimum subtotal required.  
                    - name: originalDescription | type: string | description: Original wording for the minimum subtotal rule.  | validation: maxLength 100
              - name: couponCode | type: string | description: Coupon code with an invalid status.  | validation: maxLength 100
              - name: reason | type: InvalidCouponReason | description: Why the coupon status is invalid.  
                     - enum:
                     -     UNKNOWN_INVALID_COUPON_REASON: Unspecified status.
                     -     EXPIRED: Coupon has expired.
                     -     DISABLED: Coupon is disabled.
                     -     INACTIVE: Coupon isn't active yet.
                     -     MAX_USAGE_EXCEEDED: Coupon hit its usage limit.
                     -     MAX_USAGE_PER_CUSTOMER_EXCEEDED: Coupon hit its per-customer usage limit.
                     -     NOT_APPLICABLE_TO_SUBSCRIPTIONS: Coupon doesn't apply to subscriptions.
                     -     NOT_APPLICABLE_TO_SELECTED_LINE_ITEMS: Coupon doesn't apply to the cart's selected line items.
                     -     MIN_LINE_ITEM_QUANTITY_NOT_REACHED: Coupon needs a higher line item quantity than the cart has.
                     -     MIN_SUBTOTAL_NOT_REACHED: Coupon needs a higher subtotal than the cart has.
           - name: invalidCouponCodeData | type: InvalidCouponCodeErrorData | description: Payload when a coupon code is invalid.  
              - name: couponCode | type: string | description: Invalid coupon code.  | validation: maxLength 100
           - name: invalidGiftCardCodeData | type: InvalidGiftCardCodeErrorData | description: Payload when a gift card code is invalid.  
              - name: giftCardCode | type: string | description: Invalid gift card code.  | validation: maxLength 100
              - name: giftCardId | type: string | description: Gift card GUID. Available when the gift card was found but failed validation.  | validation: format GUID
           - name: invalidGiftCardStatusData | type: InvalidGiftCardStatusErrorData | description: Payload when a gift card's status is invalid.  
              - name: giftCardCode | type: string | description: Gift card code with an invalid status.  | validation: maxLength 100
              - name: reason | type: InvalidGiftCardReason | description: Why the gift card status is invalid.  
                     - enum:
                     -     UNKNOWN_INVALID_GIFT_CARD_REASON: Unspecified status.
                     -     EXPIRED: Gift card has expired.
                     -     DISABLED: Gift card is disabled.
                     -     EMPTY_BALANCE: Gift card has no balance left.
              - name: giftCardId | type: string | description: Gift card GUID. Available when the gift card was found but failed validation.  | validation: format GUID
           - name: lineItemsOutOfStockData | type: LineItemsOutOfStockErrorData | description: Payload when line items are out of stock.  
              - name: lineItemIds | type: array<string> | description: Out-of-stock line item GUIDs.  | validation: maxItems 300, format GUID
              - name: allLineItemsOutOfStock | type: boolean | description: Whether every line item in the cart is out of stock.  
           - name: membersOnlyItemData | type: MembersOnlyItemErrorData | description: Payload for members-only items.  
              - name: lineItemIds | type: array<string> | description: Members-only line item GUIDs.  | validation: maxItems 300, format GUID
           - name: subtotalBelowOrderMinimumData | type: SubtotalBelowOrderMinimumErrorData | description: Payload when the cart's subtotal is below the minimum order subtotal.  
              - name: minimumOrderSubtotal | type: ConvertedMoney | description: Minimum subtotal required to place an order.  
              - name: remainingAmount | type: ConvertedMoney | description: Amount that needs to be added to the current order to reach the minimum subtotal amount.  
           - name: invalidMembershipStatusData | type: InvalidMembershipStatusErrorData | description: Payload when a selected membership has an invalid status.  
              - name: membershipId | type: string | description: Membership GUID with an invalid status. Absent when the offending membership can't be identified.  | validation: maxLength 200
              - name: reason | type: InvalidMembershipReason | description: Why the membership status is invalid.  
                     - enum:
                     -     UNKNOWN_INVALID_MEMBERSHIP_REASON: Unspecified status.
                     -     INSUFFICIENT_FUNDS: The membership doesn't have sufficient funds to pay for the cart.
        - name: scope | type: ViolationScope | description: Violation scope.  
             - enum:
             -     GLOBAL: Violation applies to the cart as a whole.
             -     LINE_ITEM: Violation is tied to a specific line item.
             -     DISCOUNT: Violation is tied to a discount.
             -     DELIVERY: Violation is tied to the delivery method or address.
             -     TAX: Violation is tied to tax calculation.
             -     MEMBERSHIP: Violation is tied to a membership payment.
             -     GIFT_CARD: Violation is tied to a gift card.
        - name: code | type: ViolationCode | description: Violation type code.  
             - enum:
             -     GENERAL_CODE: A general violation not covered by more specific codes.
             -     CUSTOM_VALIDATION: Custom violation (e.g., violations from Validation Service Plugin).
             -     EMPTY_CART: The cart doesn't contain any line items.
             -     LINE_ITEMS_OUT_OF_STOCK: One or more line items are out of stock.
             -     MEMBERS_ONLY_ITEM: One or more line items can be purchased only by members and the customer isn't a member.
             -     INVALID_COUPON_CODE: No coupon exists with the provided code.
             -     INVALID_COUPON_STATUS: The coupon status isn't valid for use (e.g., expired, usage limit reached, etc.).
             -     CANNOT_APPLY_COUPON_DISCOUNT_WHEN_PURCHASING_GIFT_CARD: A coupon discount can't be applied when purchasing a gift card.
             -     MISSING_DELIVERY_ADDRESS: The cart is missing a delivery address.
             -     MISSING_DELIVERY_METHOD: The cart is missing a delivery method.
             -     DELIVERY_METHOD_NO_LONGER_AVAILABLE: The selected delivery method is no longer available.
             -     DELIVERY_METHOD_NOT_APPLIED_TO_ALL_LINE_ITEMS: The selected delivery method doesn't apply to all line items in the cart.
             -     INVALID_GIFT_CARD_CODE: No gift card exists with the provided code.
             -     INVALID_GIFT_CARD_STATUS: The gift card status isn't valid for use (e.g., expired, fully redeemed, etc.).
             -     CANNOT_PAY_FOR_GIFT_CARD_WITH_GIFT_CARD: Can't pay for a gift card with another gift card.
             -     SUBTOTAL_BELOW_ORDER_MINIMUM: The cart's subtotal is below the minimum order subtotal.
             -     INVALID_MEMBERSHIP_STATUS: A selected membership has an invalid status (e.g., insufficient funds).
             -     INVALID_POSTAL_CODE: The address's postal code is missing or invalid.
             -     INVALID_SUBDIVISION: The address's subdivision is missing or invalid.
        - name: description | type: string | description: Human-readable violation message.  | validation: maxLength 1000
        - name: severity | type: ViolationSeverity | description: How serious the violation is; errors block placing an order.  
             - enum:
             -     WARNING: Informational or advisory violation. Doesn't block placing an order.
             -     ERROR: Blocking violation. Must be resolved before an order can be placed.

 Possible Errors:
   HTTP Code: 428 | Status Code: FAILED_PRECONDITION | Application Code: CART_ALREADY_ORDERED | Description: Cart was already placed as an order.


```

### Examples

### Estimate current cart totals
```javascript
import { currentCartV2 } from "@wix/ecom";

async function estimateCurrentCart() {
  const response = await currentCartV2.estimateCurrentCart({
    calculateTax: true,
    calculateDelivery: true,
  });
}

/* Promise resolves to:
 * {
 *   "cart": {
 *     "_id": "ca727402-d5fb-4de4-afcd-e72738aad964",
 *     "_createdDate": "2026-07-28T15:05:04.494Z",
 *     "_updatedDate": "2026-07-28T15:06:58.626Z",
 *     "revision": "2",
 *     "lineItems": [
 *       {
 *         "_id": "00000000-0000-0000-0000-000000000001",
 *         "name": {
 *           "original": "Custom Engraving Service",
 *           "translated": "Custom Engraving Service"
 *         },
 *         "quantityInfo": {
 *           "confirmedQuantity": 1,
 *           "requestedQuantity": 1,
 *           "fixedQuantity": false
 *         },
 *         "pricing": {
 *           "unitPrice": {
 *             "amount": "49.99",
 *             "convertedAmount": "49.99"
 *           },
 *           "totalPrice": {
 *             "amount": "49.99",
 *             "convertedAmount": "49.99"
 *           },
 *           "priceUndetermined": false
 *         },
 *         "attributes": {
 *           "itemType": {
 *             "preset": "SERVICE"
 *           },
 *           "membersOnly": false
 *         },
 *         "paymentConfig": {
 *           "savePaymentMethod": false,
 *           "paymentOption": "FULL_PAYMENT_ONLINE"
 *         },
 *         "status": "IN_STOCK",
 *         "customLineItem": true
 *       }
 *     ],
 *     "subtotal": {
 *       "amount": "49.99",
 *       "convertedAmount": "49.99"
 *     },
 *     "businessInfo": {
 *       "languageCode": "en",
 *       "currencyCode": "USD"
 *     },
 *     "customerInfo": {
 *       "visitorId": "74950359-4b2c-4fb4-bb36-a3ad6f812cc9",
 *       "languageCode": "en",
 *       "currencyCode": "USD"
 *     },
 *     "deliveryInfo": {
 *       "weightUnit": "KG"
 *     },
 *     "taxInfo": {
 *       "pricesIncludeTax": false
 *     },
 *     "paymentInfo": {
 *       "currencyCode": "USD"
 *     },
 *     "orderPlaced": false,
 *     "purchaseFlowId": "0c8a24af-cbb0-4270-9f6e-3082084b12cb",
 *     "currentCart": true,
 *     "demo": false,
 *     "source": {
 *       "channelType": "WEB",
 *       "createdBy": {
 *         "visitorId": "74950359-4b2c-4fb4-bb36-a3ad6f812cc9"
 *       }
 *     }
 *   },
 *   "summary": {
 *     "cartId": "ca727402-d5fb-4de4-afcd-e72738aad964",
 *     "cartRevision": "2",
 *     "calculationId": "32f21b55-d162-4dd5-b925-a11aa8c84bb1",
 *     "lineItems": [
 *       {
 *         "lineItemId": "00000000-0000-0000-0000-000000000001",
 *         "quantity": 1,
 *         "unitPrice": {
 *           "amount": "49.99",
 *           "convertedAmount": "49.99"
 *         },
 *         "totalPrice": {
 *           "amount": "49.99",
 *           "convertedAmount": "49.99"
 *         }
 *       }
 *     ],
 *     "priceSummary": {
 *       "subtotal": {
 *         "amount": "49.99",
 *         "convertedAmount": "49.99"
 *       },
 *       "discount": {
 *         "amount": "0",
 *         "convertedAmount": "0"
 *       },
 *       "delivery": {
 *         "amount": "0",
 *         "convertedAmount": "0"
 *       },
 *       "additionalFees": {
 *         "amount": "0",
 *         "convertedAmount": "0"
 *       },
 *       "tax": {
 *         "amount": "0.00",
 *         "convertedAmount": "0.00"
 *       },
 *       "total": {
 *         "amount": "49.99",
 *         "convertedAmount": "49.99"
 *       }
 *     },
 *     "paymentSummary": {
 *       "requiresPaymentAfterGiftCard": true,
 *       "totalAfterGiftCards": {
 *         "amount": "49.99",
 *         "convertedAmount": "49.99"
 *       },
 *       "payNow": {
 *         "amount": "49.99",
 *         "convertedAmount": "49.99"
 *       },
 *       "payLater": {
 *         "amount": "0.00",
 *         "convertedAmount": "0.00"
 *       }
 *     },
 *     "priceVerificationToken": "JWS.eyJraWQiOiJyVmxqX19LcSIs..."
 *   }
 * }
 */

```

### estimateCurrentCart (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { currentCartV2 } from '@wix/ecom';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { currentCartV2 },
  // Include the auth strategy and host as relevant
});


async function estimateCurrentCart(options) {
  const response = await myWixClient.currentCartV2.estimateCurrentCart(options);
};
```

---