---
schema_version: "1"
id: f1fcc0ed2a5efb3bff27c7f669341613b863ba4b079bef4a02a0d6df7d97c180
title: Order Management API
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/order-management-api.md
canonical_url: https://developer.salesforce.com/docs/commerce/retail-cloud/references/order-management-api
source_site: developer.salesforce.com
content_type: documentation
content_hash: 2a94793b9e103d96a18120fb7cda700d6a6abd1f20dddecde208b08e9547269a
products:
  - Point of Sale for Developers
  - Salesforce APIs
---
Order Management API

# Order Management API

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/order-management-api/order-management-api-oas-public.yaml)

POS Merchant API to create, search, and retrieve orders from the POS system, and repost orders to external systems.

**Version:** 2.3.4

## Tags

### Order Management API

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/order-management-api/order-management-api-oas-public.yaml)

POS Merchant API to create, search, and retrieve orders from the POS system, and repost orders to external systems.

## Operations

### POST Create order.

`POST /merchant/{version}/sa/orders`

Operation ID: `createOrder`. Tags: Order Management API. **Deprecated**.

Use POST merchant/v3/sa/orders instead. Create order data based on customer order data in payload. This adds only into POS and does not proxy to external OMS services.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required)  
    Pattern: v1|v2.

#### Request body

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

#### Responses

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

### GET Retrieve order details.

`GET /merchant/{version}/sa/orders/{id}`

Operation ID: `getOrder`. Tags: Order Management API.

Retrieve order data based on order ID.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required)  
    Pattern: v1|v2.
*   `id` (path, string, required)

#### Responses

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

### POST Repost orders.

`POST /merchant/{version}/sa/orders/repost`

Operation ID: `orderReposting`. Tags: Order Management API.

Repost orders to external system for a given list of order IDs. The order IDs must be provided in the request body in a JSON array format. The maximum number of order IDs that can be processed in a single request is limited to 100.

#### Parameters

*   `version` (path, string, required)  
    Pattern: v1|v2.

#### Request body

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

#### Responses

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

### POST Search and retrieve orders.

`POST /merchant/{version}/sa/orders/search`

Operation ID: `searchOrders`. Tags: Order Management API.

Search and retrieve orders based on input parameters.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required)  
    Pattern: v1|v2.

#### Request body

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

#### Responses

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

### POST Create order V3.

`POST /merchant/v3/sa/orders`

Operation ID: `createOrder_1`. Tags: Order Management API.

Create order in POS system. **Prerequisite:** Make sure that CMS is configured to support the lean input model by setting the property 'enableTransactionExport' to 'true' in the CMS configuration. **CMS Configuration:** **CMS** > **Store Management** > **Store Settings** > **Advanced** > **Enable Transaction Export**.

#### Parameters

*   `PredictSpring-Secret` (header, string)

#### Request body

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

#### Responses

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

## Schemas

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

### OrderRepostRequest

*   `orderIds` (_array of string_) List of order IDs for reposting.
    
    Each item: List of order Ids for reposting.
    

### OrderRepostResponse

*   `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`.
*   `orderRepostStatusList` (_array of OrderRepostStatus_) A list of Reposting status for each order that was part of the request.
*   `error` (_boolean_)

### OrderSearchRequest

*   `firstName` (_string_) Customer first name.
*   `lastName` (_string_) Customer last name.
*   `email` (_string_) Customer email address.
*   `orderId` (_string_) Order ID.
*   `postalCode` (_string_) Postal code or Zip code.
*   `start` (_integer (int32)_) Order search offset. Used for paginating across multiple orders.  
    Default: `0`.
*   `limit` (_integer (int32)_) Number of orders to return. Used for paginating across multiple orders.  
    Default: `20`.
*   `bopisOrders` (_boolean_) Flag indicating whether to search BOPIS orders.
*   `storeId` (_string_) Store ID. Find order placed in this store.
*   `customerId` (_string_) Customer ID. Find orders placed by this customer ID.
*   `accountNumber` (_string_) Customer's account number. It can be alternate customer ID or external account number of the customer.
*   `storeOrderStatus` (_string_) Store Order Status. Find orders in this status. Applies to BOPIS/BOFIS orders.
*   `paymentCard` (_Card_)
*   `productId` (_string_) Product ID. Find orders containing this product ID.
*   `searchForReturn` (_boolean_, deprecated) DEPRECATED. Flag indicating if this search is for return purpose. Find only those orders eligible for returns.
*   `storeAssociateId` (_string_) Store Associate ID. Find orders placed by specific store associate.
*   `storeRegisterId` (_string_) Store Register ID. Find orders placed from specific store register.
*   `orderTotal` (_number_) Order Total. Find orders having specific order total.
*   `paymentMethod` (_string_) Payment method. Find orders placed using specific payment method.
*   `amountRange` (_BigDecimalRange_)
*   `orderDateTimeStampStart` (_integer (int64)_) Find orders placed on or after this timestamp - represented as milliseconds since epoch.
*   `orderDateTimeStampEnd` (_integer (int64)_) Find orders placed on or before this timestamp - represented as milliseconds since epoch.
*   `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`.
*   `manualReceiptId` (_string_) Manual Receipt ID based search.
*   `advancedSearchId` (_string_) Advanced search ID from response.
*   `serialNumber` (_string_) Serial Number. Find orders containing items with this serial number.
*   `workbench` (_boolean_)

### OrderSearchResponse

*   `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`.
*   `orderList` (_array of OrderSearchResponseEntry_) List of searched orders.
*   `advancedSearchId` (_string_) Response from NetSuite advanced search.
*   `error` (_boolean_)

### ExternalTransaction

*   `transactionId` (_string_, required) Transaction Id.
*   `transactionType` (_string_, required) Transaction type.  
    Allowed values: `SALE`, `RETURN`, `EXCHANGE`, `EDIT`, `EDIT_SALE`, `EDIT_REFUND`.
*   `orderId` (_string_, required) Order ID corresponding to the transaction.
*   `externalOrderId` (_string_, nullable) External reference ID if the transaction is captured externally and has a different identifier than orderId.  
    Maximum length: 128.
*   `storeAttribution` (_ExternalStoreAttribution_, required)
*   `tenderList` (_array of ExternalTender_, required) Payment method used towards the sale transaction.
*   `refundTenderList` (_array of ExternalRefundTender_, nullable) Payment method used towards the return transaction.
*   `productList` (_array of ExternalProduct_, required) Products.
*   `returnProductList` (_array of ExternalReturnProduct_, nullable) Returned products.
*   `profile` (_ExternalCustomerProfile_)
*   `deliveryGroupList` (_array of ExternalDeliveryGroup_) In the event that the transaction comprises any delivery item, a list of delivery groups is required. Each delivery item is associated with a delivery group via a deliveryGroupId link.
*   `pickUpDetailList` (_array of ExternalPickUpDetail_, nullable) Pickup details.
*   `billingAddress` (_ExternalAddress_)
*   `lastDateToReturn` (_integer (int64)_, nullable) The last date by which the item(s) from the transaction can be returned. If not provided, the item can be returned without any time limitation. The date is in milliseconds since epoch.  
    Example: `1653078974310`.
*   `saleSummary` (_ExternalTransactionSummary_, required)
*   `orderSource` (_string_, required) Channel of the transaction.  
    Allowed values: `DEFAULT`, `IN_STORE`, `POPUP_STORE`, `WEB`, `APP`, `OUTLET_STORE`, `ONLINE`, `POS_EA`.
*   `orderType` (_string_, nullable) Order type. It is needed if the order is fulfilled by store. For example, BOPIS, BOFIS.  
    Allowed values: `STORE_PICKUP`, `STORE_FULFILLMENT`, `LAYAWAY`, `MIXED_MODE`, `ONLINE`, `ONLINE_RESERVE`.
*   `status` (_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) 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 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: `COMPLETED`, `FAILED`, `RETURNED`, `PARTIALLY_REFUNDED`, `PENDING`, `CANCELLED_WITH_REFUND`, `EXCHANGED`, `PARTIALLY_EXCHANGED`, `CANCELED`.
*   `noteList` (_array of ExternalNote_, nullable) Notes for the transaction.
*   `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) 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`.
*   `taxExemptionList` (_array of ExternalTaxExemption_, nullable) Applied tax exemptions.
*   `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.

### SpiPSResponse

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

### OrderRepostStatus

A list of Reposting status for each order that was part of the request.

*   `orderId` (_string_) The unique identifier for the order.
*   `status` (_string_) Status of the individual order reposting. Also please note that the status displayed below solely pertains to the outcome of the asynchronous reposting initiation process. A "SUCCESS" status denotes that the initiation was successful, but it does not guarantee that the order was sent to the external endpoint without issue. Conversely, a "FAIL" status indicates that the reposting initiation was not successful.  
    Allowed values: `SUCCESS`, `FAIL`.
*   `failureDescription` (_string_) Provides a description of the failure if the status is set to FAIL.

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

### BigDecimalRange

Find orders within this order total range.

*   `from` (_number_, read-only, nullable) From or starting filter criteria for amount/BigDecimal values.
*   `to` (_number_, nullable) To or ending filter criteria for amount/BigDecimal values.

### OrderSearchResponseEntry

List of searched orders.

*   `orderID` (_string_) Order ID.
*   `storeID` (_string_) Store ID. Order placed in this store.
*   `billingName` (_string_) Billing name used to place order.
*   `emailID` (_string_) Email ID used to place order.
*   `total` (_number_) Order total.
*   `orderDate` (_string_) Order Date.
*   `orderDateTimeStamp` (_integer (int64)_) Order Date Time.
*   `count` (_integer (int32)_) Order count.
*   `imageLinks` (_array of string_) Order Product Images.
*   `orderStatus` (_string_, nullable)
    
    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`.
*   `orderStatusText` (_string_) Order Status Text.
*   `orderType` (_string_, nullable) Type of order. Used in case of BOPIS (STORE\_PICKUP) or BOFIS/BOSS (STORE\_FULFILLMENT) orders.  
    Allowed values: `STORE_PICKUP`, `STORE_FULFILLMENT`, `LAYAWAY`, `MIXED_MODE`, `ONLINE`, `ONLINE_RESERVE`.
*   `bopisOrderStatus` (_string_, read-only, nullable) BOPIS/BOSS/BOFIS Order status. This is shared enum used for OrderStatus.
*   `status` (_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`.
*   `isSplitCart` (_boolean_, nullable) Flag indicating if this order is part of a split cart order.  
    Default: `false`.
*   `fulfillmentType` (_string_) Fulfillment Type-IN\_STORE, ONLINE, MIXED\_CART.  
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.
*   `parentOrderId` (_string_, nullable) Parent order ID in case this order is part of a split/mixed order. For example, this order is IN\_STORE order which is part of an order that had IN\_STORE and ONLINE orders.
*   `orderAttribution` (_OrderAttribution_)
*   `paymentStatus` (_string_, nullable) 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`.
*   `currency` (_string_, nullable) Currency code. 3 letter currency code.  
    Example: `USD`.
*   `manualReceiptId` (_string_) Manual Receipt ID.
*   `externalOrderID` (_string_)

### ExternalStoreAttribution

Store details.

*   `storeAssociateId` (_string_, required) Store associate ID who is ringing the transaction.
*   `storeId` (_string_, required) Store ID.  
    Maximum length: 128.
*   `storeRegisterId` (_string_, required) Store register ID where the transaction is performed.  
    Maximum length: 128.
*   `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.
*   `tillSessionId` (_string_, required) Till session ID.
*   `tillId` (_string_, required) Till ID.
*   `installationId` (_string_, nullable) Device identifier which was used to place the order. It is mandatory for transactions performed in the store. For external transactions, it will be defaulted to 'EXTERNAL' if it is not provided.  
    Maximum length: 128.
*   `registerMode` (_string_, required) The mode of the register operation.  
    Allowed values: `ONLINE`, `OFFLINE`. Default: `ONLINE`.

### ExternalTender

Payment method used towards the sale transaction.

*   `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.
*   `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`.
*   `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) 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`.
*   `cardNumber` (_string_) Card number. Could be either partial (last 4 digits) or complete card number (in case of manual credit card data entry). Mandatory for CreditCard, GiftCard.  
    Maximum length: 128.
*   `cardType` (_string_) 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_) Payment authorization token.  
    Maximum length: 128.
*   `authorizationDate` (_integer (int64)_) Payment authorization timestamp in EPOCH millis.
*   `captureToken` (_string_) Payment capture token.  
    Maximum length: 128.
*   `captureDate` (_integer (int64)_) Payment capture timestamp in EPOCH millis.
*   `firstName` (_string_) First name to use for billing using this tender.  
    Maximum length: 64.
*   `lastName` (_string_) Last name to use for billing using this tender.  
    Maximum length: 64.
*   `addressLine1` (_string_) Address line 1 to use for billing using this tender.  
    Maximum length: 256.
*   `addressLine2` (_string_) Address line 2 to use for billing using this tender.  
    Maximum length: 256.
*   `city` (_string_) City to use for billing using this tender.  
    Maximum length: 64.
*   `state` (_string_) State to use for billing using this tender.  
    Maximum length: 32.
*   `postalCode` (_string_) Postal code to use for billing using this tender.
*   `country` (_string_) Country code to use for billing using this tender.  
    Maximum length: 16.
*   `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.
*   `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) Total Refunded Amount if any which is already paid back due to returns + exchanges. Not applicable, if no refund issued yet.  
    Default: `0`.
*   `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.  
    Default: `0`.
*   `receiptLines` (_array of PaymentReceiptLine_) Receipt lines. For information to be shown on receipt. Mandatory for CreditCard payment using Adyen.
*   `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.
*   `paymentDeviceId` (_string_) 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_) Bank routing number.  
    Maximum length: 32.
*   `accountNumber` (_string_) Account number. Used for payment through banking system.  
    Maximum length: 32.
*   `checkNumber` (_string_) Check number. Used for payment through checks.  
    Maximum length: 50.
*   `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**).  
    Maximum length: 128.
*   `personalIdType` (_string_, nullable) Personal identification type. Applicable for Check and Finance.  
    Allowed values: `DriversLicense`, `StateID`, `MilitaryID`, `Passport`, `StudentID`, `PermanentResidentID`, `TribalID`, `BusinessPhone`.
*   `personalIdIssuedBy` (_string_) Authority that issued the personal identification. Applicable for Check and Finance.  
    Maximum length: 32.
*   `personalIdNumber` (_string_) Personal identification number. Applicable for Check and Finance.  
    Maximum length: 32.
*   `personalIdExpiryDate` (_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. Applicable for Check and Finance.
*   `cardExpirationMonth` (_integer (int32)_) Card expiry month. Applicable for credit card.
*   `cardExpirationYear` (_integer (int32)_) Card expiry year. Applicable for credit card.
*   `externalPaymentSystemId` (_string_) External payment system identifier in case of External tender.  
    Maximum length: 32.
*   `externalPaymentReferenceId` (_string_) External payment reference identifier in case of External tender.  
    Maximum length: 32.
*   `checkType` (_string_) 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_) 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_) 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 no. in external system.  
    Maximum length: 32.
*   `financeInstruction` (_string_) Refers to Finance processing related result/instruction long text from external system.  
    Maximum length: 4096.
*   `primaryAccountHolder` (_string_) Primary owner on the account.  
    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`.
*   `paymentLink` (_string_) Payment Link.  
    Maximum length: 128.
*   `paymentLinkExpiryDate` (_integer (int64)_) Payment link expiry timestamp in EPOCH millis.
*   `captureAmount` (_number_, nullable) Amount captured for credit card. Applicable, if capture flow is enabled.
*   `requestTokenExpireDate` (_integer (int64)_) Request token expire date in EPOCH millis.
*   `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_) 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).
*   `cardBin` (_string_, nullable) Card BIN (Bank Identification Number) - first 6 or 8 digits of the card number.

### ExternalRefundTender

Payment method used towards the return transaction.

*   `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.
*   `originalTransactionId` (_string_, required) Transaction identifier as part of which this payment was initiated originally and now being refunded.
*   `originalPaymentId` (_string_, required) Payment Identifier as part of which this payment was initiated originally and now being refunded.
*   `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`.
*   `cardNumber` (_string_) Card number. Could be either partial (last 4 digits) or complete card number (in case of manual credit card data entry). Mandatory for CreditCard, GiftCard.  
    Maximum length: 128.
*   `cardType` (_string_) Card type, for example, Visa, Mastercard, Amex, or Discover. Required for CreditCard.  
    Maximum length: 128.
*   `cardBin` (_string_, nullable) Card BIN (Bank Identification Number) - first 6 or 8 digits of the card number.
*   `refundRequestId` (_string_, required) Refund ID issued by the payment gateway. Mandatory for refund on credit card.
*   `refundedAmount` (_number_, required) Amount refunded.
*   `cardExpirationMonth` (_integer (int32)_) Card expiry month.
*   `cardExpirationYear` (_integer (int32)_) Card expiry year.
*   `cashDrawerUrl` (_string_) 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.
*   `cardAlias` (_string_, nullable) Card alias associated with Refund Tender. In adyen - a value that uniquely represents the shopper's card number (PAN).

### ExternalProduct

Products.

*   `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.
*   `orderItemId` (_string_, required) Item sequence/System generated item ID assigned to this line item. Must be unique within this order and should have numerical value in string.  
    Example: `It can have values like 1, 2, 3, etc... which represents line item number within the order.`.
*   `imageURL` (_string_, required) Image URL of the item.
*   `subTotal` (_number_, required) Item's total excluding discounts, shipping costs and taxes but inclusive of VAT.
*   `discount` (_number_) Total discount amount applied on the item, including all discount types (manual price override, transaction discount, coupon, rewards, and auto promotions). Required if any discounts are applied.
*   `total` (_number_, required) Item's total — final amount charged for this item, inclusive of tax/VAT and discounts.
*   `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) 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 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: `COMPLETED`, `FAILED`, `RETURNED`, `PARTIALLY_REFUNDED`, `PENDING`, `CANCELLED_WITH_REFUND`, `EXCHANGED`, `PARTIALLY_EXCHANGED`, `CANCELED`. Default: `COMPLETED`.
*   `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`, `TRY_AT_STORE`, `PICKUP_LATER`, `SHIP_TO_HOME`, `SHIP_TO_STORE`, `PICKUP_NEARBY`.
*   `salesAssociateAttributionList` (_array of ExternalStoreAssociateAttribution_) Sales associate attribution. If unspecified, then attribute the whole sale transaction to the logged-in associate.
*   `epc` (_string_, nullable) Electronic product code. Mandatory for items having epc/RFID.
*   `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 ExternalProduct_, 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.
*   `productClass` (_string_, required) Product class of the item.
*   `serialNumber` (_string_) Serial number of the item (if applicable).
*   `productCondition` (_string_) 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_)
*   `priceCorrection` (_ExternalProductPriceCorrection_)
*   `deliveryGroupId` (_string_) 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 under transaction. It is applicable for delivery items.  
    Maximum length: 32.
*   `formAttributes` (_array of ProductFormAttribute_, nullable) New form data to be set on the product.
*   `pickupDetailId` (_string_) Link to pickup person detail corresponding to the product.  
    Points to the corresponding pickup details  
    from pickupDetailList in the transaction.  
      
    Maximum length: 128.
*   `productTax` (_ExternalProductTax_)
*   `priceAdjustmentList` (_array of ExternalPriceAdjustment_, nullable) Price adjustments applied on the item.  
    It includes all the price adjustments like transaction discount, price override etc...  
    Mandatory if any type of price adjustments is applied.
*   `returnsEligibility` (_string_, nullable) Returns eligibility of the item.  
    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.
*   `pickupStoreId` (_string_, nullable) Pickup store ID.
*   `fulfillmentStoreId` (_string_, nullable) Fulfillment store ID.
*   `totalAdditionalCharge` (_number_, nullable) Total additional charges.
*   `tlogCustomProductAttributes` (_string_, nullable) Custom attributes.
*   `externalId` (_string_, nullable) External ID of the product.  
    Maximum length: 128.
*   `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.
*   `noteList` (_array of ExternalNote_, nullable) Note associated with the product.
*   `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"
      }
    ]
    ```
    
*   `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.

### ExternalReturnProduct

Returned products.

*   `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.
*   `orderItemId` (_string_, required) Item sequence/System generated item ID assigned to this line item. Must be unique within this order and should have numerical value in string.  
    Example: `It can have values like 1, 2, 3, etc... which represents line item number within the order.`.
*   `imageURL` (_string_, required) Image URL of the item.
*   `subTotal` (_number_, required) Item's total excluding discounts, shipping costs and taxes but inclusive of VAT.
*   `discount` (_number_) Total discount amount applied on the item, including all discount types (manual price override, transaction discount, coupon, rewards, and auto promotions). Required if any discounts are applied.
*   `total` (_number_, required) Item's total — final amount charged for this item, inclusive of tax/VAT and discounts.
*   `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) 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 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: `COMPLETED`, `FAILED`, `RETURNED`, `PARTIALLY_REFUNDED`, `PENDING`, `CANCELLED_WITH_REFUND`, `EXCHANGED`, `PARTIALLY_EXCHANGED`, `CANCELED`. Default: `COMPLETED`.
*   `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`, `TRY_AT_STORE`, `PICKUP_LATER`, `SHIP_TO_HOME`, `SHIP_TO_STORE`, `PICKUP_NEARBY`.
*   `salesAssociateAttributionList` (_array of ExternalStoreAssociateAttribution_) Sales associate attribution. If unspecified, then attribute the whole sale transaction to the logged-in associate.
*   `epc` (_string_, nullable) Electronic product code. Mandatory for items having epc/RFID.
*   `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 ExternalProduct_, 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.
*   `productClass` (_string_, required) Product class of the item.
*   `serialNumber` (_string_) Serial number of the item (if applicable).
*   `productCondition` (_string_) 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_)
*   `priceCorrection` (_ExternalProductPriceCorrection_)
*   `deliveryGroupId` (_string_) 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 under transaction. It is applicable for delivery items.  
    Maximum length: 32.
*   `formAttributes` (_array of ProductFormAttribute_, nullable) New form data to be set on the product.
*   `pickupDetailId` (_string_) Link to pickup person detail corresponding to the product.  
    Points to the corresponding pickup details  
    from pickupDetailList in the transaction.  
      
    Maximum length: 128.
*   `productTax` (_ExternalProductTax_)
*   `priceAdjustmentList` (_array of ExternalPriceAdjustment_, nullable) Price adjustments applied on the item.  
    It includes all the price adjustments like transaction discount, price override etc...  
    Mandatory if any type of price adjustments is applied.
*   `returnsEligibility` (_string_, nullable) Returns eligibility of the item.  
    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.
*   `pickupStoreId` (_string_, nullable) Pickup store ID.
*   `fulfillmentStoreId` (_string_, nullable) Fulfillment store ID.
*   `totalAdditionalCharge` (_number_, nullable) Total additional charges.
*   `tlogCustomProductAttributes` (_string_, nullable) Custom attributes.
*   `externalId` (_string_, nullable) External ID of the product.  
    Maximum length: 128.
*   `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.
*   `noteList` (_array of ExternalNote_, nullable) Note associated with the product.
*   `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"
      }
    ]
    ```
    
*   `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.
*   `exchangedForOrderId` (_string_, nullable) Applicable for exchange of the item. A separate order will be generated for the new item when an exchange occurs. The order ID corresponding to the new item related to the exchange will be provided here.  
    Maximum length: 128.
*   `exchangedForProductId` (_string_, nullable) Applicable for exchange of the item. A separate order will be generated for the new item when an exchange occurs. Please provide the order ID for the new item related to the exchange.  
    Maximum length: 128.

### ExternalCustomerProfile

Customer profile. It is mandatory for customer logged-in during the transaction. It is optional for guest customer.

*   `customerId` (_string_, nullable) Customer ID. Optional for guest customer. Mandatory for logged-in customer.  
    Maximum length: 128.
*   `alternateCustomerId` (_string_, nullable) Alternate Customer ID.  
    Maximum length: 128.
*   `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.
*   `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.
*   `loyaltyId` (_string_, nullable) Loyalty Id of the customer.

### ExternalDeliveryGroup

In the event that the transaction comprises any delivery item, a list of delivery groups is required. Each delivery item is associated with a delivery group via a deliveryGroupId link.

*   `deliveryGroupId` (_string_, required) Delivery group ID.
*   `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, i.e., 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` (_ExternalAddress_, required)
*   `dateTimeSlot` (_DateTimeSlot_, required)
*   `fulfillmentAddress` (_ExternalAddress_)
*   `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.

### ExternalPickUpDetail

Pickup details.

*   `pickupDetailId` (_string_)
*   `storeId` (_string_)
*   `storeAssociateId` (_string_)
*   `firstName` (_string_)
*   `lastName` (_string_)
*   `email` (_string_)
*   `phone` (_string_)

### ExternalAddress

Billing address.

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

### ExternalTransactionSummary

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

*   `subTotal` (_number_, required) Total Item price.
*   `discount` (_number_, nullable) Total price override and promo coupons applied. Applicable if any item level price override applied or any promotion (auto or coupon) applied.
*   `transactionDiscountAmount` (_number_, nullable) Total transaction discount. Applicable if any transaction discount is applied.
*   `rewardAmount` (_number_, nullable) Total reward amount. Applicable if any reward coupon is applied.
*   `tax` (_number_, nullable) Total Tax.
*   `taxExemption` (_number_, nullable) Total Tax Exemption.
*   `valueAddedTax` (_number_, nullable) Total Value Added Tax.
*   `shippingCharges` (_number_, nullable) Total shipping charges.
*   `total` (_number_, required) Item total inclusive of all charges like taxes and discounts and exclusive of tip amount.
*   `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_, nullable) Total Tip.
*   `inStoreTotal` (_number_, nullable) In store total.

### ExternalNote

Notes for the transaction.

*   `cartId` (_string_)
*   `noteId` (_string_)
*   `noteText` (_string_)
*   `transactionId` (_string_)

### ExternalTaxExemption

Applied tax exemptions.

*   `taxExemptCode` (_string_, required) Tax exemption code.  
    Maximum length: 128.
*   `customerName` (_string_, required) Customer name for an individual who has tax exemption applied.  
    Maximum length: 128.
*   `cardNumber` (_string_, required) Customer's tax-exemption card number.  
    Maximum length: 64.
*   `notes` (_string_, nullable) Optional notes for tax exemption entered during checkout on the POS.  
    Maximum length: 128.
*   `taxExemptionRate` (_number_, 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.

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

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

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

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

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

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

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

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

### OrderAttribution

Order attributions corresponding to this order.

*   `orderId` (_string_, read-only) Order Id.
*   `notificationId` (_string_, read-only, nullable) Notification sent corresponding to the order.
*   `messageId` (_string_, read-only, nullable) Message triggered corresponding to the order.
*   `geofenceId` (_string_, read-only, nullable) Geofence ID corresponding to the order.
*   `branchId` (_string_, read-only, nullable) Branch ID corresponding to the order.
*   `storeAreaLevel1Id` (_string_, read-only, nullable) Store Area level 1 corresponding to the order.
*   `storeAreaLevel2Id` (_string_, read-only, nullable) Store Area level 2 corresponding to the order.
*   `storeAreaLevel3Id` (_string_, read-only, nullable) Store Area level 3 corresponding to the order.
*   `storeAreaLevel4Id` (_string_, read-only, nullable) Store Area level 4 corresponding to the order.
*   `storeAreaLevel5Id` (_string_, read-only, nullable) Store Area level 5 corresponding to the order.
*   `storeRegisterId` (_string_, read-only, nullable) Store register corresponding to the order.
*   `registerTransactionId` (_string_, read-only, nullable) Register transaction ID corresponding to the order.

### ExternalStoreAssociateAttribution

Sales associate attribution. If unspecified, then attribute the whole sale transaction to the logged-in associate.

*   `storeAssociateId` (_string_, required) ID of the associate that completed the sale transaction.
*   `contributionPercentage` (_number_, required) Associate's contribution towards sales.
*   `attributionNote` (_string_) Note related to attribution.
*   `firstName` (_string_, required) Associate's first name.
*   `lastName` (_string_, required) Associate's last name.

### ExternalProductPriceCorrection

Price correction applied on the item with information like the approval manager ID and original price. Sale price becomes new corrected price.

*   `originalPrice` (_number_) Original price of the item.
*   `approvingManagerId` (_string_) ID of the manager who approved the price correction request.

### ExternalProductTax

Tax/Vat details.

*   `totalTax` (_number_, required) Total tax. Required in case of tax countries.
*   `taxExemption` (_number_, nullable) Tax Exemption.
*   `taxRateList` (_array of ProductTaxRate_, nullable) Tax Rates.
*   `vatRateList` (_array of ProductTaxRate_, nullable) VAT Rates.
*   `valueAddedTax` (_number_, nullable) Total VAT. Required in case of VAT countries.
*   `taxableAmount` (_number_, required) Taxable amount.

### ExternalPriceAdjustment

Price adjustments applied on the item.  
It includes all the price adjustments like transaction discount, price override etc...  
Mandatory if any type of price adjustments is applied.

*   `description` (_string_, required) Price adjustment description.
*   `adjustment` (_string_, required) Price adjustment.
*   `id` (_string_) Promotion Id for applied coupon or auto promotion.
*   `price` (_number_, required) Price adjustment amount.
*   `priceAdjustmentType` (_string_, required) Price adjustment type.  
    Allowed values: `PRICE_OVERRIDE`, `PROMOTION`, `FEES`, `REWARDS`, `TRANSACTION_DISCOUNT`.
*   `reason` (_Reason_)
*   `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.
*   `promoCode` (_string_, nullable) Coupon code corresponding to promotion applied.  
    Not applicable for auto promotions,  
    manual price adjustments like price override & transaction discount.
*   `auto` (_boolean_, nullable) Applied promotion is auto or not.
*   `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`.
*   `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.

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

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

### CartSummary

Payload that contains summary of cart totals.

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

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

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

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

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

### ProductPickUpDetail

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

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

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

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

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