---
schema_version: "1"
id: 1dd762317ac24ea87fa35eb2c33130f1af737fce82403180ecba055d23d10101
title: Loyalty SPI
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/loyalty-spi.md
canonical_url: https://developer.salesforce.com/docs/commerce/retail-cloud/references/loyalty-spi
source_site: developer.salesforce.com
content_type: documentation
content_hash: 00e91a341270ec723ecc61755ec79f1bdf75cac5a29dd99b9a5b2ba1f8293387
products:
  - Point of Sale for Developers
  - Salesforce APIs
---
Loyalty SPI

# Loyalty SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/loyalty-spi/loyalty-spi-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 order details and get loyalty-related information.

**Version:** 2.3.4

## Tags

### Loyalty SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/loyalty-spi/loyalty-spi-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 order details and get loyalty-related information.

## Operations

### POST Retrieve loyalty points earned.

`POST /merchant/spi/sample/endpoint/sa/getLoyaltyPoints`

Operation ID: `postReceipt_1`. Tags: Loyalty SPI.

Retrieve the loyalty points earned for the transaction. When placing an order, if the customer is enrolled in loyalty, this SPI returns the points that will be earned for the order. Merchant must implement this endpoint per this specification and then configure it in CMS.

#### Request body

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

#### Responses

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

## Schemas

### Cart

*   `cartId` (_string_)
*   `suspendedCartId` (_string_, nullable) If the cart is created from suspended cart,the suspendedCartId will be populated with the suspended cart's db id. This is nothing but db id of the resumed suspended cart.
*   `suspendedQuoteId` (_string_, nullable) If the cart is created from suspended cart having quote,the suspendedQuoteId will be populated with the suspended cart's quoteId.
*   `suspendedExternalQuoteId` (_string_, nullable) If the cart is created from suspended cart having quote,the suspendedExternalQuoteId will be populated with the suspended cart's external quoteId.
*   `resumedCartDBIds` (_array of string_, nullable) All the resumed cart associated with this current cart. Multiple suspended carts can be resumed in single active cart, all such resumed carts are maintained in this list.  
    Unique items.
*   `cartItemList` (_array of Product_)
*   `subTotal` (_number_)
*   `shippingMethodList` (_array of ShippingMethod_)
*   `session` (_string_)
*   `orderNo` (_string_)
*   `discount` (_number_)
*   `errors` (_array of ProductError_)
*   `productWarnings` (_array of ProductWarning_)
*   `productPriceAdjustments` (_array of ProductPriceAdjustment_)
*   `orderPriceAdjustments` (_array of OrderPriceAdjustment_)
*   `originalDiscountData` (_CartDiscountData_)
*   `giftCardList` (_array of GiftCard_)
*   `giftCardAppliedTotal` (_number_)
*   `paymentMerchantId` (_string_)
*   `paymentOrganizationId` (_string_)
*   `token` (_string_)
*   `errorCode` (_string_)
*   `errorMessage` (_string_)
*   `taxCalculationDone` (_boolean_)
*   `hybridCheckoutUrl` (_string_)
*   `rewardList` (_array of Reward_)
*   `rewardTotal` (_number_)
*   `cookieList` (_array of CheckoutCookie_)
*   `tax` (_number_)
*   `valueAddedTax` (_number_)
*   `highPrecisionValueAddedTax` (_number_)
*   `giftCardRemainingTotal` (_number_)
*   `giftWrapTotal` (_number_)
*   `giftMessage` (_string_)
*   `promotions` (_array of Promotion_)
*   `promotionCodes` (_array of string_)
*   `shippingAddress` (_Address_)
*   `billingAddress` (_Address_)
*   `taxTotal` (_number_)
*   `taxExemption` (_number_)
*   `shippingTotal` (_number_)
*   `shippingDiscount` (_number_)
*   `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.
*   `shippingMethod` (_ShippingMethod_)
*   `priceAdjustmentsComplete` (_boolean_)
*   `redeemPromoCallBackUrl` (_string_)
*   `loyaltyId` (_string_)
*   `customerEmail` (_string_)
*   `orderSource` (_string_)  
    Allowed values: `DEFAULT`, `IN_STORE`, `POPUP_STORE`, `WEB`, `APP`, `OUTLET_STORE`, `ONLINE`, `POS_EA`.
*   `transactionStartDate` (_string (date-time)_)
*   `fullfillmentType` (_string_)  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `storeId` (_string_)
*   `customerId` (_string_)
*   `taxableAmount` (_number_)
*   `isSplitCart` (_boolean_)
*   `children` (_object_)
    
    Additional properties: `Cart`.
    
*   `transactionDiscountAmount` (_number_)
*   `transactionDiscountReason` (_string_, deprecated) DEPRECATED - Use 'reasons' instead.
*   `offlineMode` (_boolean_)
*   `loyaltyInfo` (_LoyaltyInfo_)
*   `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.
*   `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.
*   `editOrderId` (_string_, nullable) Order ID for the order being edited.
*   `exchangeItemResponses` (_array of ExchangeItemResponse_) Details about the items that are being returned or exchanged.
*   `returnsTenders` (_array of ReturnsTender_) In case there is refund, refund tender details and options.
*   `amountToBeCharged` (_number_) Amount to be charged.
*   `paidAmount` (_number_) Used in edit order flow. Amount already paid as part of original order.
*   `orderType` (_string_) Used to indicate if the order is of type Layaway.  
    Allowed values: `STORE_PICKUP`, `STORE_FULFILLMENT`, `LAYAWAY`, `MIXED_MODE`, `ONLINE`, `ONLINE_RESERVE`.
*   `minTransactionDiscountAmount` (_number_) Used in edit order flow. 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. Maximum transaction discount that can be applied.
*   `minimumPaymentAmount` (_number_) Used for partial payments flow. Represents minimum payment amount due at the time of order placement.
*   `notesList` (_array of OrderNote_)
*   `grandTotal` (_number_) Grand Total of sale 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, Grand Total is to maintain total sale amount. In case of pure returns, the Grand Total will always be zero.
*   `hash` (_string_) Hash corresponding to the current cart content.
*   `saleRoundingAmount` (_number_) The delta amount because of rounding applied on sale portion of the cart.
*   `exchangeItemRequests` (_array of ExchangeItemRequest_) Request for items that are being returned or exchanged.
*   `refundSubTotal` (_number_) Returning item subtotal — subtotal of items in the exchange item list.
*   `refundDiscount` (_number_) Returning item's discount — discount total of items in the exchange item list.
*   `refundTax` (_number_) Returning item's tax — tax total of items in the exchange item list.
*   `refundTariff` (_number_) Returning item's tariff — tariff total of items in the exchange item list.
*   `refundTaxExemption` (_number_) Returning item's tax exemption — tax exemption total of items in the exchange item list.
*   `refundValueAddedTax` (_number_) Returning item's value-added tax — VAT for items in the exchange item list.
*   `refundItemTotal` (_number_) Returning item's total — total of items in the exchange item list.
*   `profile` (_Profile_)
*   `refundFees` (_array of RefundFee_) Refund fees applied when cancelling items from an order during the edit order flow.
*   `taxTransaction` (_TaxTransaction_)
*   `externalSessionId` (_string_)
*   `referenceId` (_string_, nullable) Two phase confirmation reference id corresponding to the order that is being confirmed as part of this request, Two phase commit V2 uses this field.
*   `externalCartId` (_string_)
*   `orderLevelGiftWrap` (_OrderLevelGiftWrap_)
*   `paymentInstallment` (_PaymentInstallment_)
*   `paymentInstallmentOptionsList` (_array of PaymentInstallmentOptions_, nullable) List of Payment Installment options available.
*   `isGift` (_boolean_) Flag indicating if order is a gift.  
    Default: `false`.
*   `pickUpDetail` (_OrderPickUpDetail_)
*   `pickUpDetailList` (_array of OrderPickUpDetail_) Pick Up Details.
*   `deliveryZoneId` (_string_) Zone ID for online items that will be delivered.
*   `deliveryZipCodeId` (_string_) Zip code ID for online items that will be delivered.
*   `availableDate` (_integer (int64)_) Available date for online items.
*   `totalAssembledQty` (_number (double)_) Total Assembled quantity for delivery items.
*   `totalBoxedQty` (_number (double)_) Total Boxed quantity for delivery items.
*   `verifiedTenderInfo` (_array of Tender_) Information which was used to verify the tender is available through this list.
*   `authorizedTenderInfo` (_array of Tender_) Information which was used to authorize the tender is available through this list.
*   `summary` (_CartSummary_)
*   `transactionDiscount` (_Discount_)
*   `shippingDisclaimer` (_string_) Shipping Disclaimer.
*   `employee` (_Employee_)
*   `cartType` (_string_, nullable) Used in the backend to determine if the omni flow is active during cart, order, and order post-processing.  
    Allowed values: `REGULAR`, `OMNI`.
*   `displayMessages` (_array of Flash_) Generic field for display messages. The display message is populated to provide helpful information to user. One of the use cases is eligible coupon code which is not applied.
*   `multiShipmentType` (_string_) Multi shipment types as cart can have multiple shipments either with the same address or different addresses.  
    Allowed values: `ORDER_LEVEL`, `DELIVERY_GROUP_LEVEL`.
*   `auxiliaryItemData` (_array of AuxiliaryItemData_) Auxiliary items details support for edit order.
*   `skipAutoPromotion` (_boolean_) Skip auto promotion when the order is edit order.
*   `currentStoreType` (_string_) Store Type belonging to current store requesting cart.  
    Allowed values: `Regular`, `Popup`, `Outlet`, `Ecomm`, `Warehouse`, `DistributionCenter`, `Vendor`.
*   `customerLoyaltyProfile` (_CustomerLoyaltyProfile_)
*   `pointsEarned` (_integer (int32)_, nullable) The number of loyalty points earned in this transaction.
*   `shippingTaxExemption` (_number_, nullable) The tax exemption applied on the Shipping tax.
*   `originalDepositBalance` (_number_)
*   `depositBalance` (_number_)
*   `depositToOrderBalance` (_number_)
*   `returnCustomerInformation` (_ReturnCustomerInformation_)
*   `deltaCart` (_DeltaCart_)
*   `tariffAmount` (_number_)
*   `tariffRate` (_number_)
*   `taxOrVatOverrideRate` (_number_)
*   `partiallyPaidItemList` (_array of Product_)
*   `isWarrantyStale` (_boolean_)
*   `promotionContext` (_array of Promotion_)
*   `promotionContextV2` (_array of Promotion_)
*   `skipDeliveryGroupSPI` (_boolean_)

### SPILoyaltyPoints

*   `pointsEarned` (_integer (int32)_) The number of loyalty points earned for an order, dedicated SPI will give the value for this post Phase I call.

### 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_)

### 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.

### ProductError

*   `productId` (_string_)
*   `errorMessage` (_string_)
*   `errorCode` (_string_)
*   `errorType` (_string_)

### ProductWarning

*   `productId` (_string_)
*   `messages` (_array of Message_)

### 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`.

### CartDiscountData

*   `transactionDiscount` (_number_) The transaction discount applied on the original order.
*   `productPriceAdjustments` (_array of ProductPriceAdjustment_) Item level price adjustments applied on the original order. It can be price override, promotion or prorated transaction discount.

### GiftCard

*   `cardId` (_string_)
*   `cardNumber` (_string_)
*   `cardPin` (_string_)
*   `balance` (_number_)
*   `invoiceNumber` (_string_)
*   `token` (_string_)
*   `forcePinValidation` (_boolean_)
*   `approvedAmount` (_number_)
*   `transactionId` (_string_)
*   `returnRelated` (_boolean_)

### 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).

### CheckoutCookie

*   `domain` (_string_)
*   `key` (_string_)
*   `value` (_string_)

### Promotion

*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)
*   `promotionId` (_string_)
*   `name` (_string_)
*   `title` (_string_)
*   `description` (_string_)
*   `promoCode` (_string_)
*   `inStorePromoCode` (_string_)
*   `appPromoCode` (_string_)
*   `onlinePromoCode` (_string_)
*   `outletPromoCode` (_string_)
*   `promoFeedSource` (_FeedSource_)
*   `startTimeStamp` (_integer (int64)_)
*   `endTimeStamp` (_integer (int64)_)
*   `combinationTypes` (_array of string_)
*   `channel` (_array of string_)  
    Items: Allowed values: `ALL`, `WEB`, `APP`, `STORE`, `OUTLET`.
*   `priorityOrder` (_integer (int32)_)
*   `active` (_boolean_)
*   `auto` (_boolean_)
*   `redemptionLimit` (_number (double)_)
*   `uniqueCodeUrl` (_string_)
*   `redeems` (_number (double)_)
*   `barCodeType` (_string_)
*   `promotionType` (_string_)  
    Allowed values: `ORDER_PERCENT_OFF`, `ORDER_AMOUNT_OFF`, `FREE_SHIPPING`, `BXGY`, `FREE_SAMPLES`, `X_FOR_Y`, `PRODUCT_FIXED_AMOUNT`, `FREE_SHIPPING_V2`.
*   `percentOff` (_number (double)_)
*   `maxDiscountAmount` (_number (double)_)
*   `maxTotal` (_number_)
*   `amountOff` (_number_)
*   `shippingMethods` (_array of string_)
*   `hasSingleUsePromoCodes` (_boolean_)
*   `imageUrl` (_string_)
*   `discountedQuantity` (_integer (int32)_)
*   `freeSamples` (_array of CombinationGroup_)
*   `merchantPromotionId` (_string_)
*   `amount` (_number_)
*   `promoRules` (_array of PromotionRule_)
*   `qualifyingGroups` (_array of CombinationGroup_)
*   `discountedGroups` (_array of CombinationGroup_)
*   `amountExpression` (_string_)
*   `tierGroups` (_array of TierGroup_)
*   `discountedGroupProration` (_boolean_)
*   `promotionLanguageData` (_array of PromotionLanguageData_) Promotion attributes in additional languages.
*   `bxgyDiscountType` (_string_) Buy X Get Y discount types.  
    Allowed values: `PERCENT_OFF`, `AMOUNT_OFF`, `FIXED_PRICE`.
*   `createdBy` (_string_)
*   `createdOn` (_string (date-time)_)
*   `lastUpdatedOn` (_string (date-time)_)
*   `lastUpdatedBy` (_string_)
*   `promotionMappings` (_array of PromotionMapping_)
*   `isExternallyValidated` (_boolean_)
*   `promotionTypePriority` (_string_)  
    Allowed values: `FREE_SAMPLES`, `BXGY_FIXED_AMOUNT`, `X_FOR_Y`, `BXGY_AMOUNT_OFF`, `BXGY_PERCENT_OFF`, `PRODUCT_FIXED_AMOUNT`, `ORDER_AMOUNT_OFF`, `ORDER_PERCENT_OFF`, `FREE_SHIPPING_V2`, `FREE_SHIPPING`.
*   `promotionCode` (_PromotionCode_)

### 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_)

### LoyaltyInfo

*   `pointsRedeemValue` (_number (double)_)
*   `pointsEarnValue` (_number (double)_)
*   `pointsClosingBalance` (_number (double)_)

### 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.

### 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.

### ExchangeItemResponse

Details about the items that are being returned or exchanged.

*   `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`.
*   `orderId` (_string_)
*   `exchangeStatus` (_string_)  
    Allowed values: `EXCHANGED`, `EXCHANGED_WITH_REFUND`, `FAILED`, `SKIPPED`.
*   `refundAmount` (_number_)
*   `refundMedium` (_string_)
*   `refundStatus` (_string_)
*   `orderStatus` (_string_)
    
    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`.
*   `products` (_array of Product_)
*   `order` (_CustomerOrder_)
*   `amountPendingRefund` (_number_)
*   `refundPaymentData` (_array of PaymentData_)
*   `refundPaymentDataOriginalTender` (_array of PaymentData_)
*   `paymentData` (_array of PaymentData_)
*   `parentOrderId` (_string_)
*   `noReceiptReturns` (_boolean_)
*   `editOrderId` (_string_)
*   `refundFees` (_array of RefundFee_, nullable) Refund fees charged so far.
*   `transactionId` (_string_, nullable) Transaction identifier to identify current exchange transaction.
*   `offlineMode` (_boolean_) Flag to indicate whether returns or exchange is being performed in offline mode or not.
*   `postProcessingPerformed` (_boolean_) Flag to indicate if the post processing webhook is triggered or not.
*   `paidAmount` (_number_) Used in edit order flow. Amount already paid as part of original order.
*   `orderReturnsPolicy` (_OrderReturnsPolicy_)
*   `employee` (_Employee_)
*   `tipTotal` (_number_) Tip Total to be refunded in case of pure return.
*   `request` (_ExchangeItemRequest_)
*   `refundPerformed` (_boolean_)
*   `returnableItemTotal` (_number_)
*   `paymentDetails` (_array of OrderPaymentDetail_)
*   `exchangeOrderPaymentDetails` (_array of ExchangeOrderPaymentDetail_)
*   `error` (_boolean_)

### ReturnsTender

In case there is refund, refund tender details and options.

*   `returnsTenderId` (_string_)
*   `tenderHeaderText` (_string_)
*   `headerText` (_string_) Display text corresponding to the refund option.
*   `tenders` (_array of PaymentData_)
*   `returnsPolicies` (_array of string_) All the applied returns policies to determine the refund option.  
    Items: Allowed values: `MaxReturnsDays`, `MaxCashReturns`, `RemapRefundTenders`, `StoreCredit`, `GiftCard`, `CustomerNotInPersonRefund`, `CreditCard`, `NoReceiptReturns`, `Check`.
*   `managerOverrideRequired` (_boolean_)
*   `amountToBeCharged` (_number_) Effective amount to be charged to customer based on purchases, any refunds, discounts , taxes, shipping, any additional fee & rounding if any for this return tender.
*   `headerTextForManagerOverride` (_string_, write-only)
*   `approvalPolicyForManagerOverride` (_string_, write-only)  
    Allowed values: `CREATE_TILL`, `MAX_CASH_RETURN_POLICY`, `MAX_RETURN_WINDOW_POLICY`, `NRR`, `TENDER_REMAPPING`, `OFFLINE_MAX_CASH_RETURN_POLICY`, `OFFLINE_MAX_RETURN_WINDOW_POLICY`, `OFFLINE_NRR`, `OFFLINE_TENDER_REMAPPING`, `PAY_IN_OUT`, `EMPLOYEE_SALE`, `LINE_ITEM_DISCOUNT`, `TRANSACTION_DISCOUNT`, `RECONCILE_TILL`, `CASH_PICKUP`, `BUSINESS_CHECK`, `NO_SALE`, `POST_ADJUSTMENT_INVENTORY`, `CYCLE_COUNT_BATCH_SERIALNUMBER`, `SPECIAL_ITEM`, `REUSE_OLD_TILL`, `TAX_MODIFICATION`, `PRICE_CORRECTION`, `SHOW_ASSOCIATE_REVENUE_IN_DASHBOARD`, `VIEW_SAFE_MANAGEMENT`, `VIEW_ALL_TILLS`, `CYCLE_COUNT_LIFECYCLE`, `CYCLE_COUNT_DETAILS`, `VIEW_ALL_CYCLE_COUNT_BATCHES`, `UPDATE_ALL_CYCLE_COUNT_BATCHES`, `MANAGER_OVERRIDE`, `RETURN_EXCHANGE_POLICY`, `CASH_AUDIT`, `APPEASEMENT`, `EDIT_SAFE_MANAGEMENT`, `REMOVE_WARRANTY`.

### 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_)

### 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_)

### 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.

### 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.

### TaxTransaction

Details related to tax transaction related to a cart. A cart can be modified multiple times and hence it can be sent to tax engine multiple times. All such requests are tagged under single tax transaction id.

*   `cartId` (_string_) Cart ID related to the current tax transaction.
*   `transactionId` (_string_) Tax transaction ID. Multiple requests to the tax engines related to a cart can be tagged with a single tax transaction ID to group together all tax requests related to a single cart.
*   `editOrderId` (_string_) Order ID for the order being edited.

### OrderLevelGiftWrap

Gift Wrap.

*   `giftWrapMode` (_string_)  
    Allowed values: `ALL_ITEMS_TOGETHER`, `EACH_ITEM_SEPARATELY`.
*   `giftFrom` (_string_)
*   `giftTo` (_string_)
*   `giftMessage` (_string_)

### PaymentInstallment

*   `frequency` (_string_)
*   `count` (_integer (int32)_)
*   `amount` (_number_)
*   `text` (_string_)
*   `installments` (_array of PaymentInstallmentItem_)
*   `amountDueToday` (_number_)

### PaymentInstallmentOptions

List of Payment Installment options available.

*   `shippingMethodId` (_string_)
*   `paymentInstallmentList` (_array of PaymentInstallment_)

### 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_)

### Tender

Tender object with payment details.

*   `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`.
*   `paymentSequenceNumber` (_integer (int32)_, required) Payment sequence indicating the order of payment. For example, if customer pays partially 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.
*   `paymentMethod` (_string_, required) Identifies the 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`.
*   `paymentDevice` (_string_, required) Identifies the payment device through which the payment is made. If payment data is manually entered, this field should be set to NoReader. If payment is made in an external system, payment device should be set to External.  
    Allowed values: `Adyen`, `PayPal`, `VerifonePSDK`, `Square`, `CheckReader`, `NoReader`, `External`, `StoredCard`, `Stripe`, `Elavon`, `Aurus`.
*   `amountAuthorized` (_number_, required) Amount paid using this tender.
*   `rawPaymentPayload` (_string_) Raw payment payload. For future use.
*   `routingNumber` (_string_) Bank routing number.
*   `accountNumber` (_string_) Account number. Used for payment through banking system.
*   `checkNumber` (_string_) Check number. Used for payment through checks.
*   `personalIdType` (_string_) Personal identification type.  
    Allowed values: `DriversLicense`, `StateID`, `MilitaryID`, `Passport`, `StudentID`, `PermanentResidentID`, `TribalID`, `BusinessPhone`.
*   `personalIdIssuedBy` (_string_) Issuer of the personal identification.
*   `personalIdNumber` (_string_) Personal identification number.
*   `personalIdExpiryDateMillis` (_integer (int64)_) Personal identification expiry date represented as milliseconds since epoch. Typically expiry date is end of the day and milliseconds since epoch should reflect it accordingly.
*   `cardNumber` (_string_) Card number. Could be either partial (last 4 digits) or complete card number (in case of manual credit card data entry).
*   `cardBin` (_string_, nullable) Card BIN (Bank Identification Number) - first 6 or 8 digits of the card number.
*   `cardCvc` (_string_) Card CVC. Used in case of manual credit card data entry.
*   `track1Data` (_string_) Encrypted track1 data. Used in case of client/app side card encryption by readers like Verifone.
*   `track2Data` (_string_) Encrypted track2 data. Used in case of client/app side card encryption by readers like Verifone.
*   `paymentDeviceId` (_string_) Unique identifier like serial number for payment reader. Used in case of client/app side card encryption by readers like Verifone.
*   `operatingMode` (_string_) Operating mode of the app and card reader - ONLINE/OFFLINE. Other values are unused.  
    Allowed values: `ONLINE`, `OFFLINE`, `DEGRADED`, `TWO_PHASE_STAGING`.
*   `encryptedExpiryDate` (_string_) Encrypted expiry date. Used in case of client/app side card encryption by readers like Verifone.
*   `encryptedCardNumber` (_string_) Encrypted card number. Used in case of client/app side card encryption.
*   `encryptedCvv` (_string_) Encrypted card CVV. Used in case of client/app side card encryption.
*   `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**).
*   `storedCardId` (_string_) Stored Card ID to use in case of card stored for the customer profile.
*   `cardType` (_string_) Card type. For example, Visa, Master, Amex, or Discover.
*   `rawCardType` (_string_) Raw card type, for example, Visa Credit Card, Visa Debit Card, or Master Credit Card. Typically used when an Adyen terminal captures card data for payment.
*   `cardExpirationMonth` (_integer (int32)_) Card expiry month.
*   `cardExpirationYear` (_integer (int32)_) Card expiry year.
*   `pin` (_string_) PIN number typically used for gift card.
*   `authorizationToken` (_string_) Payment authorization token.
*   `authorizationDateMillis` (_integer (int64)_) Payment authorization timestamp as number of milliseconds since epoch.
*   `captureToken` (_string_) Payment capture token.
*   `captureDateMillis` (_integer (int64)_) Payment capture timestamp as number of milliseconds since epoch.
*   `requestId` (_string_) Payment request identification issued by payment gateway/terminal. Typically used for referenced refunds. This field maps to pspReference in case of Adyen payments.
*   `alternateRequestId` (_string_) Alternate payment request identification issued by payment terminal. Example, tender reference in case of Adyen terminal is in store and forward mode.
*   `requestToken` (_string_) Payment request token issued by payment gateway/terminal. Typically used for referenced refunds.
*   `firstName` (_string_) First name to use for billing using this tender.
*   `lastName` (_string_) Last name to use for billing using this tender.
*   `addressLine1` (_string_) Address line 1 to use for billing using this tender.
*   `addressLine2` (_string_) Address line 2 to use for billing using this tender.
*   `city` (_string_) City to use for billing using this tender.
*   `state` (_string_) State to use for billing using this tender.
*   `postalCode` (_string_) Postal code to use for billing using this tender.
*   `country` (_string_) Country code to use for billing using this tender.
*   `paypalInvoiceId` (_string_) Invoice ID. Used when payment is done using paypal reader.
*   `externalPaymentSystemId` (_string_) External payment system identifier in case of External tender.
*   `externalPaymentReferenceId` (_string_) External payment reference identifier in case of External tender.
*   `paymentGatewayConfigId` (_string_) Payment Gateway ID - to be used in case of multiple payment gateways are available to process a single tender.
*   `receiptLines` (_array of PaymentReceiptLine_) Receipt lines. For information to be shown on receipt.
*   `merchantReferenceId` (_string_) Merchant reference ID sent to the payment terminal for this tender. This is required for match response received off asynchronously from payment processor (like Adyen Store and Forward) with the correct payment object for an order.
*   `paymentStatus` (_string_) 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`.
*   `checkType` (_string_) Type of the check - Personal or Business.  
    Allowed values: `Personal`, `Business`.
*   `manualAuthorizationCode` (_string_) Manual authorization code for a tender. Normally it is received after calling a call center agent of a payment processor. For example, call for auth code after check denial/referral, manual auth code for credit card when offline.
*   `paymentTypeCode` (_string_) Type of payment plan. Used for Tender Type - Finance.
*   `cardPresent` (_boolean_) Indicates if the card is physically present or not. Used in case of Tender Type - Finance.
*   `ssn` (_string_) Customer's Social Security Number for verification purposes. Used in case of Tender Type - Finance.
*   `accountHolders` (_array of AccountHolder_) Account Holders information. Used in case of Tender Type - Finance.
*   `additionalInfo` (_array of string_) List of additional information required to verify the buyer. Used in case of Tender Type - Finance.
*   `cashDrawerUrl` (_string_) Represents custom URL using which cash drawer in the network can be accessed.
*   `roundingAmount` (_number_) The delta amount because of rounding.
*   `authStatus` (_string_) Auth status of Credit card payment.  
    Allowed values: `PRE_AUTH`, `AUTH`, `SALE`, `VOID`, `VOID_FAILED`.
*   `tip` (_number_) Tip amount to capture on credit card.
*   `captureStatus` (_string_) Capture status of authorized amount.  
    Allowed values: `CAPTURED`, `CAPTURE_FAILED`, `NON_CAPTURED`, `PARTIALLY_CAPTURED`, `VOID`, `VOID_FAILED`.
*   `financeOrderNo` (_string_) Refers to finance approval/order/confirmation number in external system.
*   `financeInstruction` (_string_) Refers to finance processing related result or instruction long text from external system.
*   `primaryAccountHolder` (_string_) Primary owner on the account.
*   `tradeType` (_string_) Trade Type. In case of WeChatPay: QuickPay.
*   `bankType` (_string_) Bank Type.
*   `fundingSource` (_string_) Funding source like PREPAID.  
    Allowed values: `CHARGED`, `CREDIT`, `DEBIT`, `PREPAID`, `DEFFERED_DEBIT`, `PREPAID_RELOADABLE`, `PREPAID_NONRELOADABLE`, `STORE_VALUE`, `EBT`, `ALTERNATE_TYPE`, `CHECK`, `MOBILE`, `CASH`.
*   `paymentLink` (_string_) Payment Link.
*   `paymentLinkExpiryDate` (_string_) Payment Link expiry date.
*   `paymentId` (_string_) Payment Id from app.
*   `transactionId` (_string_) The transactionId from app's requestId.
*   `paymentReversalStatus` (_string_) Payment Status. UNPROCESSED is used internally by cloud services as a transient state. DISCARDED is used when cash tender is in multi tender and delete by swiping right, ABORTED is used where we internally remove tender from our tender list and add a new tender for eg 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`.
*   `captureAmount` (_number_) Amount captured for credit card.
*   `requestTokenExpireDate` (_integer (int64)_) Request token expire date.
*   `continueOnPendingOrDecline` (_boolean_) Continue order processing on tender pending or decline status.
*   `termsAndConditions` (_string_) Terms and conditions.
*   `gcBalance` (_number_, nullable) Balance remaining in case of tender type gift card.
*   `cashTenderedAmount` (_number_, nullable) The cash amount tendered for this transaction.
*   `cashChangeAmount` (_number_) The remaining change amount in case of cash tender.
*   `cardAlias` (_string_, nullable) Card alias provided in the payment response by gateway. In adyen - a value that uniquely represents the shopper's card number (PAN).
*   `paymentEntryMode` (_string_) 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.
*   `manualCardEntry` (_boolean_)
*   `error` (_boolean_)

### CartSummary

Payload that contains summary of cart totals.

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

### 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.

### 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_)

### Flash

Generic field for display messages. The display message is populated to provide helpful information to user. One of the use cases is eligible coupon code which is not applied.

*   `type` (_string_, required) Type of the flash message.  
    Allowed values: `PROMOTION`, `TAX`, `TRANSACTION_DISCOUNT`, `PRICE_OVERRIDE`, `RETURN`, `ORDER`, `GIFTCARD`, `CART`, `INVENTORY_RESTRICTION`. Example: `PROMOTION`.
*   `message` (_string_, required) Flash message.  
    Example: `Coupons Spring2023, Max100 are in the cart but not applied`.
*   `resourceName` (_string_, required) Resource or entity for which the message is provided.  
    Allowed values: `COUPON_CODE`, `CART`. Example: `COUPON_CODE`.
*   `resourceValues` (_array of string_, required) Resource values for which the message is provided.  
    Items: Example: `Coupon codes - Spring2023, Max100 etc...`. Example: `Coupon codes - Spring2023, Max100 etc...`.

### AuxiliaryItemData

auxiliary Items details support for edit order.

*   `orderItemId` (_string_) Order item ID.
*   `itemAction` (_string_) Items Action.  
    Allowed values: `NEW`, `MODIFY`.

### 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_)

### ReturnCustomerInformation

Return - Customer Information. For return or exchange transactions, use this object to capture information about the person returning the items. Note: This might or might not be the actual customer who purchased the items. This object is exclusively to capture information about the person returning items.

*   `firstName` (_string_, nullable) First Name.
*   `lastName` (_string_, nullable) Last Name.
*   `phone` (_string_, nullable) Phone.  
    Maximum length: 24.
*   `email` (_string_, nullable) Email ID.
*   `address` (_Address_)
*   `personalId` (_PersonalID_)

### DeltaCart

*   `scale` (_integer (int32)_)
*   `roundingMode` (_string_)  
    Allowed values: `UP`, `DOWN`, `CEILING`, `FLOOR`, `HALF_UP`, `HALF_DOWN`, `HALF_EVEN`, `UNNECESSARY`.
*   `transactionId` (_string_)
*   `transactionTimeStamp` (_integer (int64)_)
*   `storeAttribution` (_StoreAttribution_)
*   `transactionType` (_string_)  
    Allowed values: `SALE`, `RETURN`, `EXCHANGE`, `EDIT`, `EDIT_SALE`, `EDIT_REFUND`.
*   `orderId` (_string_)
*   `productList` (_array of Product_)
*   `cancelProductList` (_array of Product_)
*   `productPriceAdjustmentList` (_array of ProductPriceAdjustment_)
*   `tenderList` (_array of Tender_)
*   `refundTenderList` (_array of RefundTender_)
*   `pickUpDetailList` (_array of OrderPickUpDetail_)
*   `reducedTaxAfterPriceAdjustment` (_number_)
*   `fulfillmentTypeChangeProductList` (_array of Product_)
*   `fulfillmentTypeChangeCancelProductList` (_array of Product_)
*   `secondaryProductList` (_array of Product_)
*   `deliveryGroupChangeList` (_array of ProductDeltaDeliveryGroup_)
*   `deliveryGroupList` (_array of DeliveryGroup_)
*   `secondaryDeliveryGroupList` (_array of DeliveryGroup_)
*   `updatedDeliveryGroupList` (_array of DeliveryGroup_)
*   `summary` (_CartSummary_)
*   `originalProductDeliveryGroupList` (_array of ProductDeliveryGroup_)
*   `notesList` (_array of DeltaOrderNote_)
*   `detailNotesList` (_array of DeltaOrderDetailNote_)
*   `removedDeliveryGroupList` (_array of DeliveryGroup_)
*   `productPickUpDetailList` (_array of ProductPickUpDetail_)

### 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_)

### 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.

### Message

*   `message` (_string_)
*   `code` (_string_)
*   `type` (_string_)  
    Allowed values: `ERROR`, `WARN`, `INFO`.

### FeedSource

*   `feedType` (_string_)  
    Allowed values: `PRODUCT`, `PRODUCT_BUNDLE`, `STORE`, `LAYOUT`, `PRODUCT_PROMOTION`, `PRODUCT_CATEGORY`, `PRODUCT_CATEGORY_PROMOTION`, `PROMOTION`, `STORE_INVENTORY_FULL`, `STORE_INVENTORY_DELTA`, `SOCIAL_MEDIA`, `ONE_TIME_PROMOTION_CODE`, `PRODUCT_DELTA`, `CATEGORY`, `ORDER_LIST`, `ORDER_DETAILS`, `RECOMMENDATION`, `TAX_RATE`, `PIPELINE`, `STORE_ASSOCIATES`, `PREDICTSPRING_PROMOTION`, `REWARD`, `CASH_REWARD`, `ASN`, `CORP_TRANSFER`, `POS_PROVISIONING`, `SYNONYM`, `STORE_AREA_GOAL`, `STORE_AREA_HIERARCHY`, `OMS`, `PRODUCT_PRICING`, `PRODUCT_SIZING`, `PRODUCT_INVENTORY`, `PRODUCT_PRICING_DELTA`, `PRODUCT_SIZING_DELTA`, `PRODUCT_INVENTORY_DELTA`, `STORE_DEVICE`, `BOPIS_CANCEL_ORDER`, `PURCHASE_ORDER`, `OFFLINE_PROMOTION`, `PREDICTSPRING_PROMOTION_V2`, `EXPIRED_PAYMENT_LINK_CLEANUP`, `SINGLE_USE_PROMO_CODES`, `STORE_GROUP_FULL`, `STORE_GROUP_DELTA`.
*   `feedSourceName` (_string_)
*   `feedSourceType` (_string_)  
    Allowed values: `URL`, `SFTP`, `FTP`, `S3`, `YEXT`, `AVALARA`, `SABRIX`, `AVALARA_V2`, `VERTEX`, `SPI`, `WEBDAV`.
*   `fileNames` (_array of string_)
*   `feedFileType` (_string_)  
    Allowed values: `CSV`, `TSV`, `SSV`, `PSV`, `XML`, `STORE_XML`, `INVENTORY_XML`, `JSON`, `YEXT`, `ASN_EDI_856`, `OTHER`.
*   `feedPreprocessorClass` (_string_)
*   `feedFileMetadataList` (_array of FeedFileMetadata_)
*   `baseURL` (_string_)
*   `urlRequestParams` (_string_)
*   `folderName` (_string_)
*   `host` (_string_)
*   `port` (_integer (int32)_)
*   `userName` (_string_)
*   `password` (_string_)
*   `s3FeedTimestamp` (_integer (int64)_)
*   `parentTag` (_string_)
*   `multiValueFieldList` (_array of string_)
*   `preserveIfNullFieldList` (_array of string_)
*   `currencyCode` (_string_)
*   `idColumn` (_string_)
*   `multiValueFieldDelimiter` (_string_)
*   `columnNames` (_string_)
*   `promotionId` (_string_)
*   `deleteFeed` (_boolean_)
*   `addFeed` (_boolean_)
*   `updateFeed` (_boolean_)
*   `fullFeed` (_boolean_)
*   `sourceEncoding` (_string_)
*   `maxRecordsToProcess` (_integer (int32)_)
*   `apiKey` (_string_)
*   `version` (_string_)
*   `categoryProductRankColumnName` (_string_)
*   `productIdFieldName` (_string_)
*   `feedName` (_string_)
*   `feedDescription` (_string_)
*   `isProductBundleCategorySource` (_boolean_)
*   `importPromotions` (_boolean_)
*   `hasCategories` (_boolean_)
*   `shouldProcessCategoryCounts` (_boolean_)
*   `skipFields` (_string_)
*   `hasProductMultiPromotions` (_boolean_)
*   `fieldDelimiter` (_string_)
*   `endLineDelimiter` (_string_)
*   `deviceOS` (_string_)
*   `dataSource` (_string_)  
    Allowed values: `NETSUITE`.
*   `accountId` (_string_)
*   `licenseKey` (_string_)
*   `merchantReferenceCode` (_string_)
*   `bulkProcessing` (_boolean_)
*   `backUp` (_boolean_)
*   `continueOnFileError` (_boolean_)
*   `clientId` (_string_)
*   `clientSecret` (_string_)
*   `hasActualInventoryCount` (_boolean_)
*   `oauthHost` (_string_)

### CombinationGroup

Products that receive the discount when the qualifying condition is met.

*   `quantity` (_integer (int32)_)
*   `quantityOperator` (_string_)  
    Allowed values: `EQL`, `GTE`.
*   `productRules` (_array of PromotionRule_)

### PromotionRule

Promotion rule provides the filtering criteria to determine if the order is eligible for promotion.

*   `promotionRuleId` (_string_)
*   `promotionId` (_string_)
*   `operator` (_string_, nullable) Operation to be performed for the rule depending on the value types.  
    Allowed values: `DOES_NOT_CONTAIN`, `CONTAINS`, `GTE`, `LTE`, `EXISTS`, `NOT_EXISTS`.
*   `value` (_array of string_, nullable) Values are based on the value Types. They contain a list and for single value attributes use a list of size 1.  
    Unique items.
*   `valueType` (_string_, nullable) Value Type provides the type of value.

### TierGroup

*   `amountExpression` (_string_)
*   `tierRules` (_array of PromotionRule_)
*   `id` (_string_)
*   `selectedProducts` (_array of string_)

### PromotionLanguageData

Promotion attributes in additional languages.

*   `promotionId` (_string_)
*   `language` (_string_) The language/locale of properties for this object.
*   `name` (_string_) The name used for internal identification of the promotion. This field can also be used to assign a locale/language-specific name for the promotion.
*   `title` (_string_) The locale/language-specific title used for external display of the promotion on the presentation layer.
*   `description` (_string_) The locale/language-specific description used for external display of the promotion on the presentation layer. This contains the disclaimer and other information.

### PromotionMapping

*   `quantityOperator` (_string_)  
    Allowed values: `EQL`, `GTE`.
*   `merchantId` (_string_)
*   `type` (_string_)  
    Allowed values: `QUALIFYING_GROUP`, `DISCOUNTED_GROUP`, `TIER_GROUP`, `FREE_SAMPLES`.
*   `promotionRulesGroupId` (_string_)
*   `promotionMappingId` (_string_)
*   `promotionId` (_string_)
*   `amountExpression` (_string_)
*   `quantity` (_integer (int32)_)
*   `locale` (_string_)
*   `region` (_string_)

### PromotionCode

*   `merchantId` (_string_)
*   `region` (_string_)
*   `promotionId` (_string_)
*   `oneTimeCode` (_string_)
*   `oneTimeCodeCS` (_string_)
*   `codeType` (_string_)
*   `externalId` (_string_)
*   `codeAssignedDate` (_string (date-time)_)
*   `codeRedeemed` (_boolean_)
*   `codeRedeemedDate` (_string (date-time)_)
*   `storeCode` (_string_)
*   `promotionValidDate` (_string (date-time)_)
*   `type` (_string_)
*   `message` (_string_)
*   `validFrom` (_string (date-time)_)
*   `validTo` (_string (date-time)_)
*   `updatedOn` (_string (date-time)_)

### CustomerOrder

*   `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`.
*   `orderId` (_string_, required) Order Identifier.  
    Maximum length: 128. Example: `PS00027533`.
*   `quoteId` (_string_, nullable) Quote reference identifier. Links the order to a quote. Available when the order is based on a quote.  
    Maximum length: 128.
*   `externalQuoteId` (_string_, nullable) External quote reference identifier. Quote ID from the external system. Available when the order is based on a quote.  
    Maximum length: 128.
*   `orderStatus` (_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`.
*   `status` (_string_, read-only, nullable, deprecated)
    
    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`.
*   `orderType` (_string_, nullable) Type of order. It is used in case of order fulfilled by the stores,  
    E.g. BOPIS, BOFIS, BOSS orders.  
    Allowed values: `STORE_PICKUP`, `STORE_FULFILLMENT`, `LAYAWAY`, `MIXED_MODE`, `ONLINE`, `ONLINE_RESERVE`.
*   `email` (_string_, nullable) Customer Email ID.  
    It is available for signed-in customers or when email is captured in the  
    shipping address for guest customers.  
    Maximum length: 128.
*   `totalAmount` (_number_, required) Order total.
*   `shippingSubTotal` (_number_, nullable) Shipping sub total.
*   `shippingDiscount` (_number_, nullable) Shipping discount.
*   `shippingMethod` (_ShippingMethod_)
*   `shippingTax` (_number_, nullable) Shipping method tax.
*   `shippingTaxClass` (_string_, nullable) Shipping method tax class.
*   `taxSubTotal` (_number_, nullable) Total tax amount for this order.  
    It is applicable for regions/countries where Tax is supported. For countries where VAT is applicable, refer to valueAddedTax.  
    
*   `taxExemption` (_number_, nullable) The tax exemption amount for this order.  
    It is applicable whenever an associate applies a tax exemption to the order in store.  
    
*   `shippingTaxExemption` (_number_, nullable) Total Shipping tax exemption amount for this order. This does not include any product price or shipping cost. It includes only the tax exemption on Shipping.
*   `valueAddedTax` (_number_, nullable) Total VAT amount for this order.  
    It is applicable for regions/countries where VAT is supported. For countries where tax is applicable, refer to taxSubTotal.  
    
*   `orderSubTotal` (_number_, required) Order total excluding discounts, shipping costs and taxes but  
    inclusive of VAT.
*   `tenders` (_array of OrderPaymentDetail_, nullable) Payment information: The system supports multiple payment options.  
    Whenever an order is purchased using payment instrument/s,  
    the order will have this list of tenders. However, there are some exceptional scenarios  
    where this list may not be available, which are mentioned below: 1. Partial payment where no minimum payment is required. 2. If a 100% manual or promotional discount is applied.  
    When importing an order paid with a credit card from an external system, make sure to include all required fields as well as the following fields:  
    1\. requestId  
    2\. cardType  
    For a **referenced refund** on the credit card, all the above fields and CMS configuration are necessary. Set the below CMS property to **Default** to initiate a referenced refund.  
    **CMS** > **Store Management** > **Store Settings** > **Refund Mode for External Order**.
*   `shippingAddress` (_Address_)
*   `billingAddress` (_Address_)
*   `productList` (_array of Product_, nullable) List of products.  
    The list doesn't include returned products. While importing an order from an external system,  
    it is optional as the products and return products both can be provided in orderProductList.  
    
*   `orderProductList` (_array of OrderProduct_, required) A list of products in this order, including returned and non-returned items. It also provides details of price adjustments, if any, applied to the items.
*   `returnProductList` (_array of ReturnedProduct_, nullable) List of items that have been returned.  
    While importing an order from an external system,  
    it is optional as the products and return products both can be provided in orderProductList.  
    
*   `discount` (_number_, nullable) Order discount amount. Total discount applied using promo coupons and/or item level price override.  
    It doesn't include transaction discount. For transaction discount, refer to transactionDiscountAmount.  
    Mandatory: If any promo coupon is applied or any item level price override is applied.
*   `externalOrderId` (_string_, nullable) The reference ID of the order that corresponds to the external system. This is relevant in cases where the external downstream system or ERP system uses its own ID instead of the POS order ID for further processing. It is necessary to provide this reference ID while importing the order in POS, especially when updates like returns are required.  
    Maximum length: 128.
*   `storeId` (_string_, required) ID of the store where the order is captured. For BOPIS orders placed via a website,  
    this field contains the store ID for pickup.  
    Maximum length: 128.
*   `storeAssociateId` (_string_, required) The logged-in store associate's ID.  
    Maximum length: 256.
*   `orderSource` (_string_, required) This is the channel or source of an order or transaction. It must be IN\_STORE for all orders placed in store. It must be WEB for all orders placed on the website. When importing an order from an external system, ensure to provide: 1. IN\_STORE for orders placed in store, otherwise the order will not be available in CMS under successful order report. 2. WEB for orders placed on the website to skip its entry from successful order report.  
    Allowed values: `DEFAULT`, `IN_STORE`, `POPUP_STORE`, `WEB`, `APP`, `OUTLET_STORE`, `ONLINE`, `POS_EA`.
*   `paymentSource` (_string_, nullable) Payment source. If an order is paid with a single tender,  
    it has the payment method of that tender. The following payment methods  
    are supported: CreditCard, Unknown, External, GiftCard, MixedMode, Cash, Miscellaneous,  
    Finance, StoreCredit, PayByLink, RemotePayByLink, Reward, and Check.  
    In the case of multi-tender payment, the payment source should be MixedMode.
*   `shippingMethodId` (_string_, nullable) Shipping method ID.  
    Mandatory for delivery order  
    Note: If item level shipping method or item level shipping address is enabled,  
    use the shippingMethod from deliveryGroups.  
    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)
*   `installationId` (_string_, nullable) The device identifier is required for IN\_STORE purchases.  
    If not provided, it defaults to EXTERNAL for orders from external systems.  
    Default: `EXTERNAL`. Maximum length: 128.
*   `lastDateToReturnTimeStamp` (_integer (int64)_, nullable) Last date to return. The return window policy sets the last date for a return.  
    For example, if the policy is one month long and a sale occurs on April 1st,  
    the lastDateToReturnTimeStamp will be set to May 1st.  
    When an order is imported from an external system,  
    the system will determine the order's eligibility for return based on the provided date.  
    If the date is not provided, the item can be returned without any time limitation.  
    Note: Represented as number of milliseconds since epoch.  
    .  
    Example: `1653078974310`.
*   `taxRates` (_array of OrderTaxRate_, nullable) Tax breakdown. Mandatory if tax engine is configured along with tax rates.  
    For VAT countries, refer to vatRates.
*   `taxExemptions` (_array of TaxExemptionRequest_, nullable) List of tax exemptions, if any, applied to order.
*   `vatRates` (_array of OrderTaxRate_, nullable) VAT breakdown. Mandatory if tax engine is configured along with VAT rates. For TAX countries, refer to taxRates.
*   `shippingName` (_string_, nullable) Shipping name  
    Mandatory for delivery order  
    Note: If item level shipping method or item level shipping address is enabled,  
    use the shippingMethod.name from deliveryGroups.  
    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)
*   `shippingDescription` (_string_, nullable) Shipping description.  
    Mandatory for delivery order  
    Note: If item level shipping method or item level shipping address is enabled,  
    use the shippingMethod.description from deliveryGroups.  
    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)
*   `shippingCarrier` (_string_, nullable) Shipping carrier, for example, UPS, USPS, FedEx, or DHL.  
    Required for delivery orders.  
    Note: If item level shipping method or item level shipping address is enabled,use the shippingMethod.carrier from deliveryGroups.  
    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)
*   `shippingServiceLevel` (_string_, nullable) Shipping service level, for example, 3-5 Days, 1-Day, Express, Standard, or Overnight.  
    Required for delivery order  
    Note: If item level shipping method or item level shipping address is enabled,use the shippingMethod.serviceLevel from deliveryGroups.  
    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)
*   `phoneNumber` (_string_, nullable) Customer phone number. Mandatory for signed-in customers  
    or when phone number is captured in the shipping address for guest customers.  
    
*   `orderDate` (_integer (int64)_, required) Date when order was placed.  
    Represented as number of milliseconds since epoch.
*   `coupons` (_array of string_, nullable) List of coupon codes applied for this order.
*   `customerProfile` (_Profile_)
*   `updateDate` (_integer (int64)_, required) Date when the order was last updated. Represented as number of milliseconds since epoch.
*   `taxableAmount` (_number_, nullable) Taxable amount.  
    Mandatory if the tax engine is configured along with tax rates.
*   `fulfillmentType` (_string_, required, deprecated) Order fulfillment type.  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `notesList` (_array of OrderNote_, nullable) List of notes for this order if any.
*   `rewardAmount` (_number_, nullable) Reward amount applied to this order if any.
*   `transactionDiscountAmount` (_number_, nullable) Transaction discount applied to this order if any.
*   `canReturn` (_boolean_, write-only, nullable) Flag indicating if this order can be returned.  
    During order import in POS, if it is not provided,the order remains returnable.
*   `paymentDetails` (_array of OrderPaymentDetail_, nullable, deprecated) Deprecated. Use 'tenders' instead.
*   `refundPaymentDetails` (_array of OrderRefundPaymentDetail_, nullable) Order refund payment details.  
    If an order is returned, it will have all refunded tenders.  
    
*   `noReceiptReturns` (_boolean_, nullable) Flag indicating if this is an order returned without any receipt.
*   `failedReasonCode` (_string_, read-only, nullable) Failed order reason code corresponding to payment.  
    Possible values are CANCELED, PAYMENT\_DECLINED, and PAYMENT\_REVERTED.  
    Applicable only if the order fails. Not required when importing an order from an external system.  
      
    Allowed values: `CANCELED`, `PAYMENT_DECLINED`, `PAYMENT_REVERTED`, `PAYMENT_REVERSAL_FAILED`, `PAYMENT_STATUS_UNKNOWN`, `PAYMENT_NOT_FOUND`.
*   `twoPhaseCommitReferenceId` (_string_, read-only, nullable, deprecated) Used for internal processing. Don't use in external systems.
*   `reasons` (_array of Reason_, nullable) List of reasons pertaining to the actions performed on the order. Eg. Reason details for discounts applied on order.
*   `partiallyPaid` (_boolean_) Flag indicating if this order is partially paid for.
*   `orderActivityLog` (_array of OrderActivityLog_, nullable) The list of transactions that have happened so far on the order in descending form. It is used to track the order activities like order creation, order update, order return, etc. It is mandatory while exporting order from POS to external system and optional while importing order from external system to POS. If it is not provided during order import from external system, POS system generates it using other available attributes from the order.
*   `storeAttribution` (_StoreAttribution_)
*   `tipTotal` (_number_, nullable) Total tip added to the order.
*   `orderFiscalData` (_array of OrderFiscalData_, nullable) All fiscal data for this order if any.
*   `pickUpDetailList` (_array of OrderPickUpDetail_, nullable) List of pickup persons.  
    Applicable if the order has items that need pickup from a store  
    Each item can have separate pickup person  
    and the each item will have link to its pickup person.  
    
*   `offlineMode` (_boolean_, nullable) Flag indicating if the order got created in offline mode.  
    If not mentioned, it is considered as false.
*   `employee` (_Employee_)
*   `originalOrderId` (_string_) Order ID of the original order if the order is an exchange order.
*   `deliveryGroups` (_array of DeliveryGroup_, nullable) List of delivery groups. Each delivery group has shipping address, corresponding shipping method and other delivery details.  
    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)
*   `loyaltyId` (_string_, nullable) The loyalty Id of the customer in case they are enrolled in the loyalty program.
*   `rewardList` (_array of Reward_, read-only, nullable) The list of loyalty rewards applied in this transaction.
*   `pointsEarned` (_integer (int32)_, read-only, nullable) The number of loyalty points earned in this transaction.Applicable for order with customer enrolled in the loyalty program.
*   `returnCustomerInformationList` (_array of OrderReturnCustomerInformation_, nullable) List of customer/person who returned the items.  
    Applicable if the order has returned items and if the merchant is configured to capture returning customer's details.  
    
*   `orderFulfillmentType` (_string_, nullable) Order Fulfillment Type, It is indicate of fulfillment type of order level Eg. IN\_STORE, ONLINE or MIXED\_CART.  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `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.
*   `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.
*   `taxFreeDocument` (_TaxFreeDocument_)
*   `orderRefundFeeDetailList` (_array of OrderRefundFeeDetail_, nullable) List of Refund fee like restocking fee on returned or canceled items.  
    Applicable when item is returned or canceled and refund fee is configured.  
    For more detail on refund fee,
*   `error` (_boolean_)

### PaymentData

*   `paymentType` (_string_)
*   `paymentCard` (_Card_)
*   `paymentCardToken` (_string_)
*   `paypalData` (_PaypalData_)
*   `squareData` (_SquareData_)
*   `adyenData` (_AdyenData_)
*   `authorizationCode` (_string_)
*   `reasonCode` (_integer (int32)_)
*   `transactionId` (_string_)
*   `transactionHash` (_string_)
*   `referenceTransactionId` (_string_)
*   `avsResultCode` (_string_)
*   `requestToken` (_string_)
*   `transactionToken` (_string_)
*   `subscriptionId` (_string_)
*   `paymentToken` (_PaymentToken_)
*   `method` (_string_)  
    Allowed values: `Cash`, `Credit`, `External`, `MixedMode`, `PaypalExpress`, `GiftCard`, `Braintree`, `StoreCredit`, `OrderCredit`, `AfterPay`, `WeChatPay`, `AliPay`, `PayByLink`, `RemotePayByLink`, `Reward`, `GooglePay`, `Affirm`, `Afterpay`, `CreditCard`, `Check`.
*   `paymentNetworkTransactionId` (_string_)
*   `cashTotal` (_number_)
*   `paymentCards` (_array of Card_)
*   `savePaymentData` (_boolean_)
*   `amount` (_number_)
*   `authenticationResponse` (_string_)
*   `returnsGiftCardProduct` (_Product_)
*   `decision` (_string_)
*   `installmentToken` (_string_)
*   `orderPaymentDetail` (_ExchangeOrderPaymentDetail_)
*   `originalTenders` (_array of ExchangeOrderPaymentDetail_)
*   `performUnreferencedRefunds` (_boolean_, deprecated) Use refundMode instead.
*   `orderDate` (_integer (int64)_)
*   `cashDrawerUrl` (_string_)
*   `disclaimerText` (_string_)
*   `roundingAmount` (_number_)
*   `externalPaymentSystemId` (_string_) External payment system identifier in case of External tender.
*   `refundMode` (_string_, nullable) Provides the refund mode that requires special handling. Possible values: Unreferenced for unreferenced refund and ExternalAuth for call for auth refund. These refunds are to be issued by the app. If refund mode is empty, regular refund flow will be followed.  
    Allowed values: `Unreferenced`, `External`, `Default`, `OMS`, `ProductExchange`.
*   `paymentTransactionId` (_string_, nullable) Payment Transaction ID. Used in cases where payment transaction ID is pre-generated and used as reference number by the app side payment gateway integration. Used in case of Elavon.

### OrderReturnsPolicy

All applied return policies.

*   `maxCashRefundAllowed` (_number_)
*   `managerOverrideAllowed` (_boolean_)
*   `applicableReturnsPolicyTypes` (_array of string_)  
    Items: Allowed values: `MaxReturnsDays`, `MaxCashReturns`, `RemapRefundTenders`, `StoreCredit`, `GiftCard`, `CustomerNotInPersonRefund`, `CreditCard`, `NoReceiptReturns`, `Check`.

### OrderPaymentDetail

Deprecated. Use 'tenders' instead.

*   `transactionId` (_string_, required) The 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 corresponds 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 Order ID.  
    Maximum length: 128.
*   `paymentId` (_string_, required) The unique identifier for a payment/tender. As the order can have multiple payments, each payment will have a unique payment ID.  
    Maximum length: 128.
*   `paymentMethod` (_string_, required) Payment method. Required for BOPIS and BOFIS. Not applicable for ROPIS.  
    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. Possible values are: - `UNPROCESSED` is used internally by cloud services as a transient state. - `DISCARDED` is used when cash tender is part of a multi-tender payment and is deleted by swiping right. - `ABORTED` is used when we internally remove a tender from the tender list and add a new tender (e.g., for gift cards).  
    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 and gift cards 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. for credit cards.  
    Maximum length: 32.
*   `requestId` (_string_, nullable) Payment request identification issued by the payment gateway/terminal. 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`. Required 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 example, the Adyen terminal generates a temporary ID called a "tender reference" whenever it goes into 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 ID issued by the payment gateway/terminal. Required for refund on credit cards.  
    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 or 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. The original order is updated to a returned or 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 the tender is carried over to the new order.
*   `receiptLines` (_array of PaymentReceiptLine_) Receipt lines. For information to be shown on receipt. Required for credit card payments using Adyen.
*   `paymentSequenceNumber` (_integer (int64)_, required) Payment sequence indicating the order of payment. For example, if a customer pays with cash first and the remaining amount with a credit card, the cash tender should have a paymentSequenceNumber of 1, and the credit card tender should have a paymentSequenceNumber of 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 when payment method is 'Check'.  
    Maximum length: 32.
*   `accountNumber` (_string_, nullable) Account number. Used for payment through banking system like 'Check' and '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 field contains the tokenized value for payments made via Credit Card, Pay By Link, or Remote Pay By Link. 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. For example: call for authorization code after check denial or referral, or manual authorization code for a credit card when offline.  
    Maximum length: 50.
*   `cashDrawerUrl` (_string_, nullable) Represents custom URL using which cash drawer in the network can be accessed. Required 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 number 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.
*   `paymentMethodString` (_string_)
*   `authorizationDateMillis` (_integer (int64)_, write-only)
*   `captureDateMillis` (_integer (int64)_, write-only)
*   `effecitivePaidAmount` (_number_)

### 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_)

### 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)_)

### 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`.

### PaymentInstallmentItem

*   `amount` (_number_)
*   `text` (_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`.

### AccountHolder

Account Holders information. Used in case of Tender Type - Finance.

*   `name` (_string_)
*   `primary` (_boolean_)

### 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_)

### PersonalID

Customer/Person Identification Information.

*   `type` (_string_, nullable) ID type, for example, State ID, Military ID, or Driving License.
*   `value` (_string_, nullable) ID Number/Value.
*   `expiry` (_string (date-time)_, nullable) ID Expiration Date.
*   `issuedBy` (_string_, nullable) Issued by state.

### RefundTender

*   `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`.
*   `paymentSequenceNumber` (_integer (int32)_, required) Payment sequence indicating the order of payment. For example, if customer pays partially 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.
*   `paymentMethod` (_string_, required) Identifies the 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`.
*   `paymentDevice` (_string_, required) Identifies the payment device through which the payment is made. If payment data is manually entered, this field should be set to NoReader. If payment is made in an external system, payment device should be set to External.  
    Allowed values: `Adyen`, `PayPal`, `VerifonePSDK`, `Square`, `CheckReader`, `NoReader`, `External`, `StoredCard`, `Stripe`, `Elavon`, `Aurus`.
*   `amountAuthorized` (_number_, required) Amount paid using this tender.
*   `rawPaymentPayload` (_string_) Raw payment payload. For future use.
*   `routingNumber` (_string_) Bank routing number.
*   `accountNumber` (_string_) Account number. Used for payment through banking system.
*   `checkNumber` (_string_) Check number. Used for payment through checks.
*   `personalIdType` (_string_) Personal identification type.  
    Allowed values: `DriversLicense`, `StateID`, `MilitaryID`, `Passport`, `StudentID`, `PermanentResidentID`, `TribalID`, `BusinessPhone`.
*   `personalIdIssuedBy` (_string_) Issuer of the personal identification.
*   `personalIdNumber` (_string_) Personal identification number.
*   `personalIdExpiryDateMillis` (_integer (int64)_) Personal identification expiry date represented as milliseconds since epoch. Typically expiry date is end of the day and milliseconds since epoch should reflect it accordingly.
*   `cardNumber` (_string_) Card number. Could be either partial (last 4 digits) or complete card number (in case of manual credit card data entry).
*   `cardBin` (_string_, nullable) Card BIN (Bank Identification Number) - first 6 or 8 digits of the card number.
*   `cardCvc` (_string_) Card CVC. Used in case of manual credit card data entry.
*   `track1Data` (_string_) Encrypted track1 data. Used in case of client/app side card encryption by readers like Verifone.
*   `track2Data` (_string_) Encrypted track2 data. Used in case of client/app side card encryption by readers like Verifone.
*   `paymentDeviceId` (_string_) Unique identifier like serial number for payment reader. Used in case of client/app side card encryption by readers like Verifone.
*   `operatingMode` (_string_) Operating mode of the app and card reader - ONLINE/OFFLINE. Other values are unused.  
    Allowed values: `ONLINE`, `OFFLINE`, `DEGRADED`, `TWO_PHASE_STAGING`.
*   `encryptedExpiryDate` (_string_) Encrypted expiry date. Used in case of client/app side card encryption by readers like Verifone.
*   `encryptedCardNumber` (_string_) Encrypted card number. Used in case of client/app side card encryption.
*   `encryptedCvv` (_string_) Encrypted card CVV. Used in case of client/app side card encryption.
*   `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**).
*   `storedCardId` (_string_) Stored Card ID to use in case of card stored for the customer profile.
*   `cardType` (_string_) Card type. For example, Visa, Master, Amex, or Discover.
*   `rawCardType` (_string_) Raw card type, for example, Visa Credit Card, Visa Debit Card, or Master Credit Card. Typically used when an Adyen terminal captures card data for payment.
*   `cardExpirationMonth` (_integer (int32)_) Card expiry month.
*   `cardExpirationYear` (_integer (int32)_) Card expiry year.
*   `pin` (_string_) PIN number typically used for gift card.
*   `authorizationToken` (_string_) Payment authorization token.
*   `authorizationDateMillis` (_integer (int64)_) Payment authorization timestamp as number of milliseconds since epoch.
*   `captureToken` (_string_) Payment capture token.
*   `captureDateMillis` (_integer (int64)_) Payment capture timestamp as number of milliseconds since epoch.
*   `requestId` (_string_) Payment request identification issued by payment gateway/terminal. Typically used for referenced refunds. This field maps to pspReference in case of Adyen payments.
*   `alternateRequestId` (_string_) Alternate payment request identification issued by payment terminal. Example, tender reference in case of Adyen terminal is in store and forward mode.
*   `requestToken` (_string_) Payment request token issued by payment gateway/terminal. Typically used for referenced refunds.
*   `firstName` (_string_) First name to use for billing using this tender.
*   `lastName` (_string_) Last name to use for billing using this tender.
*   `addressLine1` (_string_) Address line 1 to use for billing using this tender.
*   `addressLine2` (_string_) Address line 2 to use for billing using this tender.
*   `city` (_string_) City to use for billing using this tender.
*   `state` (_string_) State to use for billing using this tender.
*   `postalCode` (_string_) Postal code to use for billing using this tender.
*   `country` (_string_) Country code to use for billing using this tender.
*   `paypalInvoiceId` (_string_) Invoice ID. Used when payment is done using paypal reader.
*   `externalPaymentSystemId` (_string_) External payment system identifier in case of External tender.
*   `externalPaymentReferenceId` (_string_) External payment reference identifier in case of External tender.
*   `paymentGatewayConfigId` (_string_) Payment Gateway ID - to be used in case of multiple payment gateways are available to process a single tender.
*   `receiptLines` (_array of PaymentReceiptLine_) Receipt lines. For information to be shown on receipt.
*   `merchantReferenceId` (_string_) Merchant reference ID sent to the payment terminal for this tender. This is required for match response received off asynchronously from payment processor (like Adyen Store and Forward) with the correct payment object for an order.
*   `paymentStatus` (_string_) 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`.
*   `checkType` (_string_) Type of the check - Personal or Business.  
    Allowed values: `Personal`, `Business`.
*   `manualAuthorizationCode` (_string_) Manual authorization code for a tender. Normally it is received after calling a call center agent of a payment processor. For example, call for auth code after check denial/referral, manual auth code for credit card when offline.
*   `paymentTypeCode` (_string_) Type of payment plan. Used when the tender type is Finance.
*   `cardPresent` (_boolean_) Indicates if the card is physically present or not. Used in case of Tender Type - Finance.
*   `ssn` (_string_) Customer's Social Security Number for verification purposes. Used in case of Tender Type - Finance.
*   `accountHolders` (_array of AccountHolder_) Account Holders information. Used in case of Tender Type - Finance.
*   `additionalInfo` (_array of string_) List of additional information required to verify the buyer. Used in case of Tender Type - Finance.
*   `cashDrawerUrl` (_string_) Represents custom URL using which cash drawer in the network can be accessed.
*   `roundingAmount` (_number_) The delta amount because of rounding.
*   `authStatus` (_string_) Auth status of Credit card payment.  
    Allowed values: `PRE_AUTH`, `AUTH`, `SALE`, `VOID`, `VOID_FAILED`.
*   `tip` (_number_) Tip amount to capture on credit card.
*   `captureStatus` (_string_) Capture status of authorized amount.  
    Allowed values: `CAPTURED`, `CAPTURE_FAILED`, `NON_CAPTURED`, `PARTIALLY_CAPTURED`, `VOID`, `VOID_FAILED`.
*   `financeOrderNo` (_string_) Refers to the finance approval/order/confirmation number in the external system.
*   `financeInstruction` (_string_) Refers to finance processing related result or instruction long text from external system.
*   `primaryAccountHolder` (_string_) Primary owner on the account.
*   `tradeType` (_string_) Trade Type. In case of WeChatPay: QuickPay.
*   `bankType` (_string_) Bank Type.
*   `fundingSource` (_string_) Funding source like PREPAID.  
    Allowed values: `CHARGED`, `CREDIT`, `DEBIT`, `PREPAID`, `DEFFERED_DEBIT`, `PREPAID_RELOADABLE`, `PREPAID_NONRELOADABLE`, `STORE_VALUE`, `EBT`, `ALTERNATE_TYPE`, `CHECK`, `MOBILE`, `CASH`.
*   `paymentLink` (_string_) Payment Link.
*   `paymentLinkExpiryDate` (_string_) Payment Link expiry date.
*   `paymentId` (_string_) Payment Id from app.
*   `transactionId` (_string_) The transactionId from app's requestId.
*   `paymentReversalStatus` (_string_) Payment Status. UNPROCESSED is used internally by cloud services as a transient state. DISCARDED is used when cash tender is in multi tender and delete by swiping right, ABORTED is used where we internally remove tender from our tender list and add a new tender for eg 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`.
*   `captureAmount` (_number_) Amount captured for credit card.
*   `requestTokenExpireDate` (_integer (int64)_) Request token expire date.
*   `continueOnPendingOrDecline` (_boolean_) Continue order processing on tender pending or decline status.
*   `termsAndConditions` (_string_) Terms and conditions.
*   `gcBalance` (_number_, nullable) Balance remaining in case of tender type gift card.
*   `cashTenderedAmount` (_number_, nullable) The cash amount tendered for this transaction.
*   `cashChangeAmount` (_number_) The remaining change amount in case of cash tender.
*   `cardAlias` (_string_, nullable) Card alias provided in the payment response by gateway. In adyen - a value that uniquely represents the shopper's card number (PAN).
*   `paymentEntryMode` (_string_) 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.
*   `refundRequestId` (_string_) Refund ID provided by the payment processor after issuing the refund. For example, pspReference in case of Adyen.
*   `refundDate` (_integer (int64)_) Date and time of the refund.
*   `refundedAmount` (_number_) Total amount refunded.
*   `performedUnreferencedRefunds` (_boolean_) Deprecated. Use refundMode instead.
*   `refundedAsPartOfOrderId` (_string_) Order that involves returning an item along with purchase and still refund is issued.
*   `originalTenders` (_array of ExchangeOrderPaymentDetail_) Original tenders associated with the refund.
*   `refundMode` (_string_, nullable) If the tender requires special handling when performing a refund, provide the appropriate refund mode here.  
    Allowed values: `Unreferenced`, `External`, `Default`, `OMS`, `ProductExchange`.
*   `refundIssued` (_boolean_, read-only, nullable) Flag to indicate refund issued by backend for tenders which are collected by app.  
    Example: `false`.
*   `manualCardEntry` (_boolean_)
*   `error` (_boolean_)

### ProductDeltaDeliveryGroup

List of delivery groups for product.  
, corresponding order item id and new delivery group id.  
It is used for edit order only when changing the delivery group for existing item.

*   `deliveryGroupId` (_string_, required) Delivery group id. Each delivery item from productList and orderProductList has a reference to this ID.  
    Maximum length: 32.
*   `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.`.

### 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.

### ProductDeliveryGroup

*   `orderItemId` (_string_)
*   `deliveryGroup` (_DeliveryGroup_)

### DeltaOrderNote

*   `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.
*   `noteStatus` (_string_, nullable) Note Status for Edit Order, only used in transaction data, Will not persist to Database.  
    Allowed values: `ADD`, `UPDATE`.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### DeltaOrderDetailNote

*   `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.
*   `noteStatus` (_string_, nullable) Note Status for Edit Order, only used in transaction data, Will not persist to Database.  
    Allowed values: `ADD`, `UPDATE`.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### ProductPickUpDetail

List of product pickup detail.  
Applicable if the order is edit order.

*   `orderItemId` (_string_)
*   `pickupDetailId` (_string_)
*   `pickupLocation` (_Store_)
*   `dateTimeSlot` (_DateTimeSlot_)

### 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_)

### FeedFileMetadata

*   `fileName` (_string_)
*   `feedFileType` (_string_)  
    Allowed values: `CSV`, `TSV`, `SSV`, `PSV`, `XML`, `STORE_XML`, `INVENTORY_XML`, `JSON`, `YEXT`, `ASN_EDI_856`, `OTHER`.
*   `feedPreprocessorClass` (_string_)
*   `parentTag` (_string_)
*   `multiValueFieldList` (_array of string_)
*   `preserveIfNullFieldList` (_array of string_)
*   `idColumn` (_string_)
*   `multiValueFieldDelimiter` (_string_)
*   `columnNames` (_string_)
*   `sourceEncoding` (_string_)

### OrderProduct

A list of products in this order, including returned and non-returned items. It also provides details of price adjustments, if any, applied to the items.

*   `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.
*   `priceAdjustments` (_array of PriceAdjustment_)
*   `orignalQuantity` (_integer (int32)_)
*   `groupId` (_string_)
*   `returnRelated` (_boolean_)
*   `mainProduct` (_boolean_)
*   `shippingAddress` (_Address_)
*   `requiredDepositPercentage` (_number_)
*   `virtual` (_boolean_)

### ReturnedProduct

List of items that have been returned. While importing an order from an external system, it is optional as the products and return products both can be provided in orderProductList.

*   `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.
*   `refundDate` (_integer (int64)_, required) The date and time, in milliseconds since epoch, when the item was returned.  
    Example: `1617222000000`.
*   `exchangedForOrderId` (_string_, nullable) The order ID for which the item was exchanged. Applicable for exchange.  
    Maximum length: 128.
*   `returnedAtStoreId` (_string_, required) The store ID where the item was returned.  
    Maximum length: 256.
*   `returnProcessedByAssociateId` (_string_, required) ID of the store associate who performed the return.  
    Maximum length: 256.
*   `returnedAtStoreRegisterId` (_string_, required) The register ID where the item was returned.  
    Maximum length: 128.
*   `priceAdjustments` (_array of PriceAdjustment_)
*   `offlineMode` (_boolean_, nullable) Specifies whether the item is returned in offline mode. If not provided, it is considered to be in online mode.
*   `groupId` (_string_)
*   `returnRelated` (_boolean_)
*   `mainProduct` (_boolean_)
*   `shippingAddress` (_Address_)
*   `requiredDepositPercentage` (_number_)
*   `virtual` (_boolean_)

### OrderRefundPaymentDetail

Refund payments.  
For return or exchange transactions, this contains the refund payments.  

*   `orderId` (_string_) Order Identifier.
*   `transactionId` (_string_, required) A transaction ID is a unique identifier corresponding to the return  
    transaction. It is especially useful in situations where a refund is issued in multiple  
    return transactions. When importing an order from an external system and it has a refund,  
    the transaction ID should match the return transaction that carried out the refund.  
    In case the external system doesn't have a return transaction ID, you can use the order  
    ID in its place.  
    Maximum length: 128.
*   `paymentId` (_string_, required) It is a unique identifier for refund payments.  
    It must be unique within an order. When multiple refunds are issued for a single payment,  
    a unique ID is necessary to differentiate each refund.  
    Maximum length: 128.
*   `cardNumber` (_string_, nullable) Card Number to which refund was applied. Last 4 digits in case of refund to CreditCard. Applicable for CreditCard refunds only.  
    Maximum length: 128.
*   `cardType` (_string_, nullable) Card type, for example, mastercard, interac\_card, or visa.  
    Applicable for CreditCard refunds only.  
    Maximum length: 128.
*   `cardBin` (_string_, nullable) Card BIN (Bank Identification Number) - first 6 or 8 digits of the card number.
*   `originalPaymentId` (_string_, required) A refund is issued against a original payment.  
    This ID provides a reference to the original payment.  
    Maximum length: 128.
*   `originalTransactionId` (_string_, required) Reference to original transaction that performs the payment.  
    This ID provides a reference to the original transaction.
*   `paymentMethod` (_string_, required) Refund payment method, for example, Cash or CreditCard.  
    For possible values, see the tenders.paymentMethod attribute.
*   `refundDate` (_string (date-time)_, required, nullable) Timestamp when refund payment was processed.Format: yyyy-MM-dd HH:mm:ss.
*   `refundedAmount` (_number_, required) Refund Amount.  
    Example: `100`.
*   `refundedAsPartOfOrderId` (_string_, nullable) Original Order Id for which this refund payment is processed.  
    Maximum length: 128.
*   `refundRequestId` (_string_, nullable) Refund request identification issued by the payment gateway/terminal.  
    In the case of Adyen payments, this field maps to pspReference of a refund.  
    It is mandatory for credit cards.  
    Maximum length: 256.
*   `performedUnreferencedRefunds` (_boolean_, deprecated) Use RefundMode instead.
*   `paymentDevice` (_string_, nullable) Device using which payment was refunded. For possible values, please refer to tenders.paymentDevice attribute. Applicable for CreditCard refund only.  
    Maximum length: 32.
*   `paymentDeviceId` (_string_, nullable) Payment Device Identifier. Applicable for CreditCard refund only.  
    Maximum length: 128.
*   `receiptLines` (_array of PaymentReceiptLine_, nullable) Receipt lines for refund payment.  
    Available in case of unreferenced refunds using CreditCard.  
    Unreferenced refunds are refunds that are not associated with a original payment and  
    customer is prompted to swipe/tap CreditCard during refund.  
    When an order is imported from an external system, it is optional.  
    
*   `cardExpirationMonth` (_integer (int32)_, nullable, deprecated) Deprecated: Expiration month of the card to which payment was refunded.
*   `cardExpirationYear` (_integer (int32)_, nullable, deprecated) Deprecated: Expiration year of the card to which payment was refunded.
*   `roundingAmount` (_number_, nullable) Rounding amount during refund using cash. Applicable for cash refund  
    in regions where rounding is applicable.
*   `refundMode` (_string_, nullable) Refund Mode. It is applicable for CreditCard refunds. The modes are:  
    1\. Unreferenced: Refund is not associated to original payment and is issued on different credit card  
    2\. External: Refund is initiated externally and not by POS  
    3\. Default: Regular refund. It is initiated by POS against original CreditCard  
    It is not necessary to provide this while importing an order from external system.  
    Allowed values: `Unreferenced`, `External`, `Default`, `OMS`, `ProductExchange`.
*   `fundingSource` (_string_, nullable) Funding source, for example, CREDIT, DEBIT, or CHARGED.  
    Allowed values: `CHARGED`, `CREDIT`, `DEBIT`, `PREPAID`, `DEFFERED_DEBIT`, `PREPAID_RELOADABLE`, `PREPAID_NONRELOADABLE`, `STORE_VALUE`, `EBT`, `ALTERNATE_TYPE`, `CHECK`, `MOBILE`, `CASH`.
*   `tip` (_number_) Refunded Tip.
*   `tenderBalance` (_number_) Gift Card balance after refund. Available in case of Gift Card refund.
*   `cardAlias` (_string_, nullable) Card alias of the card to which payment was refunded.
*   `externalPaymentSystemId` (_string_, nullable) External payment system identifier in case of External tender.
*   `externalPaymentReferenceId` (_string_, nullable) External payment reference identifier in case of External tender.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### OrderActivityLog

The list of transactions that have happened so far on the order in descending form. It is used to track the order activities like order creation, order update, order return, etc. It is mandatory while exporting order from POS to external system and optional while importing order from external system to POS. If it is not provided during order import from external system, POS system generates it using other available attributes from the order.

*   `orderId` (_string_) Order Identifier.
*   `transactionId` (_string_, required) The unique Id identifying the transaction.  
    Maximum length: 128. Example: `2808-10-20240419131925-2-7`.
*   `amount` (_number_, nullable) The total transaction amount value.
*   `associateSessionId` (_string_, nullable, deprecated) Legacy attribute not in-use anymore.
*   `data` (_string_, nullable, deprecated) Legacy attribute not in-use anymore.
*   `installationId` (_string_, required, read-only) Unique ID of the register.  
    Maximum length: 128.
*   `productId` (_string_, nullable, deprecated) Legacy attribute not in-use anymore.
*   `storeAssociateId` (_string_, nullable) The Id of the particular associate at a store.
*   `storeId` (_string_, nullable) The identifier of the store where the order is taking place.  
    Maximum length: 128.
*   `transactionDate` (_string (date-time)_, required) Transaction time, that is, the time when the transaction was executed.
*   `transactionType` (_string_, nullable) The type of transaction. Three types of transactions can be done on an order: SALE, RETURN, and EXCHANGE.  
    Allowed values: `SALE`, `RETURN`, `EXCHANGE`. Maximum length: 64. Example: `SALE`.
*   `userSessionId` (_string_, nullable, deprecated) Legacy attribute not in-use anymore.
*   `appTransactionId` (_string_, nullable) Unique sequence number generated by POS App. It is reset after daily or relaunch of the App.  
    Maximum length: 48. Example: `1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ...`.
*   `transactionData` (_Transaction_, required)
*   `manualReceiptId` (_string_, nullable, deprecated) Legacy attribute not in-use anymore.
*   `s3KeyTransactionData` (_string_, nullable, deprecated) Internal attribute. Don't use in external systems.
*   `transactionStartDate` (_string (date-time)_, nullable, deprecated) Legacy attribute not in-use anymore.
*   `receiptPrintCount` (_integer (int32)_, nullable, deprecated) Internal attribute. Don't use in external systems.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### OrderFiscalData

All fiscal data for this order if any.

*   `orderId` (_string_) Order Identifier.
*   `transactionId` (_string_) Transaction Identifier which lead to this payment capture/refund.
*   `transactionType` (_string_) Transaction Type.
*   `fiscalData` (_string_) Fiscalization Data.
*   `printData` (_array of PrintData_) Fiscalization Data that needs to be printed on receipt.
*   `fiscalTransactionId` (_string_) Fiscal Transaction ID.
*   `receiptPrintCount` (_integer (int32)_) Combined Count of transaction paper/e-receipts.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### OrderReturnCustomerInformation

List of customer/person who returned the items. Applicable if the order has returned items and if the merchant is configured to capture returning customer's details.

*   `orderId` (_string_) Order Identifier.
*   `transactionId` (_string_) Transaction Identifier.
*   `firstName` (_string_) First name of the person.
*   `lastName` (_string_) Last name of the person.
*   `email` (_string_) Email of the person.
*   `phone` (_string_) Phone number of the person.
*   `addressLine1` (_string_) Address Line 1.
*   `addressLine2` (_string_) Address Line 2.
*   `city` (_string_) City.
*   `state` (_string_) State.
*   `postalCode` (_string_) Postal Code.
*   `country` (_string_) Country.
*   `idType` (_string_) ID Type.
*   `idValue` (_string_) ID Value.
*   `idIssuedBy` (_string_) ID Issued By.
*   `idExpiry` (_string (date-time)_) ID Expiry Date.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### TaxFreeDocument

Tax-free document associated with this order.

*   `docId` (_string_) Global Blue tax-free document identifier.
*   `status` (_string_) Current status of the tax-free document (ISSUED or VOIDED).  
    Allowed values: `ISSUED`, `VOIDED`.

### OrderRefundFeeDetail

List of Refund fee like restocking fee on returned or canceled items.  
Applicable when item is returned or canceled and refund fee is configured.  
For more detail on refund fee,

*   `orderId` (_string_) OrderID towards the refund fees are applied.
*   `transactionId` (_string_) Refund transactionId during which refund fees are applied.
*   `storeId` (_string_) Store where the refund is performed.
*   `refundFeeId` (_string_) Refund fee id Eg. Restocking, Miscellaneous.
*   `refundFeeLabel` (_string_) Refund fee display name Eg. Restocking Fee, Miscellaneous Fee.
*   `refundFeeAmount` (_number_) Refund fee amount.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### Card

Use the card number in the card object to search. Typically by the last four digits of the card customer used to make payment.

*   `paymentId` (_string_) Payment ID/Card ID.
*   `cardOwner` (_string_) Card Owner.
*   `cardType` (_string_) Card Type.
*   `cardNumber` (_string_) Card Number.
*   `cardCvc` (_string_) Card CVC.
*   `cardExpirationMonth` (_integer (int32)_) Card Expiration Month.
*   `cardExpirationYear` (_integer (int32)_) Card Expiration Year.
*   `rawCardType` (_string_, nullable) Raw Card Type.
*   `billingAddressId` (_string_) Billing address ID.
*   `cardNickName` (_string_, nullable) Card Nick Name.
*   `track1Data` (_string_, nullable) Track1 Data if payment is done by app.
*   `track2Data` (_string_, nullable) Track2 Data if payment is done by app.
*   `deviceId` (_string_, nullable) Device ID.
*   `authAmount` (_number_, nullable) Amount to be authorized.
*   `authCode` (_string_, nullable) Authorization code.
*   `captureCode` (_string_, nullable) Capture code.
*   `cardToken` (_string_, nullable) Card token.
*   `cardId` (_string_)
*   `requestId` (_string_, nullable) Request ID used in POS.
*   `requestToken` (_string_, nullable) Request Token.
*   `encryptedCardNumber` (_string_, nullable) Encrypted Card Number.
*   `encryptedCvv` (_string_, nullable) Encrypted Cvv.
*   `paymentMethod` (_string_, nullable) Payment Method.
*   `transactionId` (_string_, nullable) Transaction Id.
*   `encryptedExpiryDate` (_string_, nullable) Encrypted Expiry Date.
*   `receiptLines` (_array of PaymentReceiptLine_, nullable) Receipt Lines.
*   `paypalData` (_PaypalData_)
*   `squareData` (_SquareData_)
*   `adyenData` (_AdyenData_)
*   `thirdPartyToken` (_string_, nullable) Third party token. Used in case of aurus tokenization.
*   `manualCardEntry` (_boolean_)

### PaypalData

PayPal details.

*   `transactionId` (_string_)
*   `cardLastFourDigits` (_string_)
*   `correlationId` (_string_)
*   `receiptLines` (_array of PaymentReceiptLine_)
*   `payerId` (_string_)
*   `token` (_string_)
*   `email` (_string_)
*   `payPalInvoiceId` (_string_)
*   `referenceTransactionId` (_string_)
*   `authTransactionId` (_string_)
*   `payPalTokenTimestamp` (_string_)

### SquareData

Square Details.

*   `transactionId` (_string_)
*   `cardLastFourDigits` (_string_)
*   `correlationId` (_string_)
*   `receiptLines` (_array of PaymentReceiptLine_)
*   `clientId` (_string_)
*   `firstName` (_string_)
*   `lastName` (_string_)

### AdyenData

Adyen Details.

*   `transactionId` (_string_)
*   `cardLastFourDigits` (_string_)
*   `correlationId` (_string_)
*   `receiptLines` (_array of PaymentReceiptLine_)
*   `pspAuthCode` (_string_)
*   `pspReference` (_string_)
*   `cardType` (_string_)
*   `cardHolderName` (_string_)
*   `cardExpiryYear` (_string_)
*   `cardExpiryMonth` (_string_)
*   `cardString` (_string_)
*   `tenderReference` (_string_)
*   `terminalId` (_string_)
*   `cardNumber` (_string_)
*   `operatingMode` (_string_)
*   `threeds2Details` (_string_)

### PaymentToken

*   `data` (_string_)
*   `header` (_PaymentTokenHeader_)
*   `signature` (_string_)
*   `version` (_string_)

### 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_)

### Transaction

The transaction details.

*   `transactionTimeStamp` (_integer (int64)_, required) Timestamp from when the transaction was executed. Epoch time in milliseconds.  
    Example: `1714112491`.
*   `transactionType` (_TransactionType_)
*   `orderId` (_string_, required) Order Identifier.  
    Maximum length: 128.
*   `summary` (_CartSummary_, required)
*   `storeAttribution` (_StoreAttribution_)
*   `receiptPrintCount` (_integer (int32)_, nullable) Receipt print count — the number of original and duplicate receipts.  
    Default: `1`.
*   `fiscalData` (_OrderFiscalData_)
*   `taxExemptions` (_array of TaxExemptionRequest_) Sale-side tax exemptions. Applicable for tax countries and if the sale is tax exempted.
*   `taxRates` (_array of OrderTaxRate_, nullable) Tax breakdown corresponding to the transaction. This includes all tax rates applied on the transaction. Applicable for tax countries. If all items are not taxable, this list will be empty.
*   `vatRates` (_array of OrderTaxRate_, nullable) VAT breakdown corresponding to the transaction. This includes all tax rates applied on the transaction. Applicable for tax countries. If all items are not taxable, this list will be empty.
*   `tenders` (_array of OrderPaymentDetails_, nullable) Payment information: The system supports multiple payment options.  
    Whenever an order is purchased using payment instrument/s,  
    the order will have this list of tenders. However, there are some exceptional scenarios  
    where this list may not be available, which are mentioned below: 1. Partial payment where no minimum payment is required. 2. If a 100% manual or promotional discount is applied.
*   `refundPaymentDetails` (_array of OrderRefundPaymentDetail_, nullable) Refund payments. If it is a return or exchange transaction, it will have refund payments.
*   `shippingAddress` (_Address_)
*   `shippingMethod` (_ShippingMethod_)
*   `billingAddress` (_Address_)
*   `productList` (_array of Product_, nullable) List of products in this order. The list doesn't include returned products. Required for sale transactions. For returns where all items were returned, the list is empty.
*   `returnProductList` (_array of Product_, nullable) List of items that have been returned. It is mandatory for return and exchange transaction.
*   `numberOfLineItems` (_integer (int32)_, read-only) Total number of line items.
*   `receiptId` (_string_, read-only, nullable) Receipt ID for the transaction. Applicable for fiscal reporting.
*   `store` (_Store_, required)
*   `profile` (_Profile_)
*   `productPriceAdjustments` (_array of ProductPriceAdjustment_)
*   `returnProductPriceAdjustments` (_array of ProductPriceAdjustment_)
*   `customerEmail` (_string_, nullable) Customer email ID. Available for signed-in customers or when email is captured in the shipping address for guest customers.  
    Maximum length: 128.
*   `manualReceiptId` (_string_, nullable) Manual receipt ID. Required in some countries like Portugal where a pre-printed paper receipt with its own receipt ID needs to be issued for offline transactions.
*   `offlineMode` (_boolean_, nullable) Flag indicating if the transaction was executed in offline mode or not.  
    Default: `false`.
*   `referenceReceiptId` (_string_, nullable) Reference receipt ID. Populated for return and exchange transactions. This field provides original sale's receipt ID for reference.
*   `storeAssociate` (_Associate_)
*   `duplicateReceiptText` (_string_) For internal use only. Don't use in external systems. Duplicate receipt text printed on the receipt, for example, 'Duplicata' or 'Copy of Original Document'.
*   `notesList` (_array of OrderNote_, nullable) List of notes for this order if any.
*   `productNotesList` (_array of OrderDetailNote_, nullable) List of product notes for this transaction if any.
*   `noReceiptReturns` (_boolean_, nullable) Flag indicating if this is an order returned without any receipt.
*   `employee` (_Employee_)
*   `reasons` (_array of Reason_, nullable) List of reasons pertaining to the actions performed on the order. Eg. Reason details for discounts applied on order.
*   `deliveryGroups` (_array of DeliveryGroup_, nullable) List of delivery groups. Each delivery group has shipping address, corresponding shipping method, and other delivery details. This field 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:.
*   `deliveryGroupChangeList` (_ProductDeltaDeliveryGroup_)
*   `nafCode` (_string_, nullable) NAF code. NAF codes in France are used to identify the type of business of an enterprise. For example, 4772A means retail sale of footwear.
*   `rewardList` (_array of Reward_, read-only, nullable, deprecated) Deprecated. Use `orderProductList.priceAdjustments` instead.
*   `loyaltyId` (_string_, nullable) The loyalty Id of the customer in case they are enrolled in the loyalty program.
*   `pointsEarned` (_integer (int32)_, read-only, nullable) The number of loyalty points earned in this transaction.Applicable for order with customer enrolled in the loyalty program.
*   `pickUpDetailList` (_array of OrderPickUpDetail_, nullable) List of pickup persons.  
    Applicable if the order has items that need pickup from a store  
    Each item can have separate pickup person  
    and the each item will have link to its pickup person.  
    
*   `productPickUpDetailList` (_array of ProductPickUpDetail_, nullable) List of product pickup detail.  
    Applicable if the order is edit order.
*   `returnCustomerInformation` (_ReturnCustomerInformation_)
*   `originalOrderId` (_string_) An exchange involves both returning items from the original sale and purchasing new items, resulting in a new sale. The original order ID will provide the order ID for the original sale for the exchanges.
*   `orderFulfillmentType` (_string_, nullable) Fulfillment type for the order. For example, IN\_STORE, ONLINE or MIXED\_CART.  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `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.
*   `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.
*   `removedDeliveryGroups` (_array of DeliveryGroup_, nullable) The removed delivery group during the edit order mode.

### PrintData

Print Data object. Used to print fiscalization related information on receipts.

*   `name` (_string_) Name of the field which holds this value.
*   `value` (_string_) Actual value that will be printed.
*   `label` (_string_) Label against which this value will be printed.
*   `type` (_string_) Indicates type of data to be printed, for example, TEXT or QRCode.  
    Allowed values: `Text`, `QRCode`.

### PaymentTokenHeader

*   `applicationData` (_string_)
*   `ephemeralPublicKey` (_string_)
*   `publicKeyHash` (_string_)
*   `transactionId` (_string_)

### TransactionType

The type of transaction. Three types of transactions can be done on an order: SALE, RETURN and EXCHANGE.

Type: `string`.

Allowed values: `SALE`, `RETURN`, `EXCHANGE`, `EDIT`, `EDIT_SALE`, `EDIT_REFUND`, `SALE`, `RETURN`, `EXCHANGE`. Maximum length: 64. Example: `SALE`.

### OrderPaymentDetails

Payment information: The system supports multiple payment options.  
Whenever an order is purchased using payment instrument/s,  
the order will have this list of tenders. However, there are some exceptional scenarios  
where this list may not be available, which are mentioned below: 1. Partial payment where no minimum payment is required. 2. If a 100% manual or promotional discount is applied.

*   `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.

### Associate

Store associate.

*   `storeAssociateID` (_string_) ID of the store associate (POS login ID for the associate).
*   `storeID` (_string_, nullable) Store ID of the associate.
*   `merchantUserID` (_string_, nullable) Merchant's underlying system's user ID for the store associates. For example, LoginId for underlying OMS or Salseforce Commerce.
*   `paymentDeviceMerchantID` (_string_, nullable) Merchant ID of a payment device assigned to the associate.
*   `paymentDeviceID` (_string_, nullable) ID of a payment device, like terminal ID, assigned to the associate.
*   `storeAssociatePassword` (_string_) Store associate's password (POS Login Password for the associate).
*   `merchantPassword` (_string_, nullable) Merchant's underlying system's password for the associate.
*   `storeAssociatePasswordPin` (_string_, nullable) Password hint for the associate's POS login.
*   `firstName` (_string_, nullable) First name of the associate.
*   `lastName` (_string_, nullable) Last name of the associate.
*   `storeType` (_string_) Type of the store where the associate works. Possible values include: Regular, Popup, Outlet or eComm.
*   `role` (_string_) The associate's role in the store. Possible values include: STORE\_ASSOCIATE, STORE\_MANAGER or AREA\_MANAGER.
*   `passwordSetOn` (_integer (int64)_, nullable) Date when password was set last time. Represented as the number of milliseconds since epoch.
*   `storeAssociatePasswordFlag` (_boolean_) Flag indicating that the store associate password is updated during associate update operation. Used only during update operation.
*   `merchantPasswordFlag` (_boolean_) Flag indicating that the merchant password is updated during associate update operation. Used only during update operation.
*   `storeAssociateSecretFlag` (_boolean_, nullable) Flag indicating that the store associate secret is updated during associate update operation. Used only during update operation.
*   `imageUrl` (_string_, nullable) The associate's image URL.
*   `active` (_boolean_) Specifies whether the status of the associate is active (true) or removed/deactivated (false).
*   `emailId` (_string_, nullable) Email ID of the associate.
*   `mobilePhoneNumber` (_string_, nullable) Mobile phone number of the associate.
*   `additionalStoreIDs` (_array of string_, nullable) Additional store IDs where the associate can log in.
*   `gender` (_string_) Gender of the store associate.  
    Allowed values: `Male`, `Female`, `Neutral`, `Unknown`.
*   `hireDate` (_integer (int64)_, nullable) Date when the associate is hired or can start work in the store.
*   `terminationDate` (_integer (int64)_, nullable) Termination date for the associate.
*   `firstLoginPasswordReset` (_boolean_) Flag indicating that the password is set on the first login.
*   `mobileConfigID` (_string_, nullable) Mobile configuration ID.  
    Maximum length: 128. Example: `134ac374-0f49-4239-a161-ccfe4d3d7686`.