---
schema_version: "1"
id: b49c2e649338e661f443ecde2d7e9dff853ea546b1fee57d7b1f177519d57968
title: Cart Events Webhook
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/retail-cloud/reference/generated-api-specs/cart-events-webhook.md
canonical_url: https://developer.salesforce.com/docs/commerce/retail-cloud/references/cart-events-webhook
source_site: developer.salesforce.com
content_type: documentation
content_hash: c0472b37f2b01612132e4c61432a51b6681f8dbd6a4ddd82a4b2aff7bb012d6f
products:
  - Point of Sale for Developers
  - Salesforce APIs
---
Cart Events Webhook

# Cart Events Webhook

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/cart-events-webhook/cart-events-webhook-oas-public.yaml)

Sample APIs that demonstrate how to implement API endpoints or webhooks in the merchant's system. These endpoints must be configured in the POS system so that the POS can use them to send cart events data.

**Version:** 2.3.4

## Tags

### Cart Events Webhook

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/cart-events-webhook/cart-events-webhook-oas-public.yaml)

Sample APIs that demonstrate how to implement API endpoints or webhooks in the merchant's system. These endpoints must be configured in the POS system so that the POS can use them to send cart events data.

## Operations

### POST Send suspended cart information.

`POST /merchant/spi/sample/endpoint/sa/customer/cart/suspendCart`

Operation ID: `suspendCartWebhook`. Tags: Cart Events Webhook.

Send the cart details as payload to the external system whenever the cart is suspended on the app.

#### Request body

Media type: `application/json`. Schema: `CartPayload`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `SpiPSResponse`.
    

### POST Send voided cart information.

`POST /merchant/spi/sample/endpoint/sa/customer/cart/voidCart`

Operation ID: `voidCartWebhook`. Tags: Cart Events Webhook.

Send the cart details as payload to the external system when a void cart operation is done on the app.

#### Request body

Media type: `application/json`. Schema: `CartPayload`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `SpiPSResponse`.
    

## Schemas

### CartPayload

*   `cartId` (_string_) Cart ID.
*   `suspendedCartId` (_string_, nullable) Unique UUID value present for suspended carts. The value is different from the Cart ID.
*   `storeId` (_string_, nullable) Store ID.
*   `transactionId` (_string_) The unique identifier for this transaction, for example, Void cart.
*   `storeRegisterId` (_string_) Store Register ID. Local to each store.
*   `associateId` (_string_, nullable) Store Associate ID.
*   `cartType` (_string_) The type of cart payload ( Void cart or suspended cart).
*   `cartItemList` (_array of Product_) The list of products added to the cart.
*   `subTotal` (_number_) The subtotal amount of the products added to the cart.
*   `productPriceAdjustments` (_array of ProductPriceAdjustment_) The list of price adjustments done on the items in cart.
*   `orderPriceAdjustments` (_array of OrderPriceAdjustment_) The list of price adjustments done on the total order in the cart.
*   `promotionCodes` (_array of string_) The list of promotion codes applied to the items in cart.
*   `taxTotal` (_number_) The total tax amount for the items in cart.
*   `taxExemption` (_number_) The tax exemption applicable on the items in cart.
*   `transactionDiscountAmount` (_number_) The transaction discount amount for the items in cart.
*   `shippingAddress` (_Address_)
*   `billingAddress` (_Address_)
*   `shippingTotal` (_number_) The total Shipping amount in case of online orders.
*   `customerEmail` (_string_) The email address of the customer.
*   `profile` (_Profile_)
*   `reasons` (_array of Reason_, read-only, nullable) List of reasons pertaining to the actions performed on the cart. For example, reason for discounts applied to the order.
*   `fullfillmentType` (_string_) The fulfillment type of the order: IN\_STORE or ONLINE.  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `taxRates` (_array of OrderTaxRate_) Sale-side tax rate.
*   `taxExemptions` (_array of TaxExemptionRequest_) Sale-side tax exemptions.
*   `vatRates` (_array of OrderTaxRate_) Sale-side VAT rate.
*   `netTaxRates` (_array of OrderTaxRate_) Net tax rate calculated based on sale-side tax rate and return-side tax rate.
*   `netVatRates` (_array of OrderTaxRate_) Net VAT rate calculated based on sale-side VAT rate and return-side VAT rate.
*   `amountToBeCharged` (_number_) Amount to be charged.
*   `transactionDiscount` (_Discount_)
*   `exchangeItemRequests` (_array of ExchangeItemRequest_) Request for items that are being returned or exchanged.
*   `summary` (_CartSummary_)
*   `notesList` (_array of OrderNote_, nullable) The order-level notes.
*   `employee` (_Employee_)
*   `transactionStartDate` (_string (date-time)_) The timestamp when the cart was created.
*   `transactionDate` (_string (date-time)_) The timestamp when the cart was voided or suspended.
*   `rewardList` (_array of Reward_, nullable) List of rewards applied to the cart.
*   `tariffAmount` (_number_, nullable) Tariff amount applied to the cart.
*   `tariffRate` (_number_, nullable) Tariff rate applied to the cart.
*   `customerLoyaltyProfile` (_CustomerLoyaltyProfile_)
*   `loyaltyId` (_string_, nullable) Loyalty ID of the customer.
*   `pickUpDetailList` (_array of OrderPickUpDetail_, nullable) List of pickup details for the cart.
*   `shippingMethod` (_ShippingMethod_)
*   `deliveryGroups` (_array of DeliveryGroup_, nullable) List of delivery groups. Each delivery group has shipping address and corresponding shipping method.

### SpiPSResponse

*   `errorMessage` (_string_, nullable) Error message shown to the user.  
    Example: `Invalid request. Please check the request and try again.`.
*   `errorCode` (_string_, nullable) Error code shown to the user.  
    Example: `INTERNAL_ERROR`.
*   `error` (_boolean_)

### Product

The details of product's deposit. For example, order item ID, required deposit, and paid deposit.

*   `productId` (_string_, required) Product ID. Unique identifier of an item.  
    All the variations of an item will have distinct product id hence it is equivalent to SKU.
*   `variantGroupId` (_string_, required) Variant Group ID.  
    All the variants of an item are grouped together under the same variant id.
*   `name` (_string_, required) Name of the item.
*   `price` (_number_, required) Price of the item.
*   `quantity` (_integer (int32)_, required) Item's Quantity.
*   `productTax` (_ProductTax_)
*   `tax` (_number_, nullable) Total tax on this product.  
    Mandatory for tax countries and applies to products that are subject to taxation.  
    
*   `taxExemption` (_number_, nullable) Tax exemption amount  
    Applicable if the tax exemption is applied by store associate during checkout process.  
    
*   `valueAddedTax` (_number_, nullable) Total VAT on this product. Mandatory for VAT countries.
*   `orderItemId` (_string_, required) Sequence number assigned to this line item.  
    Must be unique within this order and must have numerical value.  
    Example: `It can have values like 1, 2, 3, etc...<br> which represents line item number within the order.`.
*   `imageURL` (_string_, required) Image URL of the item.It is used to display the image of the item in the cart, order summary screens. email.
*   `subTotal` (_number_, required) The total cost of the item is inclusive of VAT,  
    but exclusive of discounts, shipping fees, and taxes.
*   `discount` (_number_, nullable) Total discount applied on the item.  
    It is the sum of all the discounts applied on the item.  
    The discount includes manual price adjustments  
    (i.e. item level price override & transaction discount) and  
    promotions (i.e. coupons, auto promotion & reward coupon)  
    Mandatory if any type of discounts is applied.
*   `total` (_number_, required) Item's total — final amount charged for this item, inclusive of tax/vat and discounts.
*   `store` (_Store_)
*   `size` (_string_, required) Item's size.  
    Example: `39-42 or M or 38 etc...`.
*   `color` (_string_, required) Item's color.  
    Example: `Light Grey or Black etc...`.
*   `itemStatus` (_string_, required)
    
    Below is the list of statuses for in-store purchases and BORIS. The statuses are applicable for both the order and its items. The significance of each status is described in detail below.  
    The eligibility of an item for returns is determined by its current status and the status of the order. Moreover, the **returnsEligibility** attribute at the item level (productList, orderProductList) can also be used to regulate the return eligibility of an item.  
    To learn more about returns eligibility, please refer to the table below and orderProductList.returnsEligibility/productList.returnsEligibility  
      
    
    | Order Status | Display Name in Order History Filter | Significance for Order | Significance for Item | Return Eligibility |
    | --- | --- | --- | --- | --- |
    | COMPLETED | Completed | Successful sale transaction. | Item sold successfully. | Both the order and item are eligible for return. |
    | RETURNED | Returned | Successful return or exchange of all items with refund to customer. | Successful return of an item - whole quantity and is not eligible for return. | Both the order and item are not eligible for return. |
    | PARTIALLY\_REFUNDED | Partially Returned | Successful return or exchange of partial items with refund to customer. | Successful return of an item - partial quantity | Further returns are allowed on order as well as on item. |
    | EXCHANGED | Exchanged | Successful transaction that exchanges all items with no refund to customer | Successful exchanges of an item - whole quantity | Both the order and item are not eligible for return. |
    | PARTIALLY\_EXCHANGED | Partially Exchanged | Successful transaction that exchanges partial items with no refund to customer | Successful exchanges of an item - partial quantity | Further returns are allowed on order as well as on item. |
    | FAILED | Failed | Failed sale transaction. | Not applicable | Both the order and item are not eligible for return. |
    | PENDING | Pending | Sale transaction awaiting payment confirmation. For example, Remote Pay By Link | Not applicable | Both the order and item are not eligible for return. |
    
      
    Allowed values: `NEW`, `PROCESSING`, `PARTIALLY_SHIPPED`, `SHIPPED`, `CANCELED`, `COMPLETED`, `FAILED`, `RETURNED`, `PARTIALLY_REFUNDED`, `REWARD`, `PENDING`, `UNKNOWN`, `READY`, `PACK`, `UNPACK`, `PICKED`, `DELIVERED`, `CREATED`, `CANCELLED_WITH_REFUND`, `UNAVAILABLE`, `DAMAGED`, `EXCHANGED`, `PARTIALLY_EXCHANGED`, `RECREATED`, `FULFILLED`, `PENDING_ORDER`, `IN_TRANSIT`, `EDITED`.
*   `returnedDateTimeStamp` (_integer (int64)_, nullable) Timestamp when the item is returned.  
    Mandatory if the item is returned and is part of returnProductList  
    When importing an order from external system and if it has returnProductList, ensure to provide this returned date.
*   `totalAdditionalCharge` (_number_, nullable) Total additional charges applied on the item.  
    It is the sum of all the additional charges applied on the item.  
    Mandatory if any type of additional charges is applied.  
    Additional charges include CRV, Liquor Tax etc.
*   `additionalCharges` (_array of AdditionalCharge_, nullable) List of additional charges applied on the item.  
    It is used to capture additional charges like CRV, Liquor Tax etc.
*   `gtin` (_string_, required) Item's GTIN.
*   `fulfillmentType` (_string_, required) Item's fulfillment type. It can be either IN\_STORE (in-store purchase) or ONLINE (delivery item).  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `fulfillmentSubType` (_string_, required)
    
    1.  DEFAULT: Either item will be available from the current store for  
         cash & carry or for delivery to shipping address from a warehouse.  
          Fulfillment Type:IN\_STORE, Fulfillment Sub Type: DEFAULT : Cash & carry item  
        2\. TRY\_AT\_STORE: An item will be made available in the selected store for the trial.  The taxes and promotion will not be applied on the try at store items.  
        3\. PICKUP\_LATER: An item will be made available for pickup from the selected store.  The fulfillment will be done the current store itself, or another store.  
        4\. SHIP\_TO\_HOME: An item will be delivered to provided shipping address.  The fulfillment will be done by the current store itself,  or another store or a warehouse.  
        5\. SHIP\_TO\_STORE: An item will be delivered to a store from where it can be picked up. 6. PICKUP\_NEARBY: An item will be made available for pickup in near by store.  
        \----------------------------------------------------------------------------------  
        
    
    | Fulfillment Type | Fulfillment SubType | Item |
    | --- | --- | --- |
    | IN\_STORE | DEFAULT | Cash & carry |
    | ONLINE | DEFAULT | Ship to home from warehouse |
    | ONLINE | TRY\_AT\_STORE | Ship to store from warehouse to try out |
    | IN\_STORE | PICKUP\_LATER | Pickup from current store |
    | IN\_STORE | SHIP\_TO\_HOME | Ship to home from store |
    | IN\_STORE | SHIP\_TO\_STORE | Ship to a store from another store for pickup |
    | ONLINE | SHIP\_TO\_STORE | Ship to store from warehouse for pickup (buy online ship to store) |
    | IN\_STORE | PICKUP\_NEARBY | Pickup from another store |
    
    .
    
      
    Allowed values: `DEFAULT`, `BOSS`, `BOPIS`, `TRY_AT_STORE`, `PICKUP_LATER`, `SHIP_TO_HOME`, `SHIP_TO_STORE`, `PICKUP_NEARBY`.
*   `notesList` (_array of OrderDetailNote_, nullable) List of notes/comments captured at product level during order submission.If the notes are provided when importing an order from an external system,  
    they will be available for store associate in order history screen of POS App.  
    
*   `salesAssociateId` (_string_, required) The ID of the logged-in store associate.
*   `salesAssociateAttribution` (_array of OrderStoreAssociateAttribution_, nullable) Sales associate attribution.  
    If not provided, POS attributes the item to the logged-in store associate.  
    
*   `returnsEligibility` (_string_, nullable) Returns eligibility of the item.  
    It is used to determine if the item is eligible for returns or not.  
    When importing an order from an external system, item's return-eligibilitycan be controlled by providing appropriate value here.  
    CANNOT\_BE\_RETURNED blocks the return even if item's status is COMPLETED.  
      
    Allowed values: `ELIGIBLE_FOR_RETURNS`, `EXPIRED_RETURNS`, `CANNOT_BE_RETURNED`, `ELIGIBLE_FOR_CANCELS`, `INELIGIBILITY_FOR_RETURN_CROSS_CHANNEL`. Default: `ELIGIBLE_FOR_RETURNS`.
*   `returnsEligibilityText` (_string_) Returns eligibility information for the product, describing why it's ineligible for return. For example, BOFIS items that haven't shipped can't be returned. In that case, this field says 'Item not shipped yet' (applies when BOFIS orders are sent to PS Queue, that is, STH from CS enabled in Omni V2 settings). When an item can't be returned, this field says 'Cannot be returned'.  
    Maximum length: 128.
*   `appeasementEligibility` (_string_, nullable) Appeasement eligibility of the item.  
    It is used to determine if the item is eligible for price adjustment or not in edit order flow  
    When importing an order from an external system, item's appeasement-eligibilitycan be controlled by providing appropriate value here.  
    INELIGIBLE\_FOR\_APPEASEMENT blocks any adjustment even if item's status is COMPLETED.  
      
    Allowed values: `ELIGIBLE_FOR_APPEASEMENT`, `INELIGIBLE_FOR_APPEASEMENT`.
*   `cyoDetails` (_CyoDetails_)
*   `epc` (_string_, nullable) Electronic product code. Mandatory for items having epc/RFID.
*   `tlogCustomProductAttributes` (_string_, read-only, nullable) Custom product attributes.  
    It is used to capture custom attributes of the product.  
    If the product has any custom attributes, they will be captured here.  
    Store settings (**CMS** > **Store Management** > **Store Settings** > **OMS**\>  
    Order Export > tLogCustomProductAttributes) needs be configured with  
    the list of custom attributes to be populated here.  
    It it is not required when importing an order from an external system.  
    
*   `masterProductId` (_string_, nullable) Outfit Identification that groups together a set of items from a cart.  
    Commonly used in case product customizations like DYO (i.e. Customization Identification) or Alteration etc...Mandatory for alteration or DYO items.
*   `subProducts` (_array of Product_, nullable) The other items from the cart related to the current item.  
    Commonly used in case of customizations like Alteration as well as for add-on products.  
    Mandatory for alteration or add-on items.  
    No need to provide this attribute, when importing an order and  
    if the item doesn't have add-on item.
*   `productBundleId` (_string_, nullable) If the product is part of outfit or a product bundle, then provide the id which groups together all the items from the bundle.
*   `productClass` (_string_, required) Product class of the item.
*   `serialNumber` (_string_) Serial number of the item (if applicable).
*   `productCondition` (_string_, nullable) Product condition.  
    Allowed values: `NEW`, `USED`, `REFURBISHED`. Default: `NEW`.
*   `reasons` (_array of Reason_, nullable) List of reasons pertaining to the actions performed on the item. For example, reason for price override applied on the item or reason for returning the item.
*   `dateTimeSlot` (_DateTimeSlot_)
*   `promotionTitle` (_string_, nullable) Provides applicable promotion titles in pipe delimited format. If the item is qualified for multiple promotions, promotionTitle will have multiple titles in delimited form.It is used to display the promotion title on the item in order history screen of POS App.  
    Example: `Winter discount| Holiday special`.
*   `priceCorrection` (_OrderDetailPriceCorrection_)
*   `fulfillmentLocation` (_Store_)
*   `pickupLocation` (_Store_)
*   `deliveryGroupId` (_string_, nullable) Delivery Group Id - It is an identifier to the shipping details of the item.  
    It links the item to one of the delivery groups available in order level.  
    It is used for item level shipping method and address.  
    Mandatory for all delivery items if item level shipping method  
    or item level shipping address is enabled.  
    For more details, see:  
    1\. Item level shipping method:  
    [Retrieve Delivery and Pickup Dates via SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retrieve-delivery-pickup-dates-via-spi.html) 2. Item level shipment Address:  
    [Retrieve Delivery and Pickup Dates via SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retrieve-delivery-pickup-dates-via-spi.html)  
    Maximum length: 32.
*   `formAttributes` (_array of ProductFormAttribute_, nullable) Product from attributes.
*   `pickupDetailId` (_string_, nullable) Provide a link to the corresponding pickup details  
    from pickupDetailList available in the order. Applicable for pickup items.  
    
*   `registryId` (_string_, nullable) The unique ID of the registry. This is required when the item being purchased or returned is a gift registry item.
*   `requiredDeposit` (_number_) Required deposit for the product if deposit configuration is enabled for the store.
*   `paidDeposit` (_number_) Paid deposit for the product if deposit configuration is enabled for the store.
*   `originalPaidDeposit` (_number_)
*   `serializedUnitDetailList` (_array of SerializedUnitDetail_, nullable) Attributes for each individual unit of the product, for example, activation code or context code.
*   `customAttributeList` (_array of ProductFormAttribute_, read-only) Custom attributes related to the product.  
    All these attributes will be available at item level that are  
    configured in Store Setting: spiCustomProductAttributes.
    
    _Example_
    
    ```
    [
      {
        "key": "color",
        "value": "red"
      }
    ]
    ```
    
*   `itemTariff` (_number_, nullable) The item tariff amount at the time of sale. This value is retrieved from **CMS** > **Store Settings** > **Tariffs** and is included only when the tariff configuration is available in CMS.
*   `groupId` (_string_)
*   `returnRelated` (_boolean_)
*   `mainProduct` (_boolean_)
*   `shippingAddress` (_Address_)
*   `requiredDepositPercentage` (_number_)
*   `virtual` (_boolean_)

### ProductPriceAdjustment

*   `productId` (_string_)
*   `basePrice` (_string_)
*   `adjustedPrice` (_string_)
*   `priceAdjustments` (_array of PriceAdjustment_)
*   `orderItemId` (_string_)
*   `priceAfterItemDiscount` (_number_)
*   `priceAfterOrderDiscount` (_number_)
*   `totalAdjustedPrice` (_number_)
*   `totalTaxablePrice` (_number_)
*   `totalAddtionalCharge` (_number_)
*   `totalItemDiscount` (_number_)
*   `fulfillmentType` (_string_)  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `fulfillmentSubType` (_string_)
    
    1.  DEFAULT: Either item will be available from the current store for  
         cash & carry or for delivery to shipping address from a warehouse.  
          Fulfillment Type:IN\_STORE, Fulfillment Sub Type: DEFAULT : Cash & carry item  
        2\. TRY\_AT\_STORE: An item will be made available in the selected store for the trial.  The taxes and promotion will not be applied on the try at store items.  
        3\. PICKUP\_LATER: An item will be made available for pickup from the selected store.  The fulfillment will be done the current store itself, or another store.  
        4\. SHIP\_TO\_HOME: An item will be delivered to provided shipping address.  The fulfillment will be done by the current store itself,  or another store or a warehouse.  
        5\. SHIP\_TO\_STORE: An item will be delivered to a store from where it can be picked up. 6. PICKUP\_NEARBY: An item will be made available for pickup in near by store.  
        \----------------------------------------------------------------------------------  
        
    
    | Fulfillment Type | Fulfillment SubType | Item |
    | --- | --- | --- |
    | IN\_STORE | DEFAULT | Cash & carry |
    | ONLINE | DEFAULT | Ship to home from warehouse |
    | ONLINE | TRY\_AT\_STORE | Ship to store from warehouse to try out |
    | IN\_STORE | PICKUP\_LATER | Pickup from current store |
    | IN\_STORE | SHIP\_TO\_HOME | Ship to home from store |
    | IN\_STORE | SHIP\_TO\_STORE | Ship to a store from another store for pickup |
    | ONLINE | SHIP\_TO\_STORE | Ship to store from warehouse for pickup (buy online ship to store) |
    | IN\_STORE | PICKUP\_NEARBY | Pickup from another store |
    
    .
    
      
    Allowed values: `DEFAULT`, `BOSS`, `BOPIS`, `TRY_AT_STORE`, `PICKUP_LATER`, `SHIP_TO_HOME`, `SHIP_TO_STORE`, `PICKUP_NEARBY`.
*   `additionalCharges` (_array of AdditionalCharge_)

### OrderPriceAdjustment

The list of price adjustments done on the total order in the cart.

*   `description` (_string_)
*   `adjustment` (_number_)
*   `discount` (_Discount_)
*   `price` (_number_)
*   `promotionId` (_string_)
*   `fulfillmentType` (_string_)  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.

### Address

Address **Billing Address:** It contains first and last name of billing person. It is applicable if order is associated with signed-in customer or if an order requires billing address. Note: If item level shipping method or item level shipping address is enabled, use the shippingAddress from deliveryGroups. For more details, see:.

*   `salutation` (_string_, nullable) Salutation.
*   `firstName` (_string_) Customer first name saved for address.  
    Maximum length: 64.
*   `secondName` (_string_, nullable) Customer second name saved for address.  
    Maximum length: 64.
*   `lastName` (_string_, nullable) Customer last name saved for address.  
    Maximum length: 64.
*   `suffix` (_string_, nullable) Suffix.
*   `addressLine1` (_string_, required) Address Line 1.  
    Maximum length: 256.
*   `addressLine2` (_string_, nullable) Address Line 2.  
    Maximum length: 256.
*   `city` (_string_, required) City.  
    Maximum length: 64.
*   `state` (_string_, required) State.  
    Maximum length: 32.
*   `postalCode` (_string_, required) Postal Code.  
    Maximum length: 16.
*   `countryCode` (_string_, nullable) Country Code.  
    Maximum length: 32.
*   `phone` (_string_, nullable) Phone.  
    Maximum length: 24.
*   `storeId` (_string_, nullable) Store ID if it is store address.
*   `emailAddress` (_string_, nullable) Customer Email Address.
*   `country` (_string_, nullable) Country.
*   `defaultBilling` (_boolean_)
*   `defaultShipping` (_boolean_)

### Profile

Customer profile. In case of sale and return transactions, it is mandatory if a signed-in customer places an order or a return. Note: If an order is imported from an external system into POS, only customerId and alternateCustomerId from the profile object are used.

*   `customerId` (_string_, nullable) Customer ID. Optional for guest customer. Mandatory for logged-in customer.
*   `alternateCustomerId` (_string_, nullable) Alternate Customer ID.
*   `email` (_string_, nullable) Customer Email ID.  
    Optional for guest customer. Mandatory for logged-in customer.
*   `salutation` (_string_, nullable) Salutation.
*   `firstName` (_string_, nullable) Customer first name  
    Optional for guest customer. Mandatory for logged-in customer.
*   `secondName` (_string_, nullable) Customer second name.
*   `lastName` (_string_, nullable) Customer last name  
    Optional for guest customer. Mandatory for logged-in customer.
*   `suffix` (_string_, nullable) Suffix.
*   `address` (_object_) Customer address. In requests sent from POS to the merchant system: accepts any customer address (primary, secondary, or other). In responses returned to POS from the merchant system: contains the customer's primary address.
    
    Includes all fields of `Address`.
    
*   `phoneHome` (_string_, nullable) Phone Home.
*   `phoneMobile` (_string_, nullable) Phone Mobile. This is the primary phone number for the customer.
*   `phoneBusiness` (_string_, nullable) Phone Business.
*   `fax` (_string_, nullable) Fax.
*   `birthmonth` (_string_, nullable) Customer birth month. Not applicable for order related scenarios like export/import.
*   `wallets` (_array of Wallet_, nullable) Customer wallets containing tokenized cards for Card on File payments.  
    Optional field returned only when customer has stored cards.
*   `eReceipt` (_boolean_, nullable) Customer eReceipt indicator. Not applicable for order related scenarios like export/import.
*   `country` (_string_, nullable) Country.
*   `customerGroup` (_string_, nullable) Customer group. Not applicable for order related scenarios like export/import.
*   `preferredLanguage` (_string_, nullable) Preferred language. Not applicable for order related scenarios like export/import.
*   `allowSmsNotifications` (_boolean_, nullable) SMS sign up checkbox. Not applicable for order related scenarios like export/import.
*   `loyaltyId` (_string_, nullable) Loyalty Id of the customer.
*   `logoUrl` (_string_, nullable) The URL for the logo to be displayed for loyalty customers. Not applicable for order related scenarios like export/import.

### Reason

Reason for returning the item.

*   `reasonCodeType` (_string_, required) Type for reason codes. It can be one of TRANSACTION\_DISCOUNT, PRICE\_OVERRIDE, RETURNS, BANK\_DEPOSIT, TILL\_RECONCILIATION, TILL\_CASH\_OUT.  
    Allowed values: `TRANSACTION_DISCOUNT`, `PRICE_OVERRIDE`, `RETURNS`, `BANK_DEPOSIT_VARIANCE`, `TILL_RECONCILIATION_VARIANCE`, `TILL_CASH_OUT`, `PRICE_CORRECTION`, `RETURN_PRICE_CORRECTION`, `EXCLUDE_ITEM_FROM_CYCLE_COUNT`, `INVENTORY_ADJUSTMENT`, `SAFE_FLOAT_UPDATE`, `TILL_FLOAT_UPDATE`, `TILL_CASH_IN`, `TILL_NO_SALE`, `VOID_CART`, `EXPENSE_UPDATE`, `MISC_EXPENSE1_UPDATE`, `MISC_EXPENSE2_UPDATE`, `INVENTORY_ITEM_RECEIVE_MISMATCH`, `OFFLINE_GHOST_TILL`, `DELETE_ITEM`, `CORP_CANCELLATION`, `FULFILLMENT_CANCELLATIONS`. Maximum length: 64.
*   `reasonCode` (_string_, required) Reason code.  
    Maximum length: 64.
*   `reasonText` (_string_, nullable) Reason text.  
    Maximum length: 256.

### OrderTaxRate

VAT breakup for return items.

*   `countryCode` (_string_, required) Country Code.  
    Maximum length: 2. Example: `US`.
*   `state` (_string_, nullable) State. Applicable if the tax rate is specific to state.  
    Maximum length: 128.
*   `postalCode` (_string_, nullable) Postal Code. Applicable if the tax rate is specific to postal code.  
      
    Maximum length: 10.
*   `taxType` (_string_, required) Indicates the tax type, such as COUNTRY, CITY, or STATE. The following tax types are specific to the Vertex tax engine: PROVINCE, TERRITORY, APO, BOROUGH, FPO, LOCAL\_IMPROVEMENT\_DISTRICT, PARISH, SPECIAL\_PURPOSE\_DISTRICT, TOWNSHIP, TRADE\_BLOCK, and TRANSIT\_DISTRICT.  
    Allowed values: `CLASS`, `CITY`, `DISTRICT`, `COUNTY`, `STATE`, `COUNTRY`, `ITEM_OVERRIDE`, `STORE_OVERRIDE`, `TRANSACTION_OVERRIDE`, `SPECIAL`, `PROVINCE`, `TERRITORY`, `APO`, `BOROUGH`, `FPO`, `LOCAL_IMPROVEMENT_DISTRICT`, `PARISH`, `SPECIAL_PURPOSE_DISTRICT`, `TOWNSHIP`, `TRADE_BLOCK`, `TRANSIT_DISTRICT`.
*   `chargeType` (_string_) Indicates if the charge is for tax or fee - TAX/FEE.  
    Default: `TAX`.
*   `nonRefundable` (_boolean_) Indicates if the charge (tax or fee) is refundable.  
    Default: `false`.
*   `taxRate` (_number (float)_, required) % tax/vat rate.  
    Example: `7.25`.
*   `taxClass` (_string_, required) Tax class corresponding to the tax rate.  
      
    Example: `Tax Class for Shoes and Clothing - PS0001`.
*   `taxCode` (_string_, required) Tax Identifier. Unique identifier for a tax rate. Unique per item.
*   `taxAmount` (_number_, required) Total tax amount for the item corresponding to the tax rate for the order.  
    Example: `7.25`.
*   `taxName` (_string_, required) Tax name, for example, Jurisdiction, MTA, BTW Hoog, or BTW Laag.  
    Maximum length: 64.
*   `displayTaxName` (_string_, required) Display tax name, for example, Jurisdiction - 7.25%, BTW Hoog - 21%, or BTW Laag - 9%.
*   `returnedTaxAmount` (_number_) Sum of returned tax amounts of a particular type (group of TaxType, TaxClass, TaxName, TaxRate) across returned products.
*   `remainingTaxAmount` (_number_) Sum of tax amounts of a particular type(group of TaxType, TaxClass, TaxName, TaxRate) across non-returned products.
*   `corporateTaxId` (_string_, nullable) Print tax name for receipts.  
    Includes the merchant's tax identification number, for example, HST-74252RT0001 - 7.25%.
*   `printTaxName` (_string_, nullable) Print tax name for receipts. Includes merchant's tax identification number. For example: HST-74252RT0001 - 7.25%.
*   `externalTaxId` (_string_, nullable) Additional Tax Identifier for Merchant Systems.
*   `effectiveDate` (_integer (int64)_) Effective date of the current tax rate in epochMillis. Use the epoch values as-is without applying in offset.
*   `subTotal` (_number_, nullable) Sum of product prices excluding the VAT amount. Applicable only for VAT enabled countries because for non VAT countries a product can have two rates applied to it. " Product is not necessarily exclusive to a single tax rate in non VAT scenario.Only Products that fall under particular VAT rate are considered.
*   `total` (_number_, nullable) Sum of product prices including the VAT amount. Applicable only for VAT enabled countries because for non VAT countries a product can have two rates applied to it. Product is not exclusive to a single tax rate in non VAT scenario. Only Products that fall under particular VAT rate are considered.
*   `taxDescription` (_string_, nullable) Tax Description text.
*   `jurisdiction` (_string_, nullable) Jurisdiction.  
    Maximum length: 128.
*   `registrationNumber` (_string_, nullable) Registration Number.  
    Maximum length: 128.
*   `externalId` (_string_, nullable) Identifies the current tax record in the external system. This is a record identifier, not a tax identifier. Used when an order is imported from an external system. Orders placed directly through POS don't populate this identifier. The external system provides this identifier and POS replays it during order posting for subsequent modifications such as returns.  
    Maximum length: 128.

### TaxExemptionRequest

Sale side tax exemptions.

*   `cartId` (_string_, nullable) Cart ID. Backend populates it internally from path param. It is optional for app to provide it if the API endpoint contains the cartId as path param.
*   `customerId` (_string_, nullable) Customer ID.
*   `offlineMode` (_boolean_, nullable) Flag for offline mode.
*   `taxExemptCode` (_string_, required) Tax exemption tax code.  
    Maximum length: 128.
*   `customerName` (_string_, required) Customer name for customer having tax exemption applied.  
    Maximum length: 128.
*   `cardNumber` (_string_, required) Customer tax exemption card number.  
    Maximum length: 64.
*   `notes` (_string_, nullable) Optional notes for tax exemption.  
    Maximum length: 128.
*   `displayTaxName` (_string_) Display Tax Name to be printed on UI.
*   `printTaxName` (_string_) Tax Name to be printed on receipt.
*   `taxExemptionRate` (_number (float)_, required) Tax exemption rate.  
    Example: `7.25`.
*   `taxType` (_string_, nullable) Indicates the tax type, such as COUNTRY, CITY, or STATE. The following tax types are specific to the Vertex tax engine: PROVINCE, TERRITORY, APO, BOROUGH, FPO, LOCAL\_IMPROVEMENT\_DISTRICT, PARISH, SPECIAL\_PURPOSE\_DISTRICT, TOWNSHIP, TRADE\_BLOCK, and TRANSIT\_DISTRICT.  
    Allowed values: `CLASS`, `CITY`, `DISTRICT`, `COUNTY`, `STATE`, `COUNTRY`, `ITEM_OVERRIDE`, `STORE_OVERRIDE`, `TRANSACTION_OVERRIDE`, `SPECIAL`, `PROVINCE`, `TERRITORY`, `APO`, `BOROUGH`, `FPO`, `LOCAL_IMPROVEMENT_DISTRICT`, `PARISH`, `SPECIAL_PURPOSE_DISTRICT`, `TOWNSHIP`, `TRADE_BLOCK`, `TRANSIT_DISTRICT`.
*   `taxExemptName` (_string_, nullable) Tax exemption name.  
    Maximum length: 128.

### Discount

Transaction discount applied on the cart with information like discount type and discount value. In online mode it is copied from app's request payload for transaction discount and in case of offline mode it is copied from app's submit order request.

*   `discountType` (_string_, nullable) Discount types 1. Amount: Item price or transaction-total reduced by provided amount, 2. PERCENT: Item price or transaction-total reduced by amount calculated based on provided percentage and item price/transaction-total, 3. FLAT\_PRICE: Item price is reduced to the provided amount. Not applicable to transaction discounts. The discount amount is then calculated by subtracting entered flat\_price from item-price.  
    Allowed values: `AMOUNT`, `PERCENT`, `FLAT_PRICE`, `AMOUNT, PERCENT`. Default: `AMOUNT`.
*   `discount` (_number_, required) Discount either in percentage or in amount.

### ExchangeItemRequest

Request for items that are being returned or exchanged.

*   `storeAssociateId` (_string_, required) ID of the store associate who performs the returns.
*   `storeId` (_string_, required) ID of the store where the return is being performed.
*   `installationId` (_string_, required) Installation ID of the register from where the return is being performed.
*   `noReceiptReturns` (_boolean_, nullable) Flag to indicate returns without receipt.  
    Default: `false`.
*   `receiptType` (_string_, nullable) Receipt type enum.  
    Allowed values: `ORDER`, `QUOTE`, `GIFT`, `GIFT_SKU_LEVEL`, `GIFT_REWARD_CARD`, `INVENTORY_TRANSFER_PACKING_SLIP`, `PO_ORDER`, `STORE_TO_STORE_TRANSFER`, `RETURN_TO_VENDOR_TRANSFER`, `PICK_LIST`.
*   `editOrderId` (_string_, nullable) Set in case of edit order mode. Value will be same as orderId.
*   `refundFees` (_array of RefundFee_) Refund fees applied when cancelling or returning items from an order during the edit order flow.
*   `offlineMode` (_boolean_) Flag to indicate whether returns or exchange is being performed in offline mode or not.
*   `returnProducts` (_array of ReturnProductIdentification_) Returning item's orderItemId and quantity.
*   `taxRates` (_array of OrderTaxRate_, nullable) Tax breakup for return items.
*   `vatRates` (_array of OrderTaxRate_, nullable) VAT breakup for return items.
*   `paidAmount` (_number_) Used in edit order flow. Amount already paid as part of original order.
*   `storeAttribution` (_StoreAttribution_)
*   `productPriceAdjustments` (_array of ProductPriceAdjustment_)
*   `employee` (_Employee_)
*   `orderSource` (_string_, nullable) Order Source - Indicates channel from where the order originated.  
    Allowed values: `DEFAULT`, `IN_STORE`, `POPUP_STORE`, `WEB`, `APP`, `OUTLET_STORE`, `ONLINE`, `POS_EA`.
*   `tariffRate` (_number_, nullable) The tariff rate at the time of sale. This value is retrieved from **CMS** > **Store Settings** > **Tariffs and** is included only when the tariff configuration is available in CMS.
*   `tariffAmount` (_number_, nullable) The tariff amount at the time of sale. This value is retrieved from **CMS** > **Store Settings** > **Tariffs** and is included only when the tariff configuration is available in CMS.
*   `giftCardCashOut` (_boolean_)
*   `exchangeOrderPaymentDetails` (_array of ExchangeOrderPaymentDetail_)

### CartSummary

Payload that contains summary of cart totals.

*   `saleSummary` (_TransactionSummary_)
*   `refundSummary` (_TransactionSummary_, required)
*   `netSummary` (_TransactionSummary_, required)
*   `depositSummary` (_TransactionDeposit_)

### OrderNote

The Order level notes.

*   `orderId` (_string_) Order Identifier.
*   `noteId` (_string_, required) Unique Identifier for the Note.  
    Maximum length: 128.
*   `noteText` (_string_, required) Note Text.  
    Maximum length: 1024.
*   `transactionId` (_string_, required) Unique Identifier for the Transaction.  
    Maximum length: 128.
*   `createdBy` (_string_, required) Associate Id of the User who created the Note.  
    Maximum length: 128.
*   `modifiedBy` (_string_, nullable) Associate Id of the User who modified the Note.  
    Maximum length: 128.
*   `createdOn` (_integer (int64)_, required) Creation Date of the Note in epoch milliseconds.
*   `modifiedOn` (_integer (int64)_, nullable) Modification Date of the Note in epoch milliseconds.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### Employee

Employee information. It is applicable for orders with employee discount.

*   `employeeId` (_string_, required) Identification of employee.  
    Maximum length: 128.
*   `firstName` (_string_, required) Employee's first name.  
    Maximum length: 128.
*   `lastName` (_string_, nullable) Employee's last name.  
    Maximum length: 128.
*   `email` (_string_, nullable) Employee's email.  
    Maximum length: 128.
*   `promotionIdList` (_array of string_, nullable) List of promotion IDs valid for the employee.
*   `merchantPromotionIdList` (_array of string_, nullable) List of merchant promotion IDs valid for the employee.
*   `approvingEntity` (_ApprovingEntity_)

### Reward

Earned rewards.

*   `issueDate` (_integer (int64)_)
*   `expiryDate` (_integer (int64)_)
*   `description` (_string_)
*   `amount` (_number_) Amount value of the reward. Required for reward types : Discount and Tender.
*   `rewardName` (_string_)
*   `code` (_string_)
*   `pin` (_string_)
*   `codeType` (_string_)
*   `labelText` (_string_)
*   `disclaimerText` (_string_)
*   `rewardType` (_string_)  
    Allowed values: `Discount`, `Coupon`, `Tender`.
*   `isImageOnly` (_boolean_)
*   `rewardImageURL` (_string_)
*   `rewardInputType` (_string_)
*   `status` (_string_)  
    Allowed values: `REDEEMED`, `EXPIRED`, `AVAILABLE`, `CANCELLED`.
*   `statusDesc` (_string_)
*   `canRedeemNow` (_boolean_)
*   `redeemedDate` (_integer (int64)_)
*   `customAttributes` (_object_)
    
    Additional properties: `object`.
    
*   `rewardId` (_string_, required, read-only) The ID of the loyalty reward. In the case of reward coupon,  
    it will be coupon code. In the case of discount reward, it is unique identifier.  
    Maximum length: 512.
*   `combinable` (_boolean_) Specifies whether multiple rewards can be applied to the same cart.
*   `points` (_integer (int32)_, nullable) Optional points value for the reward, if sent, it will be used for display and for validation against the current points of the customer ( loyaltyProfile.currentPoints).

### CustomerLoyaltyProfile

The loyalty profile of the customer if they are enrolled in Loyalty program.

*   `loyaltyId` (_string_) Loyalty Id of the customer.
*   `firstName` (_string_) Customer's first name.
*   `lastName` (_string_) Customer's last name.
*   `accountNumber` (_string_) Customer's loyalty account number.
*   `loyaltyStatusCode` (_string_, nullable) Customer's loyalty status code.
*   `currentPoints` (_integer (int32)_, nullable) Customer's current loyalty points. If provided, it will be used for validation against the individual reward points (If points are sent in reward).
*   `currentStoreCredit` (_number (double)_, nullable) Customer's current store credit.
*   `lifetimePoints` (_integer (int32)_, nullable) Loyalty point accumulated so far by the customer.
*   `nextRewardPoints` (_integer (int32)_, nullable) Loyalty point eligible for next reward cycle.
*   `transactions` (_Transactions_)
*   `rewards` (_array of Reward_, nullable) Earned rewards.
*   `tierLevelLabel` (_string_, nullable) Customer's tier level label.
*   `tierLevelValue` (_string_, nullable) Customer's tier level value.
*   `tierLevelCode` (_string_, nullable) Customer's tier level code.
*   `redemptionType` (_string_)
*   `internalMemberId` (_string_, nullable) Customer's internal member ID.
*   `homePhoneNumber` (_string_, nullable) Customer's home phone number.
*   `mobilePhoneNumber` (_string_, nullable) Customer's mobile phone number.
*   `address` (_Address_)
*   `currentTier` (_Tier_)
*   `nextTier` (_Tier_)
*   `customLoyaltyAttributes` (_CustomAttributes_)
*   `totalRewardsAmount` (_number_, nullable) Total amount value of all the rewards available for the customer. If provided, this will be used for validation when applying the individual rewards.
*   `loyaltyIdBarCodeType` (_string_)

### OrderPickUpDetail

List of pick up details for the cart.

*   `orderId` (_string_) Order Identifier.
*   `pickupDetailId` (_string_, required) Unique ID for the order pickup detail. Each pickup item from productList and orderProductList has a reference to this ID.  
    Maximum length: 128.
*   `storeId` (_string_, required) ID of the store from where the items are picked up.  
    Maximum length: 128.
*   `firstName` (_string_, required) First name of the person who is picking up the order.  
    Maximum length: 128.
*   `lastName` (_string_, required) Last name of the person who is picking up the order.  
    Maximum length: 128.
*   `email` (_string_, required) Email of the person who is picking up the order.  
    Maximum length: 128.
*   `phone` (_string_, required) Phone number of the person who is picking up the order.  
    Maximum length: 128.
*   `pickupDate` (_string (date-time)_, nullable) Customer pickup date & time. Used for SLA visibility (BOPIS).
*   `pickupDateTimestamp` (_integer (int64)_, nullable) Customer pickup date & time in epoch milliseconds.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### ShippingMethod

Available shipping methods corresponding to this delivery group.

*   `shippingMethodId` (_string_, required) Unique Identifier for the Shipping Method.  
    Maximum length: 45. Example: `001`.
*   `name` (_string_, required) Shipping Method Name.  
    Maximum length: 128. Example: `Standard Shipping`.
*   `description` (_string_, nullable) Shipping Method Description.  
    Maximum length: 128.
*   `carrier` (_string_, nullable) Shipping carrier, for example, UPS, USPS, FedEx, or DHL.  
    Maximum length: 32. Example: `UPS`.
*   `serviceLevel` (_string_, nullable) Service Level Description.  
    E.g. 3-5 Days, 1-Day, Express, Standard, Overnight.  
    Maximum length: 128. Example: `3-5 Days`.
*   `price` (_number_, required) Shipping cost.
*   `priceAdjustments` (_array of PriceAdjustment_, nullable) Price adjustments after applying shipping level promotion. Supported PriceAdjustmentType - PROMOTION only.
*   `priceAfterShippingDiscount` (_number_, nullable) Price after applying shipping discount.
*   `sortOrder` (_integer (int32)_) Display Order.  
    Default: `0`.
*   `taxRates` (_array of ProductTaxRate_, nullable) Tax breakdown for the shipping cost. Applicable for tax countries and if the shipping cost is taxable.
*   `vatRates` (_array of ProductTaxRate_, nullable) VAT breakdown for the shipping cost. Applicable for VAT countries and if the shipping cost is taxable.
*   `shippingTax` (_number_, nullable) Tax amount for the shipping cost. Applicable for tax countries and if the shipping cost is taxable.
*   `shippingValueAddedTax` (_number_, nullable) VAT amount for the shipping cost. Applicable for vat countries and if the shipping cost is taxable.
*   `taxClass` (_string_, deprecated) Refer taxRates or vatRates instead to know the tax class.
*   `taxExemption` (_number_, nullable) Tax exemption amount for the shipping cost. Applicable for tax countries and if the shipping cost is taxable and tax exemption is applied.
*   `deliveryDate` (_integer (int64)_, required) Expected delivery date in epoch in millis.
*   `deliveryTimeSlot` (_string_, required) Expected delivery time slot.  
    Example: `09:00 - 12:00`.
*   `itemLevelCharges` (_array of ItemLevelCharge_, nullable) Item level breakdown for the shipping cost and shipping discount.

### DeliveryGroup

List of delivery groups. Each delivery group has shipping address and corresponding shipping method.

*   `deliveryGroupId` (_string_, required) Delivery group ID. Each delivery item from productList and orderProductList has a reference to this ID.  
    Maximum length: 32.
*   `fulfillmentType` (_string_, required) Fulfillment type.  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `fulfillmentSubType` (_string_, required)
    
    1.  DEFAULT: Either item will be available from the current store for  
         cash & carry or for delivery to shipping address from a warehouse.  
          Fulfillment Type:IN\_STORE, Fulfillment Sub Type: DEFAULT : Cash & carry item  
        2\. TRY\_AT\_STORE: An item will be made available in the selected store for the trial.  The taxes and promotion will not be applied on the try at store items.  
        3\. PICKUP\_LATER: An item will be made available for pickup from the selected store.  The fulfillment will be done the current store itself, or another store.  
        4\. SHIP\_TO\_HOME: An item will be delivered to provided shipping address.  The fulfillment will be done by the current store itself,  or another store or a warehouse.  
        5\. SHIP\_TO\_STORE: An item will be delivered to a store from where it can be picked up. 6. PICKUP\_NEARBY: An item will be made available for pickup in near by store.  
        \----------------------------------------------------------------------------------  
        
    
    | Fulfillment Type | Fulfillment SubType | Item |
    | --- | --- | --- |
    | IN\_STORE | DEFAULT | Cash & carry |
    | ONLINE | DEFAULT | Ship to home from warehouse |
    | ONLINE | TRY\_AT\_STORE | Ship to store from warehouse to try out |
    | IN\_STORE | PICKUP\_LATER | Pickup from current store |
    | IN\_STORE | SHIP\_TO\_HOME | Ship to home from store |
    | IN\_STORE | SHIP\_TO\_STORE | Ship to a store from another store for pickup |
    | ONLINE | SHIP\_TO\_STORE | Ship to store from warehouse for pickup (buy online ship to store) |
    | IN\_STORE | PICKUP\_NEARBY | Pickup from another store |
    
    .
    
      
    Allowed values: `DEFAULT`, `BOSS`, `BOPIS`, `TRY_AT_STORE`, `PICKUP_LATER`, `SHIP_TO_HOME`, `SHIP_TO_STORE`, `PICKUP_NEARBY`.
*   `shippingMethod` (_ShippingMethod_, required)
*   `shippingAddress` (_Address_, required)
*   `dateTimeSlot` (_DateTimeSlot_, required)
*   `availableDateTimeSlotList` (_array of DateTimeSlot_) Available delivery date time slots.
*   `willCallDate` (_DateTimeSlot_)
*   `deliveryDatePickerOption` (_string_) Determines what action to take for the delivery date picker.  
    Allowed values: `ENABLED`, `DISABLED`.
*   `shippingMethodList` (_array of ShippingMethod_, nullable) Available shipping methods corresponding to this delivery group.
*   `sortOrder` (_integer (int32)_)
*   `fulfillmentAddress` (_Address_)
*   `externalDeliveryGroupId` (_string_, nullable) External delivery group id: This ID can be provided when importing an order into POS from an external system. While POS does not use this ID for internal processing, it saves the ID and relays it back to the external system during order posting after any modification.  
    Maximum length: 128.

### ProductTax

Product tax details. Mandatory for tax/vat countries and applies to products that are subject to taxation.

*   `totalTax` (_number_, nullable) Total tax. Applicable for tax countries and if the item is taxable.
*   `taxExemption` (_number_, nullable) Tax Exemption. Applicable for tax countries and if the item is taxable but then the tax exemption is applied.
*   `taxRates` (_array of ProductTaxRate_, nullable) Tax rate breakdown for the item. Applicable for tax countries and taxable items. Optional when importing an order from an external system. Used to display the tax breakdown on printed receipts and order history screens. If not provided, the breakdown will not be displayed.
*   `vatRates` (_array of ProductTaxRate_, nullable) VAT rate breakdown for the item. Applicable for VAT countries and taxable items. Optional when importing an order from an external system. Used to display the VAT breakdown on printed receipts and order history screens. If not provided, the breakdown will not be displayed.
*   `valueAddedTax` (_number_, nullable) Total value added tax, Required in case of VAT countries.
*   `taxableAmount` (_number_, required) Taxable amount.

### Store

Pickup location - POS enables the store to place an order in one store and allow the customer to pick up the order from another store (i.e., IN\_STORE/SHIP\_TO\_STORE). In such a case, pickup store information is maintained here.

*   `storeId` (_string_, required) Store ID field to be provided by app.
*   `name` (_string_, required) Store name.
*   `addressLine1` (_string_, required) Store Address Line1.
*   `addressLine2` (_string_, nullable) Store Address Line2.
*   `city` (_string_, required) City.
*   `state` (_string_, required) State.
*   `postalCode` (_string_, nullable) Postal code. Mandatory if the store is configured in CMS with postal code.
*   `countryCode` (_string_, required) Country Code.
*   `email` (_string_, nullable) Store's email ID. Mandatory if the store is configured in CMS with email ID.
*   `phone` (_string_, nullable) Store's phone. Mandatory if the store is configured in CMS with phone.
*   `fax` (_string_, nullable) Store's fax. Mandatory if the store is configured in CMS with fax.
*   `hours` (_array of Hours_, nullable) Store's operational hours. Mandatory if the store is configured in CMS with operational hours.
*   `latitude` (_number (double)_, nullable) Store's latitude. Mandatory if the store is configured in CMS with latitude.
*   `longitude` (_number (double)_, nullable) Store's longitude. Mandatory if the store is configured in CMS with longitude.
*   `storeType` (_string_, nullable) Store type.  
    Allowed values: `Regular`, `Popup`, `Outlet`, `Ecomm`, `Warehouse`, `DistributionCenter`, `Vendor`. Default: `Regular`.
*   `timeZoneId` (_string_, nullable) Store's timezone ID. Mandatory if the store is configured in CMS with timezone ID.
*   `storeGroupID` (_string_)

### AdditionalCharge

*   `display` (_string_)
*   `value` (_number_)
*   `sku` (_string_)
*   `taxable` (_boolean_)
*   `linkedProductId` (_string_)
*   `price` (_number_)
*   `quantity` (_integer (int32)_)
*   `orderItemId` (_string_)
*   `transactionId` (_string_)

### OrderDetailNote

List of notes/comments captured at product level during order submission. If the notes are provided when importing an order from an external system, they will be available for store associate in order history screen of POS App.

*   `orderId` (_string_) Order Identifier.
*   `noteId` (_string_, required) Unique Identifier for the Note.  
    Maximum length: 128.
*   `noteText` (_string_, required) Note Text.  
    Maximum length: 1024.
*   `transactionId` (_string_, required) Unique Identifier for the Transaction.  
    Maximum length: 128.
*   `createdBy` (_string_, required) Associate Id of the User who created the Note.  
    Maximum length: 128.
*   `modifiedBy` (_string_, nullable) Associate Id of the User who modified the Note.  
    Maximum length: 128.
*   `createdOn` (_integer (int64)_, required) Creation Date of the Note in epoch milliseconds.
*   `modifiedOn` (_integer (int64)_, nullable) Modification Date of the Note in epoch milliseconds.
*   `orderItemId` (_string_, required) Order Item Id of the product for which the note is added.  
    Maximum length: 128.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### OrderStoreAssociateAttribution

Sales associate attribution.  
If not provided, POS attributes the item to the logged-in store associate.  

*   `orderId` (_string_) Order Identifier.
*   `orderItemId` (_string_)
*   `storeId` (_string_)
*   `storeAssociateId` (_string_)
*   `contributionPercentage` (_number_)
*   `attributionNote` (_string_)
*   `firstName` (_string_)
*   `lastName` (_string_)
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### CyoDetails

Payload for CYO - Create Your Own. It is used in multiple use cases like Alterations, DYO, Special Item and Fluid.

*   `type` (_string_, required) Type of customization applied on the product.  
    Allowed values: `Fluid`, `ALTERATIONS`, `DYO`, `SPECIAL_ITEM`, `Fluid, ALTERATIONS, DYO, SPECIAL_ITEM`.
*   `id` (_string_, required) Customization Identification.
*   `payload` (_string_, required) Customization payload containing details specific to the modifications.
*   `customizeUrl` (_string_, nullable) URL for the page or image having finalized customization.
*   `attributes` (_array of CustomField_, nullable) Custom Field.
*   `price` (_number_, required) Customization Price.

### DateTimeSlot

Backup delivery date if slots are unavailable. Default can be set via 'deliveryDatePickerWillCall' in Store settings.

*   `slotId` (_string_) Slot ID.  
    Example: `1234`.
*   `slotDate` (_integer (int64)_, required) Delivery date in epoch.
*   `selectedTimeSlot` (_string_, required) Time slot.  
    Example: `09:00 - 12:00`.
*   `dateTimeSlotType` (_string_, nullable) Time slot type.  
    Allowed values: `Delivery`, `Pickup`. Default: `Delivery`.

### OrderDetailPriceCorrection

If price correction is enabled, the manager can correct the price of the  
item during checkout. The information like original price, approving manager id is  
maintained here after price correction is applied.

*   `orderId` (_string_) Order Identifier.
*   `orderItemId` (_string_, required) Order Item Identifier.  
    Maximum length: 128.
*   `originalPrice` (_number_, required) Original price of the item.
*   `approvingManagerId` (_string_, required) ID of the store manager who has approved the price correction request.  
    Maximum length: 128.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### ProductFormAttribute

Details about a product form attribute.

*   `key` (_string_) The identifier of the attribute.  
    Example: `color`.
*   `value` (_string_) The value associated with the key.  
    Example: `blue`.

_Example_

```
[
  {
    "key": "color",
    "value": "red"
  }
]
```

### SerializedUnitDetail

Attributes for each individual unit of the product, for example, activation code or context code.

*   `activationCode` (_string_) The activation code of the serialized unit detail.
*   `contextCode` (_string_) The context code of the serialized unit detail.
*   `orderItemId` (_string_) The order item id of the serialized unit detail.

### PriceAdjustment

Price adjustments after applying shipping level promotion. Supported PriceAdjustmentType is PROMOTION only.

*   `description` (_string_, nullable) The price adjustment description will display the promotion name for coupon codes and the reason text for transaction discounts and price overrides. While importing an order from an external system, it is optional.  
    Maximum length: 1500.
*   `adjustment` (_string (-XX.XXX or XX.XXX)_) The discount amount for display purposes. It will be negative for sold items and shipping charges and positive for returned items.  
    Example: `-155.5`.
*   `price` (_number (-XX.XXX or XX.XXX)_) The discount amount. It will be negative for sold items and shipping charges and positive for returned items.  
    Example: `-155.5`.
*   `id` (_string_) Price adjustment ID. In case of promotions, it is promotion ID. For price override and transaction discount, it is GUID.
*   `priceAdjustmentType` (_string_) Price adjustment type.  
    Allowed values: `PRICE_OVERRIDE`, `PROMOTION`, `FEES`, `REWARDS`, `TRANSACTION_DISCOUNT`.
*   `auto` (_boolean_, nullable) Specifies whether the promotion is automatically applied or not. Applicable only for promotions.
*   `fulfillmentType` (_string_)  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `promoCode` (_string_, nullable) Promotion code provided by customer to apply specific promotion. Applicable only for promotions.
*   `merchantPromotionId` (_string_, nullable) External promotion ID corresponding applied promotion.  
    It is used to identify the promotion in external system and is relevant  
    only if it is configured in CMS  
    Applicable only for promotions.
*   `reasons` (_array of Reason_, read-only, nullable) List of reasons pertaining to the price adjustment. Applicable only for PRICE\_OVERRIDE or TRANSACTION\_DISCOUNT.
*   `quantity` (_integer (int32)_, read-only, nullable) Applicable only for Product level Promotion price adjustments.
*   `discountValue` (_number_, nullable) Applicable only for PRICE\_OVERRIDE OR TRANSACTION\_DISCOUNT.It will hold discount value either in percentage or in amount format.
*   `discountType` (_string_, nullable) Discount types 1. Amount: Item price or transaction-total reduced by provided amount, 2. PERCENT: Item price or transaction-total reduced by amount calculated based on provided percentage and item price/transaction-total, 3. FLAT\_PRICE: Item price is reduced to the provided amount. Not applicable to transaction discounts. The discount amount is then calculated by subtracting entered flat\_price from item-price.  
    Allowed values: `AMOUNT`, `PERCENT`, `FLAT_PRICE`.
*   `rewardId` (_string_, nullable) The ID of the loyalty reward discount. Applicable only for loyalty coupons and loyalty discounts.
*   `rewardName` (_string_, nullable) The name of the loyalty reward discount. Applicable only for loyalty coupons and loyalty discounts.
*   `externalId` (_string_, nullable) This identifier is used when an order is imported from an external system. If an order is placed directly in the POS, this identifier will not be available. The external system provides this identifier, which will then be replayed to that external system during order posting for any subsequent modifications like returns.  
    Maximum length: 128.
*   `adjustmentAmount` (_number_)
*   `referenceAdjustmentId` (_string_)
*   `referenceAdjustmentID` (_string_, write-only)
*   `adjustmentType` (_string_)  
    Allowed values: `PRICE_OVERRIDE`, `PROMOTION`, `FEES`, `REWARDS`, `TRANSACTION_DISCOUNT`.
*   `reasonText` (_string_)

### Wallet

Tokenized card stored in customer wallet for Card on File payments.

*   `firstName` (_string_) Cardholder's first name as shown on the payment card, used for ID verification.
*   `secondName` (_string_, nullable) Cardholder's middle name or additional given name, if present.
*   `lastName` (_string_) Cardholder's last name as shown on the payment card, used for ID verification.
*   `program` (_string_, required) Program identifier, for example, 'CB' for Crate & Barrel.  
    Example: `CB`.
*   `shopperReference` (_string_, required) Payment method ID from payment gateway (shopper reference).  
    Example: `336df316-56b3-430c-a366-ea5e8d694582`.
*   `storedPaymentMethodId` (_string_, required) Card identifier from card issuer (stored payment method ID).  
    Example: `xyz12345677777`.
*   `cardAlias` (_string_, required) Identifier of the stored card.  
    Example: `xyz12345677777`.
*   `status` (_string_, required) Status of the wallet card.  
    Allowed values: `Active`, `Inactive`. Example: `Active`.
*   `type` (_string_, required) Type of the wallet card.  
    Allowed values: `Virtual`, `Physical`. Example: `Virtual`.
*   `cardType` (_string_, required) Card network, for example, Visa, Mastercard, or Amex.  
    Example: `Visa`.
*   `cardLastFour` (_string_, required) Last 4 digits of the card number.  
    Example: `1111`.

### RefundFee

Refund fees applied when cancelling or returning items from an order during the edit order flow.

*   `id` (_string_) Refund fee ID. For example, Restocking or 001.
*   `label` (_string_) Refund fee display name. For example, Restocking Fee.
*   `value` (_number_, nullable) Refund fee amount.

### ReturnProductIdentification

Returning item's orderItemId and quantity.

*   `orderItemId` (_string_, required) Order item ID of returning product obtained from original order. It provides the returning item's line item number from the original order.
*   `quantity` (_integer (int32)_, required) Total quantity being returned.
*   `reason` (_Reason_)
*   `epc` (_string_) Electronic Product Code/RFID.
*   `serialNumbers` (_array of string_, nullable) Provide serial numbers for returning product if applicable and captured by store associate.  
    Unique items.

### StoreAttribution

Store attribution corresponding to this order. Applicable for orders placed in-store in offline mode. It is not necessary when an order is imported from an external system.

*   `transactionId` (_string_, required) Transaction ID. It is a unique identifier of the transactions corresponding to an order. The order can have multiple transactions like sale and returns. Each such transaction is uniquely identified by this ID.
*   `storeAssociateId` (_string_, required) The ID of the logged-in store associate.
*   `storeId` (_string_, required) Store Id.
*   `storeGroupID` (_string_, required) Store Group ID.
*   `eventId` (_string_, nullable, deprecated) Event ID within the current transaction. This field is used internally. Don't use in external systems.
*   `storeRegisterId` (_string_, required) Store register ID where the transaction is performed.
*   `eventTimeStamp` (_integer (int64)_, required) Transaction timestamp in epoch millis.
*   `storeAssociateRole` (_string_, required) Store Associate's Role.
*   `secondsFromGMT` (_integer (int64)_, required) Time offset of the register's timezone from UTC in seconds.
*   `activePaymentReader` (_string_, deprecated) Payment gateway for terminal gift card.
*   `tillSessionId` (_string_)
*   `tillId` (_string_, nullable) Till ID where the transaction is performed.
*   `storeType` (_string_) Store type for current store.  
    Allowed values: `Regular`, `Popup`, `Outlet`, `Ecomm`, `Warehouse`, `DistributionCenter`, `Vendor`.
*   `approvingEntity` (_ApprovingEntity_)
*   `timeOffsetFromGMT` (_string_)
*   `millisFromGMT` (_integer (int64)_)

### ExchangeOrderPaymentDetail

*   `transactionId` (_string_, required) It is a unique identifier for a transaction that completes the order.  
    This is particularly helpful in cases where a payment is made in multiple transactions  
    such as in the case of a deposit. In POS, the transaction ID will  
    correspond to the sale transaction when you place an order. However, if you import an  
    order from an external system, the transaction ID should correspond to the order in  
    the external system and can be the same as the OrderID.  
      
    Maximum length: 128.
*   `paymentId` (_string_, required) Unique identifier for a payment/tender. As the order can have multiple payments, each payment has a unique payment ID.  
    Maximum length: 128.
*   `paymentMethod` (_string_, required) Payment method.  
    Allowed values: `Cash`, `CreditCard`, `GiftCard`, `PLCC`, `Check`, `ACH`, `Miscellaneous`, `ApplePay`, `AndroidPay`, `Finance`, `RewardCard`, `PayPal`, `StoreCredit`, `CreditCard_Visa`, `CreditCard_MasterCard`, `CreditCard_Amex`, `CreditCard_Discover`, `eGiftCard`, `WeChatPay`, `AliPay`, `PayByLink`, `RemotePayByLink`, `Installments`, `Reward`, `GooglePay`, `Affirm`, `Afterpay`.
*   `paymentStatus` (_string_, required) Payment status. UNPROCESSED is used internally by cloud services as a transient state. DISCARDED is used when cash tender is in multi-tender and deleted by swiping right. ABORTED is used where we internally remove tender from our tender list and add a new tender, for example, gift card.  
    Allowed values: `UNPROCESSED`, `APPROVED`, `PENDING`, `DECLINED`, `CANCELED`, `REVERTED`, `REVERSAL_FAILURE`, `UNKNOWN`, `NOT_FOUND`, `NOT_APPLICABLE`, `ABORTED`, `DISCARDED`, `FAILED`, `UNVERIFIED`, `EXPIRED`, `SAF_DECLINED`, `SAF_UNKNOWN`.
*   `paymentDevice` (_string_, required) Payment device.  
    If the payment is made in an external system,  
    set the payment device to External.  
      
    Allowed values: `Adyen`, `PayPal`, `VerifonePSDK`, `Square`, `CheckReader`, `NoReader`, `External`, `StoredCard`, `Stripe`, `Elavon`, `Aurus`.
*   `cardNumber` (_string_, nullable) Card number. For CreditCard or GiftCard, the card number is mandatory, including the last 4 digits.  
    Maximum length: 128.
*   `cardBin` (_string_, nullable) Card BIN (Bank Identification Number) - first 6 or 8 digits of the card number.
*   `cardType` (_string_, nullable) Card type, for example, Visa, Mastercard, Amex, or Discover. Required for CreditCard.  
    Maximum length: 128.
*   `amountAuthorized` (_number_, required) Amount paid using this tender.
*   `authorizationToken` (_string_, nullable) Payment authorization token. Mandatory for credit cards, gift card through Adyen.  
    Maximum length: 128.
*   `authorizationDate` (_string (date-time)_, nullable) Payment authorization timestamp.
*   `captureToken` (_string_, nullable) Payment capture token. Mandatory if the credit card capture is enabled.  
    Maximum length: 128.
*   `captureDate` (_string (date-time)_, nullable) Payment capture timestamp.
*   `firstName` (_string_, nullable) First name to use for billing using this tender.  
    Applicable for credit cards.  
    Maximum length: 64.
*   `lastName` (_string_) Last name to use for billing using this tender.  
    Applicable for credit cards.  
    Maximum length: 64.
*   `addressLine1` (_string_) Address line 1 to use for billing using this tender.  
    Applicable for credit cards.  
    Maximum length: 256.
*   `addressLine2` (_string_) Address line 2 to use for billing using this tender.  
    Applicable for credit cards.  
    Maximum length: 256.
*   `city` (_string_) City to use for billing using this tender.Applicable for credit cards.  
    Maximum length: 64.
*   `state` (_string_) State to use for billing using this tender.Applicable for credit cards.  
    Maximum length: 32.
*   `postalCode` (_string_) Postal code to use for billing using this tender.Applicable for credit cards.  
    Maximum length: 16.
*   `country` (_string_) Country code to use for billing using this tender.Applicable for credit cards.  
    Maximum length: 32.
*   `requestId` (_string_, nullable) Payment request identification issued by the payment gateway/terminal.  
    This field is typically used for referenced refunds that are performed automatically  
    by the POS without the customer presenting the card during a refund.  
    In the case of Adyen payments, this field maps to pspReference.  
    It is mandatory for credit cards.  
    Maximum length: 256.
*   `alternateRequestId` (_string_, nullable) When a payment terminal is in store and forward mode,  
    it generates a temporary payment ID, which is provided in the alternate payment  
    request ID attribute. For instance, the Adyen terminal generates a temporary ID  
    called a 'tender reference' whenever it goes into a store and forward mode.  
    This tender reference is then populated in the alternate payment request ID attribute.  
    Maximum length: 50.
*   `refundRequestId` (_string_, nullable) Refund Payment request identification issued by payment gateway/terminal. Mandatory for refund on credit card.  
    Maximum length: 50.
*   `refundDate` (_string (date-time)_, nullable) Refund Date.
*   `copiedFromOrderId` (_string_, nullable) When an item is exchanged, a new order is created for the replacement item,  
    and the original order is updated to a returned/exchanged status.  
    Additionally, the tender value of the replacement item's cost is carried forward to  
    the new order. This attribute provides the original order ID if the tender is carried  
    over to the new order during the exchange.  
    Maximum length: 128.
*   `totalRefundedAmount` (_number_, nullable) The amount refunded for this tender. Not applicable, if no refund issued yet.
*   `totalAmountCarriedOverForExchange` (_number_, nullable) When an item is exchanged, a new order is created for the replacement item,  
    and the original order is updated to a returned/exchanged status.  
    Additionally, the tender value of the replacement item's cost is carried over to  
    the new order. This carried over amount is provided in this attribute. It is mandatory if the order is exchanged and tender is carried over to new order.
*   `receiptLines` (_array of PaymentReceiptLine_) Receipt lines. For information to be shown on receipt. Mandatory for CreditCard payment using Adyen.
*   `paymentSequenceNumber` (_integer (int64)_, required) Payment sequence indicating the order of payment.  
    E.g. if customer pays with cash first and remaining with credit card,  
    then cash tender should have paymentSequenceNumber as 1  
    and credit card tender should have paymentSequenceNumber as 2.  
    
*   `paymentDeviceId` (_string_, nullable) Unique identifier like serial number for payment reader. Used in case of client/app side card encryption by readers like Verifone.  
    Maximum length: 32.
*   `routingNumber` (_string_, nullable) Bank routing number, Applicable in case of payment method: 'Check'.  
    Maximum length: 32.
*   `accountNumber` (_string_, nullable) Account number. Used for payment through banking system like 'Check', 'Finance'.  
    Maximum length: 32.
*   `checkNumber` (_string_, nullable) Check number. Used for payment through checks.  
    Maximum length: 50.
*   `personalIdType` (_string_, nullable) Personal identification type. Applicable for Check and Finance.  
    Allowed values: `DriversLicense`, `StateID`, `MilitaryID`, `Passport`, `StudentID`, `PermanentResidentID`, `TribalID`, `BusinessPhone`.
*   `personalIdIssuedBy` (_string_, nullable) Issues of the personal identification. Applicable for Check and Finance.  
    Maximum length: 32.
*   `personalIdNumber` (_string_, nullable) Personal identification number. Applicable for Check and Finance.  
    Maximum length: 32.
*   `personalIdExpiryDate` (_string (date-time)_, nullable) Personal identification expiry date. Applicable for Check and Finance.  
    
*   `cardToken` (_string_) This is the tokenized value for payments made via Credit Card, Pay By Link, or Remote Pay By Link. Please note that tokenization is only supported for Adyen and must be configured in the CMS (**CMS** > **Integration** > **Payment Gateways** > **Adyen** > **Payment Tokenization Events**).
*   `cardExpirationMonth` (_integer (int32)_, nullable) Card expiry month. Applicable for credit card.
*   `cardExpirationYear` (_integer (int32)_, nullable) Card expiry year. Applicable for credit card.
*   `checkType` (_string_, nullable) Type of the check - Personal or Business.  
    Allowed values: `Personal`, `Business`.
*   `manualAuthorizationCode` (_string_, nullable) Manual authorization code for a tender.  
    Normally it is received after calling a call center agent of a payment processor.  
    Eg. Call for auth code after check denial/ referral,  
    manual auth code for credit card when offline.  
    Maximum length: 50.
*   `cashDrawerUrl` (_string_, nullable) Represents custom URL using which cash drawer in the network can be accessed. Mandatory for cash payment with cash drawer having URL\_VIA\_QR\_CODE mode.  
    Maximum length: 256.
*   `roundingAmount` (_number_, nullable) Rounding amount for the payment. Applicable for cash tender  
    in regions where rounding is applicable.
*   `refundFeeAmount` (_number_, nullable) Refund fee like restocking fee.  
    Applicable when order is returned and refund fee is configured.
*   `authStatus` (_string_, nullable) Auth status of Credit card payment.  
    Allowed values: `PRE_AUTH`, `AUTH`, `SALE`, `VOID`, `VOID_FAILED`.
*   `tip` (_number_, nullable) Tip amount. Applicable when tipping is enabled.
*   `captureStatus` (_string_, nullable) Capture status of authorized amount.  
    Allowed values: `CAPTURED`, `CAPTURE_FAILED`, `NON_CAPTURED`, `PARTIALLY_CAPTURED`, `VOID`, `VOID_FAILED`.
*   `financeOrderNo` (_string_, nullable) Refers to Finance approval/order/confirmation no. in external system.  
    Maximum length: 32.
*   `financeInstruction` (_string_, nullable) Refers to finance processing related result or instruction long text from external system.  
    Maximum length: 4096.
*   `primaryAccountHolder` (_string_, nullable) Primary owner on the account, used for Finance tender.  
    Maximum length: 128.
*   `fundingSource` (_string_, nullable) Funding source, for example, PREPAID, DEBIT, or CREDIT. Applicable for credit cards.  
    Allowed values: `CHARGED`, `CREDIT`, `DEBIT`, `PREPAID`, `DEFFERED_DEBIT`, `PREPAID_RELOADABLE`, `PREPAID_NONRELOADABLE`, `STORE_VALUE`, `EBT`, `ALTERNATE_TYPE`, `CHECK`, `MOBILE`, `CASH`.
*   `captureAmount` (_number_, nullable) Amount captured for credit card. Applicable, if capture flow is enabled.
*   `termsAndConditions` (_string_, nullable) Terms and conditions. Used for finance tender.  
    Maximum length: 4096.
*   `tenderBalance` (_number_, nullable) Balance amount remaining in the gift card tender.
*   `tenderedAmount` (_number_, nullable) The cash amount tendered for this transaction.
*   `changeBackAmount` (_number_, nullable) The remaining change amount in case of cash tender.
*   `cardAlias` (_string_, nullable) Card alias provided in the payment response. A non-PII field for merchants to associate a card or card holder with historical transactions.
*   `paymentEntryMode` (_string_, nullable) Indicates how the payment was captured, as provided by the app (for example, VERIFIED\_CARD\_ON\_FILE). The verification is performed on the app side. Used for reporting and audit purposes.
*   `refundAmount` (_number_)
*   `amountToBeAppliedForExchange` (_number_)
*   `refundTransactionId` (_number_)
*   `performedUnreferencedRefunds` (_boolean_, deprecated) Use refundMode instead.
*   `refundRoundingAmount` (_number_)
*   `refundMode` (_string_, nullable) If the tender requires special handling when performing a refund, provide the specific refund mode here. Supported modes are Unreferenced and ExternalAuth. For example, during a credit card authorization call, provide the refund mode ExternalAuth when the app issues the refund instead of the regular flow.  
    Allowed values: `Unreferenced`, `External`, `Default`, `OMS`, `ProductExchange`.
*   `splitRefund` (_boolean_) If an original tender is split into multiple refunds during return and if the current refund tender is one of the split refunds of the original tender. Used in MaxCashReturn policy where original tender might get split into two during returns.
*   `validRefundTender` (_boolean_)
*   `remapped` (_boolean_)
*   `paymentMethodString` (_string_)
*   `authorizationDateMillis` (_integer (int64)_, write-only)
*   `captureDateMillis` (_integer (int64)_, write-only)
*   `effecitivePaidAmount` (_number_)

### TransactionSummary

Payload that contains a transaction (Sale or Return) summary.

*   `subTotal` (_number_, required, read-only) Total Item price.
*   `discount` (_number_, read-only, nullable) Total price override and promo coupons applied.
*   `transactionDiscountAmount` (_number_, read-only, nullable) Total transaction discount.
*   `rewardAmount` (_number_, read-only, nullable) Total reward amount.
*   `tax` (_number_, read-only, nullable) Total Tax.
*   `taxExemption` (_number_, read-only, nullable) Total Tax Exemption.
*   `valueAddedTax` (_number_, read-only, nullable) Total Value Added Tax.
*   `shippingCharges` (_number_, read-only, nullable) Total shipping charges.
*   `shippingDiscount` (_number_, read-only, nullable) Total shipping discount.
*   `total` (_number_, required, read-only) Total sale transaction or refund transaction. Cart can have items for a sale transaction or a return transaction or for a transaction that is being performed for both sale and returns in single checkout. In all such scenarios, 'total' is to maintain sale total or refund total or net total (sale total - refund total), i.e., amountToBeCharged respectively. Note: Tip is not included in this total. Tip is on top of this and should not be added to this field.
*   `roundingAmount` (_number_, read-only) The delta amounts because of rounding applied on grand total or refund total of the cart.
*   `paidAmount` (_number_, read-only) The amount paid already towards the ongoing transaction. It is used during deposits,layway and edit order.
*   `amountToBeCharged` (_number_, read-only) Net amount that customer is going to pay as charges or receive as refund. It is derived based on this formula = (Total Sale - Paid amount - Total Refund).
*   `refundFeeAmount` (_number_) Refund fees applied when cancelling items from an order during the edit order flow. Not applicable for sale transactions and not populated in the sale summary.
*   `minTransactionDiscountAmount` (_number_) Used in edit order flow and will be populated only in net summary of the cart. Minimum transaction discount that must be applied to cover for transaction discount already applied on already fulfilled products.
*   `maxTransactionDiscountAmount` (_number_) Used in edit order flow and will be populated only in net summary of the cart. Maximum transaction discount that can be applied.
*   `netSubTotal` (_number_) Net SubTotal- represents Item sub total minus the discounts/price overrides if any.
*   `nonMerchTotal` (_number_, nullable) Total of non merchandising items.
*   `tipTotal` (_number_, read-only, nullable) Total Tip.
*   `inStoreTotal` (_number_, nullable) In store total.
*   `tariff` (_number_, nullable) The tariff amount at the time of sale. This value is retrieved from **CMS** > **Store Settings** > **Tariffs** and is included only when the tariff configuration is available in CMS.
*   `totalDiscount` (_number_, nullable) Order Total Savings - Total discount amount applied to the order, combining all discount sources (item-level + transaction-level + promotion-level + shipping discounts). Excludes price corrections.
*   `roundingAmounts` (_number_, write-only)

### TransactionDeposit

Cart summary for deposit of the cart.

*   `requiredDeposit` (_number_, nullable) The minimum deposit required for an order is calculated based on the deposit configuration.  
    For example, if an order includes item1 priced at $100 with a deposit percentage of 10%, and item2 priced at $50 without any deposit configuration, then the minimum deposit needed for this order would be 10% of 100 + 50,  
    which equals $60. Please note that this calculation also includes taxes and shipping charges.
*   `suggestedDeposit` (_number_, nullable) The suggested deposit for an order is calculated based on the deposit configuration when Deposit Must Be Collected to Complete Order is turned off.  
    
*   `depositBalance` (_number_, nullable) Remaining balance for deposit order  
    Applicable for deposit order where customer has paid partial amount  
    and remaining amount is pending.
*   `depositToOrderBalance` (_number_, nullable) The refund amount will be applied to the deposit order.  
    For example, if a refund item is $100 and the deposit balance is $50, the deposit applied to the order will be $50.  
    Similarly, if a refund item is $10 and the deposit balance is $50, the deposit applied to the order will be $10.
*   `depositProductDetails` (_array of Product_, nullable) The details of a product's deposit, for example, order item ID, required deposit, or paid deposit.

### ApprovingEntity

Approving entity who provides approval to set the employee.

*   `approverId` (_string_, nullable) StoreAssociateId who provides approval for the request.
*   `role` (_string_, nullable) The associate's role in the store. It can be one of STORE\_ASSOCIATE, STORE\_MANAGER, or AREA\_MANAGER.

### Transactions

Loyalty transactions.

*   `nextStartMonth` (_integer (int32)_)
*   `txnActivity` (_array of TransactionActivity_)

### Tier

Customer's next tier details.

*   `name` (_string_) Tier name.
*   `minPoints` (_number_) Minimum points required for the tier.
*   `display` (_string_)
*   `points` (_integer (int32)_)
*   `memberSince` (_integer (int64)_) Member since, of this tier.
*   `title` (_string_)
*   `subTitle` (_string_)
*   `imageUrl` (_string_)
*   `expiryDate` (_integer (int64)_) Expiry date of the customer's membership.

### CustomAttributes

Custom attributes.

*   `customLabel` (_string_)
*   `customValues` (_array of CustomValue_)

### ProductTaxRate

VAT breakdown for the shipping cost. Applicable for VAT countries and if the shipping cost is taxable.

*   `countryCode` (_string_, required) Country Code.  
    Maximum length: 2. Example: `US`.
*   `state` (_string_, nullable) State. Applicable if the tax rate is specific to state.  
    Maximum length: 128.
*   `postalCode` (_string_, nullable) Postal Code. Applicable if the tax rate is specific to postal code.  
    Maximum length: 10.
*   `taxType` (_string_, required) Indicates the tax type, such as COUNTRY, CITY, or STATE. The following tax types are specific to the Vertex tax engine: PROVINCE, TERRITORY, APO, BOROUGH, FPO, LOCAL\_IMPROVEMENT\_DISTRICT, PARISH, SPECIAL\_PURPOSE\_DISTRICT, TOWNSHIP, TRADE\_BLOCK, and TRANSIT\_DISTRICT.  
    Allowed values: `CLASS`, `CITY`, `DISTRICT`, `COUNTY`, `STATE`, `COUNTRY`, `ITEM_OVERRIDE`, `STORE_OVERRIDE`, `TRANSACTION_OVERRIDE`, `SPECIAL`, `PROVINCE`, `TERRITORY`, `APO`, `BOROUGH`, `FPO`, `LOCAL_IMPROVEMENT_DISTRICT`, `PARISH`, `SPECIAL_PURPOSE_DISTRICT`, `TOWNSHIP`, `TRADE_BLOCK`, `TRANSIT_DISTRICT`.
*   `chargeType` (_string_) Indicates if the charge is for tax or fee - TAX/FEE.  
    Allowed values: `TAX`, `FEE`. Default: `TAX`.
*   `nonRefundable` (_boolean_) Specifies whether the charge (tax or fee) is refundable.  
    Default: `false`.
*   `taxRate` (_number (float)_, required) % tax/vat rate.  
    Example: `7.25`.
*   `taxClass` (_string_, required) The tax engine uses tax classes to apply specific tax rates to different product categories. Each product is linked to a tax class, which determines its applicable tax rate.  
    Example: `Tax Class for Shoes and Clothing - PS0001`.
*   `taxCode` (_string_, required) Unique identifier for a tax rate, unique per item.
*   `taxAmount` (_number_, required) Total tax amount for the item corresponding to the item's tax rate.  
    Example: `7.25`.
*   `perUnitTaxAmount` (_number_, required) Per unit tax amount of the item corresponding to the tax rate.  
    Example: `1.25`.
*   `taxName` (_string_, required) Tax name, for example, Jurisdiction, MTA, BTW Hoog, or BTW Laag.  
    Maximum length: 64.
*   `displayTaxName` (_string_, required) Display tax name, for example, Jurisdiction - 7.25%, BTW Hoog - 21%, or BTW Laag - 9%.
*   `corporateTaxId` (_string_, nullable) Merchant's Tax Identification Number.  
    Example: `HST-74252RT0001`.
*   `printTaxName` (_string_, nullable) Print tax name for receipts. Includes merchant's tax identification number. For example: HST-74252RT0001 - 7.25%.
*   `externalTaxId` (_string_, nullable) Additional Tax Identifier for external systems.
*   `isExempt` (_boolean_, nullable) Indicates if tax is exempted.  
    Default: `false`.
*   `taxDescription` (_string_, nullable) Tax Description text.
*   `jurisdiction` (_string_, nullable) Jurisdiction.  
    Maximum length: 128.
*   `registrationNumber` (_string_, nullable) Registration Number.  
    Maximum length: 128.
*   `externalId` (_string_, nullable) Identifies the current tax record in the external system. This is a record identifier, not a tax identifier. Used when an order is imported from an external system. Orders placed directly through POS don't populate this identifier. The external system provides this identifier and POS replays it during order posting for subsequent modifications such as returns.  
    Maximum length: 128.

### ItemLevelCharge

Item level breakdown for the shipping cost and shipping discount.

*   `orderItemId` (_string_, required) Unique sequence number assigned to cart item that belongs to the order or delivery group.  
    Example: `It can have values like 1, 2, 3, etc...<br> which represents line item number within the order or Delivery Group.`.
*   `itemShippingCharge` (_number_) Item level shipping charge.
*   `itemShippingDiscountAmount` (_number_, nullable) Shipping discount that can be applied on item level shipping price due to promotion or reward.
*   `discountText` (_string_, nullable) Discount text of an applied promotion.  
    Maximum length: 1500.
*   `promotionId` (_string_, nullable) External Merchant promotion ID corresponding applied promotion.

### Hours

Store's operational hours. Mandatory if the store is configured in CMS with operational hours.

*   `day` (_string_)
*   `open` (_string_)
*   `close` (_string_)

### CustomField

Custom Field.

*   `name` (_string_)
*   `value` (_string_)

### PaymentReceiptLine

Receipt lines. For information to be shown on receipt. Mandatory for CreditCard payment using Adyen.

*   `key` (_string_, required) Key of the line item.  
    Example: `Total`.
*   `value` (_string_, required) Value of the line item.  
    Example: `34.5699`.
*   `display` (_string_, required) Display value of the line item.  
    Example: `34.57`.

### TransactionActivity

*   `orderId` (_string_)
*   `date` (_integer (int64)_)
*   `description` (_string_)
*   `points` (_integer (int32)_)
*   `amount` (_number_)
*   `pointStatus` (_string_)  
    Allowed values: `EARNED`, `PENDING`, `REWARD`, `REDEEMED`.
*   `customAttributes` (_object_)
    
    Additional properties: `object`.
    

### CustomValue

*   `laabel` (_string_)
*   `value` (_string_)
*   `iconType` (_string_)