---
schema_version: "1"
id: 7496ea7c0f623203e6779c99b735ac0a882c6be2c591a3bda4709d101722f2cb
title: POS API (Full Specification)
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/pos-oas.md
canonical_url: https://developer.salesforce.com/docs/commerce/retail-cloud/references/pos-oas
source_site: developer.salesforce.com
content_type: documentation
content_hash: 5eb4e62dc0e37f618e593b67143f5c9fd575f759785f6000f10f7d4461f0911b
products:
  - Point of Sale for Developers
  - Salesforce APIs
---
POS API (Full Specification)

# POS API (Full Specification)

**Partial reference:** 10 operation(s) were omitted because their source references could not be resolved.

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

Full API specification for Point of Sale (POS) APIs, SPIs, and webhooks. This monolithic specification includes all endpoints for managing retail operations including inventory, orders, customers, promotions, and integrations.

**Version:** 2.3.4

## Tags

### CMS User Management API

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

Merchant API to create, search, update, and delete CMS users from the POS system.

### Mask Customer Data

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/mask-customer-data/mask-customer-data-oas-public.yaml)

Request to mask customer data by email or customer ID identifiers.

### Customer API

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

Merchant API to manage customer data in the POS system.

### Inventory Management API

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

Merchant API to manage inventory in the POS system.

### Notification API

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

POS Merchant API to upload notifications to be sent to target devices.

### Product Management API

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

POS Merchant API to perform CRUD operations on Product objects in the POS system. The APIs do not support field mapping and transformation logic available in CMS.

### Promotion Management API

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

POS Merchant API to perform CRUD operations on promotions in the POS system.

### Store Associate Management API

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

POS Merchant API to create, search, update, and deactivate store associates from the POS system.

### Store Group Management API

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

Store Group Management API to create, search, update, and delete store groups from the POS system.

### Store Product Management API

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

POS Merchant API to manage store inventory.

### Fulfillment Order API

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

APIs for in-store fulfillment of orders (BOPIS, BOFIS, ROPIS) imported into the POS from other channels.

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

### Activation Code SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/activation-code-spi/activation-code-spi-oas-public.yaml)

Merchant SPI to implement and provide an endpoint for the POS. This endpoint must be configured in the POS system so that the POS can use it to get activation codes and details.

### Cart Validation SPI

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

Sample SPIs that demonstrate how to implement SPI endpoints in the merchant's system. These endpoints are configured in CMS so that the POS can use them during all cart operations.

### Clienteling SPI

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

Merchant SPI to create, search, and retrieve customers from the merchant's system. These are sample endpoints that provide specifications for merchants on how to implement APIs on their end and then configure them in Point of Sale (POS) CMS for the POS to use during clienteling operations. For more information, see [Point of Sale API, SPI, and Webhook Overview](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html)

### Customer Address SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/customer-address-spi/customer-address-spi-oas-public.yaml)

Sample APIs that demonstrate how to implement API endpoints or webhooks in the merchant's system. These endpoints must be configured in the POS system so that the POS can use them to modify customer addresses.

### DateTimeSlot SPI

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

Merchant SPI to implement and provide an endpoint for the POS to get delivery/pickup dates and time slots for applicable items in the order. Merchants must provide an implementation of this API if they want the POS to trigger and get applicable delivery and pickup dates via their endpoint.

### Delivery Group SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/delivery-group-spi/delivery-group-spi-oas-public.yaml)

Sample SPIs that demonstrate how to implement SPI endpoints in the merchant's system. These endpoints are configured in CMS so that the POS can use them during all cart operations to obtain the relevant delivery groups.

### Employee Verification SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/employee-verification-spi/employee-verification-spi-oas-public.yaml)

Merchant SPI to implement and provide an endpoint for the POS. This endpoint must be configured in the POS system so that the POS can use it to verify employee status and details.

### EReceipt SPI

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

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

### Fiscal SPI

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

Merchant SPI endpoints for fiscal integration. These are sample endpoints that provide specifications for merchants on how to implement fiscal API on their end and then configure them in CMS. The fiscal SPI enables Point of Sale to delegate fiscal operations (SALE, RETURN, LOGIN, LOGOUT, etc.) to a merchant-provided SI connector.

### Gift Card SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/gift-card-spi/gift-card-spi-oas-public.yaml)

Merchant SPI to perform gift card operations via a customer-managed provider adapter. Enables retailers to integrate any gift card provider without Point of Sale engineering involvement.

APIs include balance check, card activation, loading funds, redemption, and void/reversal.

### Configuration

1.  **Store Management** > **Integration** > **Custom API Connectors** > **Create**
    *   **API KEY:** GIFT\_CARD\_SERVICE with authentication details and URL Base.
    *   All the APIs defined below will use this URL base; only the operation-specific path suffix will change.
2.  Set **Store Management** > **Integration** > **Gift Card** > **Service** to `SPI`
3.  **Store Management** > **Integration** > **Gift Card** > **PIN Setting** controls whether cardPin is required or optional in requests.

### Gift Registry SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/gift-registry-spi/gift-registry-spi-oas-public.yaml)

Merchant SPI to implement and provide an endpoint for POS to perform Gift registry actions such as registry lookup, buy / return registry items.

Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**.

Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    
    *   **API Key:** `GIFT_REGISTRY`
    *   **API Endpoint:** Provide the common external endpoint for registry APIs, for example: [https://sample/external/endpoint/giftregistry](https://sample/external/endpoint/giftregistry)
2.  Under **JSON Config**:
    
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: `{"Content-Type":"application/json","client_id":"myClientId","client_secret":"myClientSecret"}`

Merchant to implement below APIs and use the same ending keyword for the individual APIs.

### Inventory Events SPI

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

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

### Inventory Service SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/inventory-service-spi/inventory-service-spi-oas-public.yaml)

Implement this endpoint per the specification and configure it in CMS under _**CMS** > **Store Management** > **Integration** > **Custom SPI Connectors** > **Create**_.

Make sure the endpoint is created in CMS with the following details:

### 1\. SPI Config

*   **SPI Key:** INVENTORY\_SERVICE
*   **SPI Endpoint:** Enter the **base SPI URL** in CMS.
*   The SPI supports multiple operations by appending specific **verbs** to the base URL.

**Example:**

*   **Base SPI URL (Configured in CMS):** [https://your-base-url.com/inventoryService](https://your-base-url.com/inventoryService)
*   **Full SPI Endpoints (Handled by Merchant's System):**
    *   **Revert Reserved Inventory:** [https://your-base-url.com/inventoryService/revert](https://your-base-url.com/inventoryService/revert)

**Merchants must handle the full SPI URL (base + verb) in their system.**

### 2\. JSON Config

*   **Integration Type:** Not required
*   **JSON Headers:** Provide the necessary authentication headers.

**Example:**

```json
{
  "Content-Type": "application/json",
  "client_id": "yourClientId",
  "client_secret": "yourClientSecret"
}
```

### Inventory SPI

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

Merchant SPI to implement and provide an endpoint for the POS to trigger and get inventory for the provided products. These endpoints must be configured in the POS system so that the POS can use them to check inventory availability.

### Loyalty SPI

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

Sample APIs that demonstrate how to implement API endpoints or webhooks in the merchant's system. These endpoints must be configured in the POS system so that the POS can use them to send order details and get loyalty-related information.

### Order SPI

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

Sample APIs that demonstrate how to implement API endpoints or webhooks in the merchant's system. These endpoints must be configured in the POS system so that the POS can use them during multiple scenarios like BORIS, BOPIS, BOFIS, and others.

### Promotion Code Validation SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/promotion-code-validation-spi/promotion-code-validation-spi-oas-public.yaml)

Merchant SPI to validate promotion codes from the merchant's system. These are sample endpoints that provide specifications for merchants on how to implement APIs on their end and then configure them in POS CMS for the POS to use when applying promotion codes.

### Quote SPI

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

Merchant SPI to search and retrieve quotes from external ERP/quote management systems. APIs include searching quotes, retrieving quote details, and verifying connectivity.

### Prerequisites

Enable these settings in **CMS** > **Store Management** > **Store Settings** > **Advanced**.

1.  **Quote Master of Record is external ERP system** - Set to true
2.  **Keep same Quote ID when quote is resumed as cart and then converted back to quote** - Set to true

### Configuration in CMS

1.  Go to **Store Management** > **Integration** > **Custom API Connectors** > **Create**.
    
    *   Set **API Key** to QUOTE\_SERVICE.
    *   Set **API Endpoint** to your base URL. For example, [https://your-system.com/api/quotes](https://your-system.com/api/quotes).
2.  Under **JSON Config**:
    
    *   Set **Integration Type** to HTTP\_POST.
    *   Set **JSON Headers:** `{"Content-Type":"application/json"}`

**Note:** For exporting quotes from POS to external systems, configure the **QUOTE\_EXPORT** webhook separately. The QUOTE\_EXPORT and QUOTE\_SERVICE endpoints should share the same domain for proper integration.

### Available Endpoints

*   **/search** - Search quotes from external system
*   **/{quoteId}** - Get a specific quote by ID
*   **/{quoteId}** - Delete a quote by ID (DELETE)
*   **/verify** - Verify SPI connectivity

### Quote Source Identification

Quotes created in POS will have a 'source' field indicating origin. External quotes from the merchant's system will be labeled accordingly in the POS quote list.

### Reward SPI

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

Sample reward-related APIs that demonstrate how to implement API endpoints or webhooks in the merchant's system. These endpoints must be configured in the POS system.

### Shipment Spi

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

Merchant SPI to implement and provide an endpoint for the POS to trigger and get applicable shipping options and shipping labels. Merchants must provide an implementation of this API if they want the POS to trigger and get applicable shipping methods via their endpoint.

### Shipping Method SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/shipping-method-spi/shipping-method-spi-oas-public.yaml)

Merchant SPI to implement and provide an endpoint for the POS to trigger and get applicable shipping methods with respect to items and shipping address of a particular cart. Merchants must provide an implementation of this API if they want the POS to trigger and get applicable shipping methods via their endpoint.

### Tax Calculation SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/tax-calculation-spi/tax-calculation-spi-oas-public.yaml)

Merchant SPI to calculate taxes for a transaction according to the rules defined in the tax engine of the merchant's system. APIs include tax calculation, getting tax exemptions, and downloading tax rates for offline transactions.

### Configuration

1.  **Store Management** > **Integration** > **Custom API Connectors** > **Create**
    *   **API KEY:** TAX\_SERVICE with authentication details and URL Base.
    *   All the APIs defined below will use this URL base; only the last keyword will change.
2.  Set **Store Management** > **Store Settings** > **Tax** > **valueAddedTaxEnabled** to `true` to enable VAT.

For more details, refer to [Set Up Tax Integration Using SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/tax-integration-via-spi.html).

### Transaction SPI

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

Sample SPIs that demonstrate how to implement SPI endpoints in the merchant's system. These endpoints are based on lean payload and must be configured in the POS system. These endpoints are the best alternative to the 'Order SPI' as they are based on lean payload.

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

### Visual Search SPI

[Download specification](https://developer.salesforce.com/static/commercecloud/retail-cloud/visual-search-spi/visual-search-spi-oas-public.yaml)

Merchant SPI for visual product search powered by an external image recognition provider. Enables store associates to search products by photographing them with the POS device camera. The Retail Cloud backend forwards the image and search parameters to this SPI endpoint and expects matching product IDs in return.

### Warranty SPI

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

Merchant SPI for warranty eligibility checks. Merchants implement this endpoint and configure it in CMS so the POS can retrieve eligible warranty products for merchandise items in the cart.

### Wishlist SPI

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

Merchant SPI to perform wishlist operations via a customer-managed provider adapter. This SPI allows retailers to integrate any wishlist provider without Retail Cloud engineering involvement. APIs include get wishlist, add products, and remove products. The API returns product IDs only; POS enriches them with full details from Solr.

### POSCrashData Webhook

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

This API sends POS crash data to external systems.

### POSVitals Webhook

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

This API sends POS vitals to external systems.

### Cart Events Webhook

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

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

### Promotion Events Webhook

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

Sample API that demonstrates how to implement a webhook endpoint by the merchant's system. This endpoint is then to be configured in the Point of Sale (POS) CMS system, so that the POS platform can use it to send promotion lifecycle events' data (CREATE, UPDATE, and DELETE). The event type is indicated by the `promotionEventType` field in the payload.

### Quote Events Webhook

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

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

### Store Fulfillment Event Webhook

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

The specification to implement a webhook in the merchant's system to export store fulfillment events from the POS to the merchant's downstream system.

The store fulfillment events are listed below and are related to BOPIS and BOFIS orders:

1.  BOPIS Order
    
    1.  PACK: Order is ready and items are packed by store associate.
    2.  DELIVERED: Items are picked up by the pickup person.
    3.  CANCELED: Items are canceled by store associate.
2.  BOFIS Order
    
    1.  PACK: Order is ready and items are packed by store associate.
    2.  SHIPPED: Items are shipped by store associate from the store.
    3.  CANCELED: Items are canceled by store associate.

### Webhook Monitoring Event Webhook

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

The specification to implement a webhook in the merchant's system to export webhook monitoring events from Salesforce POS to the merchant's downstream system.

The Webhook Monitoring events are listed below and are related to Custom SPI and Webhook:

1.  Received Error
    
    1.  Webhook/SPI Response Error: Webhook/SPI response 4xx/5xx error.
    2.  Webhook/SPI Response contains errors: Webhook/SPI response contains error messages with 200 status code.
2.  Threshold Exceed
    
    1.  Webhook/SPI response timeout: Webhook/SPI response times out.
    2.  Webhook/SPI response time exceeded: Webhook/SPI response time exceeds latency config in Custom Webhook/SPI.

## Operations

### GET Get CMS users.

`GET /merchant/{version}/users`

Operation ID: `getUsers`. Tags: CMS User Management API.

Retrieve all CMS users.

#### Parameters

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

#### Responses

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

### PUT Update a CMS user.

`PUT /merchant/{version}/users`

Operation ID: `updateUser`. Tags: CMS User Management API.

Update a CMS user. If the user is updated successfully, the successful response includes a list of all users. Otherwise, the response includes ErrorMessage and ErrorCode corresponding to the failure.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create CMS users.

`POST /merchant/{version}/users`

Operation ID: `createUsers`. Tags: CMS User Management API.

Create CMS users. If the users are created successfully, the response includes all users. Otherwise, the response includes ErrorMessage and ErrorCode corresponding to the failure.

#### Parameters

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

#### Request body

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

#### Responses

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

### DELETE Delete a CMS user.

`DELETE /merchant/{version}/users`

Operation ID: `deleteUser`. Tags: CMS User Management API.

Delete the provided CMS user. On successful deletion, the response includes a list of all remaining users. Otherwise, it contains ErrorMessage and ErrorCode corresponding to the failure.

#### Parameters

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

#### Responses

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

### PATCH Update CMS users.

`PATCH /merchant/{version}/users`

Operation ID: `patchUsers`. Tags: CMS User Management API.

Update the CMS users in the request. If all users are updated successfully, the successful response includes a list of all users. Otherwise, the response includes ErrorMessage and ErrorCode corresponding to the failure.

**Limit:** 100 users per request.

Validation includes:

1.  Empty or null request
2.  Valid existing CMS users.

#### Parameters

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

#### Request body

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

#### Responses

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

### GET Get CMS user.

`GET /merchant/{version}/users/{userId}`

Operation ID: `getUserByUserId`. Tags: CMS User Management API.

Retrieve CMS user details.

#### Parameters

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

#### Responses

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

### POST Mask customer data.

`POST /merchant/{version}/customer/mask`

Operation ID: `maskCustomerData`. Tags: Mask Customer Data, Customer API.

Administrative API to mask specific customer data to satisfy CCPA/GDPR requirements. Customer records are identified by customer ID or email address, and PII fields are replaced with mask characters across all relevant data stores.

The following categories of customer data are masked:

*   **Names** — first name, last name, middle name, initials
*   **Contact information** — email addresses, phone numbers
*   **Addresses** — billing and shipping addresses, including street, city, state/province, ZIP/postal code, and country
*   **Demographic information** — gender, age, date of birth
*   **Payment information** — credit card numbers, card type, expiration dates, billing address
*   **Loyalty and consent** — loyalty enrollment data and related consents
*   **Identification numbers** — driver's license, national ID, and similar identifiers

Masking is applied across relational databases (MySQL), NoSQL databases (DynamoDB), caches (Redis), and data warehouses (Redshift). Object storage (S3) is covered by TTL policies.

Masking is asynchronous. The response returns a `requestId` and an `IN_PROGRESS` status. Use the request ID to poll for completion.

#### Parameters

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

#### Responses

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

### PUT Cancel cycle count.

`PUT /merchant/{version}/ims/inventory/cyclecount/cancel`

Operation ID: `cancelCycleCount`. Tags: Inventory Management API.

Cancel the specified cycle count.

**Note:** Provide version as v1.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create IMS ASN.

`POST /merchant/{version}/ims/inventory/asn`

Operation ID: `createASN`. Tags: Inventory Management API.

Create an ASN in the IMS system.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create full cycle count.

`POST /merchant/{version}/ims/inventory/cyclecount/full`

Operation ID: `createFullCycleCount`. Tags: Inventory Management API.

Create a full cycle count. The complete inventory of products in a store can only be counted through a full cycle count.

**Note:** Provide version as v1.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create manual cycle count.

`POST /merchant/{version}/ims/inventory/cyclecount/manual`

Operation ID: `createManualCycleCount`. Tags: Inventory Management API.

Create a manual cycle count. The manual cycle count allows counting of a specific set of products.

**Note:** Provide version as v1.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create partial cycle count.

`POST /merchant/{version}/ims/inventory/cyclecount/partial`

Operation ID: `createPartialCycleCount`. Tags: Inventory Management API.

Create a partial cycle count. Cycle count for a particular group of products that fall within a selected category, brand, or any other product attribute that is provided in the request.

**Note:** Provide version as v1.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Upload notifications for target devices.

`POST /merchant/{version}/notifications`

Operation ID: `scheduleNotifications`. Tags: Notification API.

Schedule immediate notifications to be sent to specified target devices.

#### Parameters

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

#### Responses

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

### PUT Update products.

`PUT /merchant/{version}/products`

Operation ID: `updateProducts`. Tags: Product Management API.

Update products. The request must include all properties of the product along with properties to be modified.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create products.

`POST /merchant/{version}/products`

Operation ID: `addProducts`. Tags: Product Management API.

Create products. The request must include all properties of a product. Do not use this API to update existing products, as any updates using this API are not effective. Use the PUT API to update existing products.

#### Parameters

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

#### Request body

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

#### Responses

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

### DELETE Delete products.

`DELETE /merchant/{version}/products`

Operation ID: `deleteProducts`. Tags: Product Management API.

Delete products. The request must contain variantGroupID and product IDs. Product IDs can be a single product ID or multiple product IDs separated by commas.

#### Parameters

*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `variantGroupId` (query, string)
*   `productIds` (query, string)

#### Responses

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

### PATCH Patch products.

`PATCH /merchant/{version}/products`

Operation ID: `patchProducts`. Tags: Product Management API.

Update products. The request can include any or all properties of a product. Full product details are not needed.

**Limit:** 100 products per request.

If all products are updated successfully, a successful response is returned. Otherwise, error details are provided.

Validation includes:

1.  Empty or null product list
2.  Valid existing product ID
3.  Invalid product class, product title length.

#### Parameters

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

#### Request body

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

#### Responses

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

### GET Promotion management - get promotions

`GET /merchant/{version}/promotions`

Operation ID: `getPromotions`. Tags: Promotion Management API.

Retrieve promotions by ID, status, channel, or promotion code.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `promotionId` (query, string)
*   `active` (query, boolean)
*   `availableType` (query, string)  
    Allowed values: `EXPIRED`, `NOW`, `FUTURE`.
*   `channel` (query, string)
*   `promoCode` (query, string)

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `array of Promotion`.
    
    Array of `Promotion`.
    

### PUT Promotion management - Create or update promotion

`PUT /merchant/{version}/promotions`

Operation ID: `updatePromotion`. Tags: Promotion Management API.

The request must include all properties of a promotion for the upsert operation to succeed.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create or update promotion.

`POST /merchant/{version}/promotions`

Operation ID: `addPromotion`. Tags: Promotion Management API.

Create or update a promotion. The request must include all properties of a promotion so that the upsert operation succeeds.

#### Parameters

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

#### Request body

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

#### Responses

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

### PATCH Update promotions.

`PATCH /merchant/{version}/promotions`

Operation ID: `patchPromotions`. Tags: Promotion Management API.

Update promotions. The request can include any property of a promotion, but must include the promotion ID so that the update can be performed.

**Limit:** 100 promotions per request.

#### Parameters

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

#### Request body

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

#### Responses

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

### GET Get promotion.

`GET /merchant/{version}/promotions/{promotionId}`

Operation ID: `getPromotion`. Tags: Promotion Management API.

Retrieve a promotion.

#### Parameters

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

#### Responses

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

### DELETE Delete promotion.

`DELETE /merchant/{version}/promotions/{promotionId}`

Operation ID: `deletePromotion`. Tags: Promotion Management API.

Delete a promotion.

#### Parameters

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

#### Responses

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

### GET Download promotions report.

`GET /merchant/{version}/promotions/download/report`

Operation ID: `downloadPromotions`. Tags: Promotion Management API.

Download a report of promotions.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `promotionId` (query, string)
*   `active` (query, boolean)
*   `channel` (query, string)
*   `promoCode` (query, string)

#### Responses

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

### GET Get promotion codes.

`GET /merchant/{version}/promotions/{promotionId}/supc`

Operation ID: `getOneTimePromotionCode`. Tags: Promotion Management API.

Retrieve a list of Single Use Promotion Codes (SUPC) in a promotion from the POS.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `promotionId` (path, string, required)
*   `promotionCode` (query, string)
*   `redeem` (query, boolean)
*   `start` (query, integer (int32))
*   `limit` (query, integer (int32))

#### Responses

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

### PUT Update one-time promotion codes.

`PUT /merchant/{version}/promotions/{promotionId}/supc`

Operation ID: `updateOneTimePromotionCode`. Tags: Promotion Management API.

Update the redemption status of SUPCs in a promotion that were redeemed by an external system.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `promotionId` (path, string, required)
*   `redeem` (query, boolean)

#### Request body

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

#### Responses

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

### POST Insert one-time promotion codes.

`POST /merchant/{version}/promotions/{promotionId}/supc`

Operation ID: `insertOneTimePromotionCode`. Tags: Promotion Management API.

Create and send new valid SUPCs in a promotion to the POS system.

#### Parameters

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

#### Request body

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

#### Responses

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

### GET Retrieve promotions.

`GET /merchant/{version}/promotions/pagination`

Operation ID: `getPromotionsPagination`. Tags: Promotion Management API.

Retrieve a list of promotions based on the provided query parameters. The parameters include:

1.  `promotionId`: A query parameter to filter promotions by ID. (Optional)
2.  `active`: A query parameter to filter promotions by their active status. (Optional)
3.  `availableType`: A query parameter to filter promotions by their availability type. (Optional)
4.  `channel`: A query parameter to filter promotions by channel. (Optional)
5.  `promoCode`: A query parameter to filter promotions by promo code. (Optional)
6.  `start`: A query parameter with a default value of 0, indicating the starting point for pagination.
7.  `limit`: A query parameter with a default value of 200, indicating the maximum number of promotions to return.

**Note:** Due to API Gateway limitations, responses exceeding 10MB will result in a 500 error.

#### Parameters

*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `promotionId` (query, string)
*   `active` (query, boolean)
*   `availableType` (query, string)  
    Allowed values: `EXPIRED`, `NOW`, `FUTURE`.
*   `channel` (query, string)
*   `promoCode` (query, string)
*   `start` (query, integer (int32))  
    Default: `0`.
*   `limit` (query, integer (int32))  
    Default: `200`.

#### Responses

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

### POST Look up one-time promotion codes.

`POST /merchant/{version}/promotions/supc/lookup`

Operation ID: `oneTimePromotionCodeLookup`. Tags: Promotion Management API.

Return information about one-time promotion codes based on input codes. The maximum size of an input list is 100.

#### Parameters

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

#### Responses

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

### POST Upload promotion by JSON file.

`POST /merchant/{version}/promotions/upload`

Operation ID: `uploadPromotionByJsonFile`. Tags: Promotion Management API.

Upload a promotion by JSON file. Refer to [Single-Use Promotion Code](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/single-use-promotion-code.html) for file specification.

#### Parameters

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

#### Request body

Media type: `multipart/form-data`. Schema: `object`.

*   `File` (_FormDataBodyPart_)

#### Responses

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

### PUT Create or update store associates.

`PUT /merchant/{version}/associates/bulk`

Operation ID: `bulkUpsertStoreAssociate`. Tags: Store Associate Management API.

Create or update a list of store associates in the POS system. The number of associates in the request must be between 1 and 100. All mandatory fields are required for each associate being created or updated. If any non-mandatory field is set to null, it overwrites the existing data with null. Update and create validation rules are applied to each associate in the request. If all associates are created or updated successfully, a successful response is returned; otherwise, the response contains error messages corresponding to the failures. ErrorMessage and code are populated for validation failures. General Validation includes:

1.  Ensuring the associateList is not empty or null.
2.  Performing mobile configuration ID validation. Update Validation includes:
3.  Verifying that all associates to be updated exist in the system.
4.  Checking for mismatches between the number of updating associates and existing associates.
5.  Validating that all associate IDs in the update list exist in the system. Create Validation includes:
6.  Verifying that all associates to be created do not exist in the system.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create store associates.

`POST /merchant/{version}/associates/bulk`

Operation ID: `bulkCreateStoreAssociate`. Tags: Store Associate Management API.

Create a list of store associates in the POS system. The number of associates in the request must be between 1 and 100. All mandatory fields are required for each associate being created. If any non-mandatory field is set to null, it overwrites the existing data with null. If all associates are created successfully, a successful response is returned. Otherwise, the response contains an errorMessage and errorCode corresponding to the failure. ErrorMessage and code are populated for validation failures. Validation includes:

1.  Ensuring the associateList is not empty or null.
2.  Verifying that all associates to be created do not exist in the system.
3.  Performing mobile configuration ID validation.

#### Parameters

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

#### Request body

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

#### Responses

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

### PATCH Update store associates.

`PATCH /merchant/{version}/associates/bulk`

Operation ID: `bulkUpdateStoreAssociate`. Tags: Store Associate Management API.

Update a list of store associates in the POS system. The number of associates in the request must be between 1 and 100. The update only requires the store associate ID field. Only the fields provided in the request are updated. If all associates are updated successfully, a successful response is returned. Otherwise, the response contains an errorMessage and errorCode corresponding to the failure. ErrorMessage and code are populated for validation failures. Validation includes:

1.  Ensuring the associateList is not empty or null.
2.  Verifying that all associates to be updated exist in the system.
3.  Checking for mismatches between the number of updating associates and existing associates.
4.  Validating that all associate IDs in the update list exist in the system.
5.  Performing mobile configuration ID validation.

#### Parameters

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

#### Request body

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

#### Responses

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

### GET Retrieve store associates.

`GET /merchant/{version}/associates`

Operation ID: `getStoreAssociates`. Tags: Store Associate Management API.

Retrieve active or inactive store associates based on query parameters storeId and associateId. Both query parameters are optional.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `storeId` (query, string)
*   `associateId` (query, string)
*   `active` (query, string)

#### Responses

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

### PUT Update store associate.

`PUT /merchant/{version}/associates`

Operation ID: `updateStoreAssociate`. Tags: Store Associate Management API.

Update a store associate in the POS system. If the associate is updated successfully, the same associate details are returned. Otherwise, the response contains ErrorMessage and ErrorCode corresponding to the failure.

#### Parameters

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

#### Request body

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

#### Responses

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

### POST Create store associate.

`POST /merchant/{version}/associates`

Operation ID: `createStoreAssociate`. Tags: Store Associate Management API.

Create a store associate in the POS system. If the associate is created successfully, the same associate details are returned. Otherwise, the response contains ErrorMessage and ErrorCode corresponding to the failure.

#### Parameters

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

#### Request body

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

#### Responses

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

### DELETE Deactivate store associate.

`DELETE /merchant/{version}/associates`

Operation ID: `deleteStoreAssociate`. Tags: Store Associate Management API.

Deactivate a store associate from the POS system corresponding to the associateId query parameter. On successful deactivation, the active field on the associate is set to false, and the response contains the deactivated associate details. If unsuccessful, the response contains the ErrorMessage and ErrorCode corresponding to the failure.

#### Parameters

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

#### Responses

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

### GET Retrieve store associate.

`GET /merchant/{version}/associates/{associateId}`

Operation ID: `getStoreAssociate`. Tags: Store Associate Management API.

Retrieve store associate details by associateId.

#### Parameters

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

#### Responses

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

### GET Retrieve all store group prices.

`GET /merchant/v1/admin/storegroup`

Operation ID: `getAllStoreGroupPrices`. Tags: Store Group Management API.

Retrieve all store group prices.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `start` (query, integer (int32))
*   `limit` (query, integer (int32))

#### Responses

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

### PUT Update store group price.

`PUT /merchant/v1/admin/storegroup`

Operation ID: `updateStoreGroupPrice`. Tags: Store Group Management API.

Update a store group price.

#### Parameters

*   `PredictSpring-Secret` (header, string)

#### Request body

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

#### Responses

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

### POST Add store group price for product.

`POST /merchant/v1/admin/storegroup`

Operation ID: `addStoreGroupPrice`. Tags: Store Group Management API.

Add a store group price for a product.

#### Parameters

*   `PredictSpring-Secret` (header, string)

#### Request body

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

#### Responses

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

### PATCH Update store group prices.

`PATCH /merchant/v1/admin/storegroup`

Operation ID: `patchStoreGroups`. Tags: Store Group Management API.

Update store group prices or other attributes. **Limit:** 100 store groups per request. The store groups in the request are updated in batch. Only if all store groups are updated successfully, a successful response is returned. Validation includes:

1.  Empty request
2.  Valid store group ID and product ID.

#### Parameters

*   `PredictSpring-Secret` (header, string)

#### Request body

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

#### Responses

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

### GET Get store group price for product by productId and storeGroupId

`GET /merchant/v1/admin/storegroup/{storeGroupId}/{productId}`

Operation ID: `getStoreGroupPriceByStoreGroupIdProductId`. Tags: Store Group Management API.

API to get store group price for product by productId and storGroupId.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `storeGroupId` (path, string, required)
*   `productId` (path, string, required)

#### Responses

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

### DELETE Delete store group price by storeGroupId and productId

`DELETE /merchant/v1/admin/storegroup/{storeGroupId}/{productId}`

Operation ID: `deleteStoreGroupPrice`. Tags: Store Group Management API.

API to delete store group price.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `storeGroupId` (path, string, required)
*   `productId` (path, string, required)

#### Responses

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

### GET Retrieve store inventory.

`GET /merchant/{version}/storeproducts/inventory`

Operation ID: `getMultiStoreInventory`. Tags: Store Product Management API.

Return store inventory details for queried store and product ID. This API accepts multiple product IDs and store IDs in one call. - **productIds** (Required): Product IDs to search. Use commas to separate values. Number of IDs range is 0 to 20. - **storeIds**: Store IDs to search. Number of store IDs: 0 to 1000. Use commas to separate values. If empty or null, search in all stores by default.

#### Parameters

*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `storeIds` (query, string)
*   `productIds` (query, string, required)

#### Responses

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

### PUT Update inventory.

`PUT /merchant/{version}/storeproducts/inventory`

Operation ID: `updateStoreInventory`. Tags: Store Product Management API.

Update store or ecommerce inventory of products.

#### Parameters

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

#### Request body

Media type: `application/json`. Schema: `array of InventoryAdjustRequest`.

Array of `InventoryAdjustRequest`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `array of InventoryAdjustResponse`.
    
    Array of `InventoryAdjustResponse`.
    

### POST Create inventory.

`POST /merchant/{version}/storeproducts/inventory`

Operation ID: `addStoreInventory`. Tags: Store Product Management API.

Create store or ecommerce inventory of products.

#### Parameters

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

#### Request body

Media type: `application/json`. Schema: `array of InventoryAdjustRequest`.

Array of `InventoryAdjustRequest`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `array of InventoryAdjustResponse`.
    
    Array of `InventoryAdjustResponse`.
    

### DELETE Delete store inventory.

`DELETE /merchant/{version}/storeproducts/inventory`

Operation ID: `deleteStoreInventory`. Tags: Store Product Management API.

Delete store inventory with last updated date older than the given date. This API deletes store inventory records that have not been updated for a long time.

#### Parameters

*   `PredictSpring-Secret` (header, string)
*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `lastUpdated` (query, integer (int64))

#### Responses

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

### GET Retrieve store inventory CSV.

`GET /merchant/{version}/storeproducts/inventory/{storeId}`

Operation ID: `getStoreInventory`. Tags: Store Product Management API.

Provide the URL for a CSV file containing store inventory. - **delimiter**: Optional query parameter that accepts two values: csv and tsv. - **fullInventory**: Optional (true/false) to get full inventory. Default is false. If fullInventory is false, inventory updates that happened in a day are provided.

#### Parameters

*   `version` (path, string, required) Supported: v1.  
    Pattern: v1|v2.
*   `storeId` (path, string, required)
*   `delimiter` (query, string)  
    Default: `csv`.
*   `fullInventory` (query, boolean)  
    Default: `false`.
*   `useMapping` (query, boolean)  
    Default: `false`.

#### Responses

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

### PUT Update store product details.

`PUT /merchant/{version}/storeproducts`

Operation ID: `updateStoreProducts`. Tags: Store Product Management API.

Update store product details including item's list price, sale price, quantity, and promo banner text.

#### Parameters

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

#### Request body

Media type: `application/json`. Schema: `array of StoreProductDetails`.

Array of `StoreProductDetails`.

#### Responses

*   **default** Default response.
    
    Media type: `application/json`. Schema: `array of StoreProductUpdateResponse`.
    
    Array of `StoreProductUpdateResponse`.
    

### PATCH Update store product details.

`PATCH /merchant/{version}/storeproducts`

Operation ID: `patchStoreProducts`. Tags: Store Product Management API.

Update store product details. The request can include any or all details of the store inventory product. **Limit:** 100 store products per request.

#### Parameters

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

#### Request body

Media type: `application/json`. Schema: `array of StoreProductDetails`.

Array of `StoreProductDetails`.

#### Responses

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

### POST Create BOFIS order.

`POST /merchant/v1/sa/fulfillment/orders/bofis`

Operation ID: `createBofisOrder`. Tags: Fulfillment Order API.

Create a BOFIS order in the POS system and allocate inventory for store fulfillment.

#### Request body

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

#### Responses

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

### POST Create BOPIS order.

`POST /merchant/v1/sa/fulfillment/orders/bopis`

Operation ID: `createBopisOrder`. Tags: Fulfillment Order API.

Create a BOPIS order in the POS system and allocate inventory for store fulfillment.

#### Request body

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

#### Responses

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

### POST Cancel BOPIS Items.

`POST /merchant/v1/sa/fulfillment/orders/{bopisOrderId}/stores/{storeId}/bopis/cancel`

Operation ID: `cancelBopisItems`. Tags: Fulfillment Order API.

Cancels BOPIS items for a specific order and store.

#### Parameters

*   `bopisOrderId` (path, string, required)
*   `storeId` (path, string, required)

#### Request body

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

#### Responses

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

### POST Create ROPIS order.

`POST /merchant/v1/sa/fulfillment/orders/ropis`

Operation ID: `createRopisOrder`. Tags: Fulfillment Order API.

Create a ROPIS order in the POS system and allocate inventory for store fulfillment.

#### Request body

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

#### Responses

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

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

### POST Retrieve activation code.

`POST /merchant/spi/sample/endpoint/sa/activation/code/activation/code/from/external/system`

Operation ID: `getActivationCode`. Tags: Activation Code SPI.

Retrieve activation code from merchant's system based on provided input. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `ACTIVATION_CODE`
    *   **API Endpoint:** Provide the external endpoint to get activation code and details, for example: /merchant/spi/sample/endpoint/sa/activation/code
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, for example: {"contentType": "application/json"} **Invoke:** The SPI is invoked during the order checkout flow or submit order only if the order has a product that needs population of activation code from the external service (i.e., **CMS** > **Product Class** > **Requires Activation Code via External Source is enabled**). **Response:** If the SPI has an empty response or error, the order checkout or submit order flow is not completed and the associate sees an error. For more details, refer to [Point of Sale SPI Error Handling](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-spi-error-handling.html)

#### Request body

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

#### Responses

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

### POST Validate cart.

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

Operation ID: `cartValidation`. Tags: Cart Validation SPI.

This SPI endpoint enables POS to send a cart to the merchant's external system for validation. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `CART_VALIDATION`
    *   **API Endpoint:** Provide the external endpoint to get the cart validation, for example: [https://sample/external/endpoint/cartValidation](https://sample/external/endpoint/cartValidation)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, for example: {"Content-Type":"application/json"}.

#### Request body

Media type: `*/*`. Schema: `ExternalCart`.

#### Responses

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

### GET Search and retrieve customers.

`GET /merchant/spi/sample/endpoint/sa/customers`

Operation ID: `searchCustomers`. Tags: Clienteling SPI.

Search and retrieve customers based on input parameters. Merchant must implement this endpoint per this specification and then configure it in CMS. For more information, see [Point of Sale API, SPI, and Webhook Overview](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html)

#### Parameters

*   `start` (query, integer (int32))  
    Default: `0`.
*   `count` (query, integer (int32))  
    Default: `20`.
*   `firstName` (query, string)
*   `lastName` (query, string)
*   `phone` (query, string)
*   `email` (query, string)
*   `id` (query, string)
*   `postalCode` (query, string)
*   `searchString` (query, string)
*   `countryCode` (query, string)

#### Responses

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

### PUT Update customer.

`PUT /merchant/spi/sample/endpoint/sa/customers`

Operation ID: `updateCustomer`. Tags: Clienteling SPI.

Update the existing customer. The existing customerId is provided under 'profile.customerId'. Merchant must implement this endpoint per this specification and then configure it in CMS. For more information, see [Point of Sale API, SPI, and Webhook Overview](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html)

#### Request body

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

#### Responses

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

### POST Create customer.

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

Operation ID: `createCustomer`. Tags: Clienteling SPI.

Create customer based on customer data entered in POS. Merchant must implement this endpoint per this specification and then configure it in CMS. For more information, see [Point of Sale API, SPI, and Webhook Overview](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html)

#### Request body

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

#### Responses

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

### GET Retrieve customer details.

`GET /merchant/spi/sample/endpoint/sa/customers/{customerId}`

Operation ID: `getCustomer`. Tags: Clienteling SPI.

Retrieve customer data based on customer ID. Merchant must implement this endpoint per this specification and then configure it in CMS. For more information, see [Point of Sale API, SPI, and Webhook Overview](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/retail-cloud-api-spi-webhook-specs.html)

#### Parameters

*   `customerId` (path, string, required)

#### Responses

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

### GET Retrieve customer address list.

`GET /merchant/spi/sample/endpoint/sa/customer/address`

Operation ID: `getCustomerAddresses`. Tags: Customer Address SPI.

Retrieve a list of addresses for a customer by customer ID.

#### Parameters

*   `customerId` (query, string)

#### Responses

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

### PUT Update customer address.

`PUT /merchant/spi/sample/endpoint/sa/customer/address`

Operation ID: `updateCustomerAddress`. Tags: Customer Address SPI.

Update customer address by customer ID and address ID.

#### Request body

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

#### Responses

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

### POST Add new customer address.

`POST /merchant/spi/sample/endpoint/sa/customer/address`

Operation ID: `addCustomerAddress`. Tags: Customer Address SPI.

Add a new address for a customer.

#### Request body

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

#### Responses

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

### DELETE Delete customer address.

`DELETE /merchant/spi/sample/endpoint/sa/customer/address`

Operation ID: `deleteCustomerAddress`. Tags: Customer Address SPI.

Delete customer address by customer ID and address ID.

#### Parameters

*   `customerId` (query, string)
*   `addressId` (query, string)

#### Responses

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

### POST Retrieve date-time slots.

`POST /merchant/spi/sample/endpoint/sa/datetime/slots/from/external/system`

Operation ID: `getDeliveryDates`. Tags: DateTimeSlot SPI.

Retrieve delivery or pickup dates and time slots from merchant's system. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `DATE_PICKER`
    *   **API Endpoint:** Provide the external endpoint
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}.

#### Request body

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

#### Responses

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

### POST Retrieve delivery group list.

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

Operation ID: `getDeliveryGroupList`. Tags: Delivery Group SPI.

Retrieve delivery group from merchant's system. This SPI also provides shipping options for each delivery group. This SPI is used by POS to get delivery groups corresponding to cart and is triggered if the cart has a delivery item. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `DELIVERY_GROUP`
    *   **API Endpoint:** Provide the external endpoint to get the delivery group, for example: [https://sample/external/endpoint/to/get/deliveryGroup/from/external/system/456709](https://sample/external/endpoint/to/get/deliveryGroup/from/external/system/456709)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, for example: {"Content-Type":"application/json"}.

#### Request body

Media type: `*/*`. Schema: `SPIShipmentProcessorRequest`.

#### Responses

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

### POST Receive eReceipt.

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

Operation ID: `postReceipt`. Tags: EReceipt SPI.

Receive order's detail. Merchant must implement this endpoint per this specification and then configure it in CMS. See SA\_ORDER\_INTIMATION.

#### Request body

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

#### Responses

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

### POST Verify employee.

`POST /merchant/spi/sample/endpoint/sa/employee/verification/to/verify/employee/from/external/system`

Operation ID: `verifyEmployee`. Tags: Employee Verification SPI.

Verify employee details from merchant's system based on provided input. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `VERIFY_EMPLOYEE`
    *   **API Endpoint:** Provide the external endpoint to verify employee, for example: [https://sample.com/external/endpoint/to/verify/employee/from/external/system](https://sample.com/external/endpoint/to/verify/employee/from/external/system)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, for example: {"contentType": "application/json"} **Response:** If response is NULL or empty, or has ErrorCode or ErrorMessage, employee verification fails. **Use Case:** If an employee makes the purchase, authenticate their details when they are added to the cart.

#### Request body

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

#### Responses

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

### POST Activate Gift Card

`POST /merchant/spi/sample/endpoint/spiGiftCard/activateGiftCard`

Operation ID: `activateGiftCard`. Tags: Gift Card SPI.

Activates a new or inactive gift card at the provider with the specified amount. Called when a store associate sells a new gift card or issues a refund to a new card (step 1 of a two-step flow). The response `cardNumber` should echo back the card number from the request. The `providerTransactionId` returned must be stored by the platform and passed back in any subsequent void request. On error, set `errorCode` and `errorMessage` inherited from SpiPSResponse and leave the data fields unset.

#### Request body

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

#### Responses

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

### POST Add Balance to Gift Card

`POST /merchant/spi/sample/endpoint/spiGiftCard/addBalance`

Operation ID: `addBalance`. Tags: Gift Card SPI.

Loads funds onto an existing active gift card. Used during gift card purchase (step 2 after activation) or when issuing a refund to an existing card. The `providerTransactionId` returned must be stored by the platform and passed back in any subsequent void request. On error, set `errorCode` and `errorMessage` inherited from SpiPSResponse and leave the data fields unset.

#### Request body

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

#### Responses

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

### POST Check Gift Card Balance

`POST /merchant/spi/sample/endpoint/spiGiftCard/checkBalance`

Operation ID: `checkBalance`. Tags: Gift Card SPI.

Checks the current balance and active status of a gift card. This single endpoint serves two platform operations:

*   **getBalance()** — platform reads `balance` and `cardNumber` from the response
*   **isInactive()** — platform reads `isActive` from the response The response must always include both `balance` and `isActive` so either operation can be served. On error, set `errorCode` and `errorMessage` inherited from SpiPSResponse and leave the data fields unset.

#### Request body

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

#### Responses

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

### POST Redeem Gift Card

`POST /merchant/spi/sample/endpoint/spiGiftCard/redeemGiftCard`

Operation ID: `redeemGiftCard`. Tags: Gift Card SPI.

Deducts funds from a gift card. Used for two scenarios:

*   **Payment tender** — deducts the requested amount during checkout
*   **Cash out** — platform validates the balance is at or below the configured threshold, then calls this endpoint with the full balance to bring the card to $0 On success (no errorCode), the full requested amount is redeemed. Partial redemption is not supported. The `providerTransactionId` is stored as the capture token and the `providerReferenceId` is stored as the requestId on the tender — both are required for reconciliation and void operations. On error, set `errorCode` and `errorMessage` inherited from SpiPSResponse and leave the data fields unset.

#### Request body

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

#### Responses

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

### POST Void Gift Card Transaction

`POST /merchant/spi/sample/endpoint/spiGiftCard/voidGiftCard`

Operation ID: `voidGiftCard`. Tags: Gift Card SPI.

Reverses a previous gift card operation (redeem or addBalance). Called when an order fails after a gift card charge was captured, or when an explicit reversal is needed. The `originalProviderTransactionId` in the request must match the `providerTransactionId` returned by the original operation so the provider can identify which transaction to reverse. The `amount` must match the `approvedAmount` from the original operation. The `providerReferenceId` returned is stored by the platform as the paymentReversalRequestId on the tender. On error, set `errorCode` and `errorMessage` inherited from SpiPSResponse and leave the data fields unset.

#### Request body

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

#### Responses

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

### GET Retrieve products for registry ID.

`GET /merchant/spi/sample/endpoint/giftregistry/{identifier}`

Operation ID: `getRegistryProducts`. Tags: Gift Registry SPI.

Retrieve the list of all products belonging to the particular registry ID. The list is available for the customer to select from. The identifier is the registryId, which is a path parameter.

#### Parameters

*   `identifier` (path, string, required)

#### Responses

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

### POST Return gift registry product.

`POST /merchant/spi/sample/endpoint/giftregistry/returnRegistryItem`

Operation ID: `searchGiftRegistry`. Tags: Gift Registry SPI.

Retrieve a gift registry product based on the registryId, productId, and quantity passed in the request, which can be added to cart to initiate the NRR flow.

#### Request body

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

#### Responses

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

### POST Search gift registries.

`POST /merchant/spi/sample/endpoint/giftregistry/searchRegistries`

Operation ID: `searchGiftRegistry_1`. Tags: Gift Registry SPI.

Fetch the list of gift registries from the external system based on the search criteria, allowing customers to select products from the registry to add to the order. Please provide one or more query parameters.

#### Request body

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

#### Responses

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

### POST Check inventory availability for zip code.

`POST /merchant/spi/sample/endpoint/product/zipcode/getAvailabilityInformation`

Operation ID: `checkInventoryAvailability`. Tags: Inventory SPI.

Check the external system for the availability of a given product against the provided zip code. The response is a single string, the availability text, and any other information related to the product. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `INVENTORY_BY_ZIPCODE`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/endpoint/product/zipcode/getAvailabilityInformation](https://sample/external/endpoint/product/zipcode/getAvailabilityInformation)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}.

#### Request body

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

#### Responses

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

### POST Check inventory overview for all stores and warehouses.

`POST /merchant/spi/sample/endpoint/product/getInventoryOverview`

Operation ID: `checkInventoryOverview`. Tags: Inventory SPI.

Check the external system for the availability of a given product. The response is shown on the existing inventory overview widget, showing availability for all stores. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `GET_PRODUCT_INVENTORY_OVERVIEW`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/endpoint/to/get/inventory/from/external/system](https://sample/external/endpoint/to/get/inventory/from/external/system)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}.

#### Request body

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

#### Responses

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

### POST Revert reserved inventory.

`POST /merchant/spi/sample/endpoint/sa/inventoryService/revert`

Operation ID: `revertInventory`. Tags: Inventory service SPI.

Reverts reserved inventory for specified products in a cart. - Used when payment fails or checkout doesn't complete to release reserved inventory. **Structure:** - **Base SPI Endpoint:** /merchant/spi/sample/endpoint/sa/inventoryService (Configured in CMS) - **Verb:** /revert (Handled by the merchant's system when making SPI calls) - **Full Endpoint:** /merchant/spi/sample/endpoint/sa/inventoryService/revert.

#### Request body

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

#### Responses

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

### POST Inventory SPI to Check Inventory count

`POST /merchant/spi/sample/endpoint/sa/inventory/to/check/inventory/from/external/system`

Operation ID: `checkInventory`. Tags: Inventory SPI.

The API is to check the external system for the availability of given products by checking their inventory count. Merchant API to receive the Product ID, the type of inventory check to be done (ONLINE or IN\_STORE), optionally Store ID, and the purpose of inventory check (AVAILABILITY).

#### Request body

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

#### Responses

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

### POST Send cycle count events data out

`POST /merchant/spi/sample/endpoint/sa/customer/inventory/cycleCount`

Operation ID: `sendInventoryEventsData`. Tags: Inventory Events SPI.

Sends cycle count data to an external system. **Supported events:**

1.  CYC\_COUNT\_CREATED\_EVENT
2.  CYC\_COUNT\_STARTED\_EVENT
3.  CYC\_COUNT\_COMPLETED\_EVENT
4.  CYC\_COUNT\_CANCELED\_EVENT.

#### Request body

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

#### Responses

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

### POST Send inventory adjustment events data out

`POST /merchant/spi/sample/endpoint/sa/customer/inventory/inventoryAdjustment`

Operation ID: `sendInventoryEventsData_1`. Tags: Inventory Events SPI.

Sends inventory adjustment data to an external system. **Supported events:**

1.  INVENTORY\_ADJUSTMENT.

#### Request body

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

#### Responses

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

### POST Send inventory transfer events data out

`POST /merchant/spi/sample/endpoint/sa/customer/inventory/inventoryTransfer`

Operation ID: `sendInventoryEventsData_2`. Tags: Inventory Events SPI.

Sends inventory transfer data to an external system. The inventory transfer types include: ASN, CORP\_TRANSFER, STORE\_TO\_STORE, BLIND\_RECEIVE, RETURN\_TO\_VENDOR. All related events will use this API. **Supported events:**

1.  ASN\_RECEIVED\_EVENT
2.  ASN\_PARTIALLY\_RECEIVED\_EVENT
3.  ASN\_RECEIVE\_COMPLETED\_EVENT
4.  ASN\_REJECTED\_EVENT
5.  BLIND\_RECEIVE\_STARTED\_EVENT
6.  BLIND\_RECEIVE\_PAUSED\_EVENT
7.  BLIND\_RECEIVE\_IN\_PROGRESS\_EVENT
8.  BLIND\_RECEIVE\_COMPLETED\_EVENT
9.  CTS\_TRANSFER\_STARTED\_EVENT
10.  CTS\_TRANSFER\_COMPLETED\_EVENT
11.  CTS\_TRANSFER\_CANCELLED\_EVENT
12.  CTS\_TRANSFER\_ERRORED\_EVENT
13.  STS\_TRANSFER\_STARTED\_EVENT
14.  STS\_TRANSFER\_COMPLETED\_EVENT
15.  STS\_TRANSFER\_SHIPPED\_EVENT
16.  STS\_TRANSFER\_RECEIVED\_EVENT
17.  STS\_TRANSFER\_CANCELLED\_EVENT
18.  STS\_TRANSFER\_ERRORED\_EVENT
19.  RTV\_CREATED\_EVENT
20.  RTV\_COMPLETED\_EVENT
21.  RTV\_SHIPPED\_EVENT
22.  RTV\_RECEIVED\_EVENT
23.  RTV\_CANCELLED\_EVENT
24.  RTV\_FAILLED\_EVENT.

#### Request body

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

#### Responses

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

### POST Send purchase order events data out

`POST /merchant/spi/sample/endpoint/sa/customer/inventory/purchaseOrder`

Operation ID: `sendInventoryEventsData_3`. Tags: Inventory Events SPI.

Sends purchase order data to an external system. **Supported events:**

1.  PO\_TRANSFER\_STARTED\_EVENT
2.  PO\_TRANSFER\_COMPLETED\_EVENT
3.  PO\_TRANSFER\_ERRORED\_EVENT.

#### Request body

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

#### Responses

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

### POST Send return inventory events data out

`POST /merchant/spi/sample/endpoint/sa/customer/inventory/return`

Operation ID: `sendInventoryEventsData_4`. Tags: Inventory Events SPI.

Sends return inventory details to an external system.

#### Request body

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

#### Responses

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

### POST Send sale inventory events data.

`POST /merchant/spi/sample/endpoint/sa/customer/inventory/sale`

Operation ID: `sendInventoryEventsData_5`. Tags: Inventory Events SPI.

Send sale inventory detail to external system.

#### Request body

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

#### Responses

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

### POST Retrieve loyalty points earned.

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

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

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

#### Request body

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

#### Responses

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

### POST Order SPI to Export Return

`POST /merchant/spi/sample/endpoint/sa/orders/to/export/return/order/to/external/system`

Operation ID: `exportReturnOrder`. Tags: Order SPI.

The specification provides details for external endpoint to consume the POS return transaction. It also describes on how to configure an external endpoint in POS system to export the sale transaction to the external system. **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with following details

1.  Under **API Config**
    
    *   **API Key:** `RETURN`
    *   **API Endpoint:** Provide the external endpoint to get the order eg.[https://sample/external/to/export/return/order/to/external/system](https://sample/external/to/export/return/order/to/external/system)
2.  Under **JSON Config**
    
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the api. Headers can be Content-Type, Authorization attributes like clientId/password eg. {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}
    *   The endpoint with Oauth athorization is supported. For more details refer to documentation

**Use Case**: The endpoint will be used to post the return transaction to external system/OMS .

#### Request body

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

#### Responses

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

### POST Export sale order.

`POST /merchant/spi/sample/endpoint/sa/orders/to/export/sale/order/to/external/system`

Operation ID: `exportSaleOrder`. Tags: Order SPI.

Export the POS sale transaction to an external endpoint. This specification provides details for the external endpoint to consume the POS sale transaction and describes how to configure an external endpoint in the POS system to export the sale transaction to the external system. Configure the endpoint in CMS under **CMS** > **Store Management** > **Integration** > **Custom Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **Endpoint Name:** `ORDER`
    *   **API Endpoint:** Provide the external endpoint to export the sale order, for example: [https://sample/external/to/export/sale/order/to/external/system](https://sample/external/to/export/sale/order/to/external/system)
    *   **API Authorization Key:** Provide the authorization key for the API
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type or Authorization attributes like clientId/password, for example: `{"Content-Type":"application/json","client_id":"myClientId","client_secret":"myClientSecret"}`
3.  The endpoint with OAuth authorization is supported. For more details, refer to documentation. **Use Case:** The endpoint is used to post the sale transaction to external system or OMS.

#### Request body

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

#### Responses

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

### GET Retrieve BORIS order.

`GET /merchant/spi/sample/endpoint/sa/orders/to/get/boris/order/from/external/system/{orderId}`

Operation ID: `getBorisOrder`. Tags: Order SPI.

Retrieve a specifically BORIS order from merchant's system in the form of CustomerOrder object. Make sure orderId is provided as a path parameter. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `BORIS_GET_ORDER_DETAIL`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/endpoint/to/get/order/from/external/system/456709](https://sample/external/endpoint/to/get/order/from/external/system/456709)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_GET`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"} **Use Case:** To fetch the order from an external system during BORIS flow for merchants that use POS.

****Note:**** For a BORIS order, if the customer initiates the return with an external or alternate receipt ID, this SPI is expected to return the POS Order ID in the field 'borisOrderId'. Either a full Order object is expected or just 'borisOrderId' in the response.

#### Parameters

*   `orderId` (path, string, required)

#### Responses

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

### GET Retrieve order.

`GET /merchant/spi/sample/endpoint/sa/orders/to/get/order/from/external/system/{orderId}`

Operation ID: `getOrder_1`. Tags: Order SPI.

Retrieve order from merchant's system in the form of CustomerOrder object. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `GET_ORDER_DETAIL`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/endpoint/to/get/order/from/external/system/456709](https://sample/external/endpoint/to/get/order/from/external/system/456709)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_GET`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"} **Use Case:** To fetch the order from an external system during BORIS flow for merchants that use POS OMS as a master of record for in-store orders and external OMS as master of record for web orders.

#### Parameters

*   `orderId` (path, string, required)

#### Responses

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

### POST Search orders.

`POST /merchant/spi/sample/endpoint/sa/orders/to/search/orders/from/external/system`

Operation ID: `searchOrders_1`. Tags: Order SPI.

Search orders from merchant's system based on provided filter criteria. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `SEARCH_ORDERS`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample.com/external/endpoint/to/search/orders/from/external/system](https://sample.com/external/endpoint/to/search/orders/from/external/system)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"} **Use Case:** To search orders in external system and show them in the order-history screen of POS.

#### Request body

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

#### Responses

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

### POST Export POSCrashData.

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

Operation ID: `exportPOSCrashData`. Tags: POSCrashData Webhook.

Export POSCrashData to external system.

#### Request body

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

#### Responses

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

### POST Export POSVitals.

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

Operation ID: `exportPOSVitals`. Tags: POSVitals Webhook.

Export POSVitals to external system.

#### Request body

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

#### Responses

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

### POST Validate promotion code.

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

Operation ID: `validatePromoCode`. Tags: Promotion Code Validation SPI.

Validate a provided promotion code by checking its validity and returning the associated promotion ID. If the promotion code is valid, the response returns the corresponding promotion ID. If the promotion code is invalid, the response returns an empty promotion ID. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `SUPC_PROMOTION_CODE_VALIDATION`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/endpoint/to/get/order/from/external/system/456709](https://sample/external/endpoint/to/get/order/from/external/system/456709)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}.

#### Request body

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

#### Responses

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

### GET Get Quote Details

`GET /merchant/spi/sample/endpoint/quote/{quoteId}`

Operation ID: `getQuoteDetails`. Tags: Quote SPI.

Retrieve detailed information for a specific quote from the merchant's external ERP system. This API is called when a store associate views or resumes a specific quote in POS.

### Use Cases

*   View complete quote details including items, pricing, and customer information
*   Resume a quote to cart for editing or conversion to order
*   Retrieve quote information for reporting or analysis

### Request Parameters

*   **quoteId**: The ID of the quote to retrieve (required, path parameter)

**Response (GetQuoteResponse):**

*   **quote**: SavedCart object containing complete quote details
*   **quoteId**: Unique quote identifier
*   **externalQuoteId**: External system quote ID if different
*   **customerId**: Associated customer ID
*   **status**: Quote status (e.g., Suspended, Active)
*   **cartItemList**: List of items in the quote
*   **subTotal**: Subtotal amount
*   **tax**: Tax amount
*   **total**: Total amount
*   **createdTs**: Quote creation timestamp
*   **source**: Origin of the quote (e.g., "external", "pos")
*   **associateSessionId**: Session identifier for the associate

**Example Response:**

{
"status": "success",
"quote": {
"quoteId": "Q-001",
"externalQuoteId": "EXT-Q-001",
"customerId": "CUST-123",
"status": "Suspended",
"source": "external",
"cartItemList": \[
{
"productId": "PROD-456",
"quantity": 2,
"price": 49.99
}
\],
"subTotal": 99.98,
"tax": 8.00,
"total": 107.98,
"createdTs": 1701619200000
},
"associateSessionId": "session-123"
}

.

#### Parameters

*   `quoteId` (path, string, required)

#### Responses

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

### DELETE Delete Quote

`DELETE /merchant/spi/sample/endpoint/quote/{quoteId}`

Operation ID: `deleteQuote`. Tags: Quote SPI.

Delete a quote from the merchant's external ERP system. This API is called when a store associate deletes a quote in POS.

### Use Cases

*   Delete a quote that is no longer needed
*   Remove expired or cancelled quotes
*   Clean up duplicate quotes

### Request Parameters

*   **quoteId**: The ID of the quote to delete (required, path parameter)

**Response (SpiPSResponse):**

*   **status**: success/failure
*   **statusMessage**: Descriptive message

**Example Response:**

{
"status": "success",
"statusMessage": "Quote deleted successfully"
}

.

#### Parameters

*   `quoteId` (path, string, required)

#### Responses

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

### POST Search Quotes

`POST /merchant/spi/sample/endpoint/quote/search`

Operation ID: `searchQuotes`. Tags: Quote SPI.

Search quotes from the merchant's external ERP system based on various criteria. This API is called when a store associate searches for quotes in POS.

### Use Cases

*   Search quotes created in POS that were exported to external system
*   Search quotes created on merchant's external website/system
*   Resume a quote to cart for updates

**Request Parameters (SpiQuoteRequest):**

*   **quoteId**: Search by specific quote ID
*   **customerId**: Filter by customer ID
*   **firstName/lastName/name**: Filter by customer name
*   **email**: Filter by customer email
*   **phone**: Filter by customer phone
*   **storeId**: Filter by store
*   **storeAssociateId**: Filter by associate who created the quote
*   **storeRegisterId**: Filter by register
*   **productId**: Find quotes containing this product
*   **quoteDateTimeStampStart/End**: Filter by date range (epoch ms)
*   **start**: Pagination offset (default: 0)
*   **limit**: Max results to return (default: 20)
*   **advanceSearchId**: For pagination across multiple pages
*   **source**: Filter quotes by origin (POS, EXTERNAL, ALL)

**Response (QuoteSearchResponse):**

*   **quoteList**: List of SavedCart objects representing quotes
*   **advanceSearchId**: Token for fetching next page of results

**Example Response:**

{
"status": "success",
"quoteList": \[
{
"quoteId": "Q-001",
"externalQuoteId": "EXT-Q-001",
"customerId": "CUST-123",
"status": "Suspended",
"source": "external",
"cartItemList": \[.\],
"subTotal": 99.99,
"createdTs": 1701619200000
}
\],
"advanceSearchId": "next-page-token"
}

.

#### Request body

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

#### Responses

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

### POST Look up rewards.

`POST /merchant/sample/endpoint/reward/lookup`

Operation ID: `lookupRewards`. Tags: Reward SPI.

Fetch the available rewards for a customer that can be applied as a tender. Reward lookup is done based on the customer account (CustomerId, Card Acquisition Token, etc.). Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `REWARD_LOOKUP`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/endpoint/lookupRewards](https://sample/external/endpoint/lookupRewards)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}.

#### Request body

Media type: `*/*`. Schema: `SpiRewardLookupRequest`.

#### Responses

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

### POST Retrieve shipping label.

`POST /merchant/spi/sample/endpoint/sa/shipping/to/get/shippingLabel/from/external/system`

Operation ID: `getShippingLabel`. Tags: Shipment Spi.

Retrieve shipping label from merchant's system. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `SHIPPING_LABEL`
    *   **API Endpoint:** Provide the external endpoint
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"} **Use Case:** To fetch the shipping label from an external system during BOFIS fulfillment or Inventory Transfer flows.

#### Request body

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

#### Responses

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

### POST Retrieve shipping options.

`POST /merchant/spi/sample/endpoint/sa/shipping/to/get/shippingOptions/from/external/system`

Operation ID: `getShippingOptions`. Tags: Shipment Spi.

Retrieve shipping options from merchant's system. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `SHIPPING_OPTIONS`
    *   **API Endpoint:** Provide the external endpoint
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"} **Use Case:** To fetch the shipping options from an external system during BOFIS fulfillment or Inventory Transfer flows.

#### Request body

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

#### Responses

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

### POST Return applicable shipping methods.

`POST /merchant/spi/sample/endpoint/sa/shipping/methods`

Operation ID: `shippingMethods`. Tags: Shipping Method SPI.

Return applicable shipping options. This merchant-provided API takes in cart items that are marked for shipping or delivery, customerId, address, etc. as input and provides applicable shipping options. **Note:** Only the items marked for shipping or delivery are sent in the request. In-store or Pick Up Later items are not sent as part of this request.

#### Request body

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

#### Responses

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

### POST Calculate tax.

`POST /merchant/spi/sample/endpoint/taxEngine/calculateTax`

Operation ID: `calculateTax`. Tags: Tax Calculation SPI.

Calculate the tax based on the rules defined in the merchant's system. The request includes a list of products, tax exemptions to be applied if any, and the addresses (originating and destination) so that the correct tax rates can be applied.

#### Request body

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

#### Responses

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

### GET Download tax rates.

`GET /merchant/spi/sample/endpoint/taxEngine/downloadTaxRates`

Operation ID: `downloadTaxRates`. Tags: Tax Calculation SPI.

Download tax and VAT rates into the POS system. This integration enables POS to retrieve accurate tax and VAT rates for offline transactions. The SPI supports optional query parameters such as `countryCode`, `state`, `city`, and `postalCode`, which allow for precise tax rate retrieval. The expected response format is a plain string in CSV, containing the relevant tax and VAT rates. For more detailed information, including sample requests and responses, refer to [Set Up Tax Integration Using SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/tax-integration-via-spi.html)

#### Parameters

*   `countryCode` (query, string)
*   `state` (query, string)
*   `city` (query, string)
*   `postalCode` (query, string)

#### Responses

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

### POST Finalize tax submission.

`POST /merchant/spi/sample/endpoint/taxEngine/finalizeTaxSubmission`

Operation ID: `finalizeTaxSubmission`. Tags: Tax Calculation SPI.

Finalize the taxes applied to sale transactions. This is an optional SPI. It provides a list of products and applied taxes to the tax engine, and the orderId associated with the transaction.

#### Request body

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

#### Responses

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

### GET Retrieve tax exemptions.

`GET /merchant/spi/sample/endpoint/taxEngine/getTaxExemptions`

Operation ID: `getTaxExemptionList`. Tags: Tax Calculation SPI.

Retrieve the list of tax exemptions supported on the merchant's side. This is an optional SPI and applicable only for tax regions and not applicable for VAT. The following optional fields can be provided in the response: TaxClasses, CountryCode, State, City, and Postal Code, such that the tax exemption is applicable as per the provided values. For example: If a tax exemption is provided with State = CA, then that tax exemption is assumed to be applied only for CA state. If an exemption can be applied regardless of state, country, or particular tax class, these fields in the response don't need to be populated. We mark them as 'ANY' denoting it can be applied without any rules or restrictions.

#### Responses

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

### GET Verify tax engine.

`GET /merchant/spi/sample/endpoint/taxEngine/verify`

Operation ID: `verify`. Tags: Tax Calculation SPI.

Verify that the SPI Tax Engine is available and requests can be sent. If the verify API is implemented, it is checked when verifying the feed source for offline taxes. If it is not implemented, we let it pass through and try to download tax rates.

#### Responses

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

### POST Export transaction.

`POST /merchant/spi/sample/endpoint/sa/orders/transaction/to/export/sale/order/to/external/system`

Operation ID: `exportTransaction`. Tags: Transaction SPI.

Export the POS sale transaction to an external endpoint. This specification provides details for the external endpoint to consume the POS sale transaction. **Prerequisite:** Make sure to configure CMS setting mentioned below: **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `TRANSACTION`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/to/export/sale/order/to/external/system](https://sample/external/to/export/sale/order/to/external/system)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}
    *   The endpoint with OAuth authorization is supported. For more details, refer to documentation. **Use Case:** The endpoint is used to post the recent transaction to external system or OMS.

#### Request body

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

#### Responses

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

### GET Retrieve BORIS transaction.

`GET /merchant/spi/sample/endpoint/sa/orders/transaction/to/get/boris/order/from/external/system/{orderId}`

Operation ID: `getBorisOrder_1`. Tags: Transaction SPI.

Retrieve a specifically BORIS order from merchant's system in the form of lean payload. Make sure orderId is provided as a path parameter. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `BORIS_GET_TRANSACTION_DETAIL`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/endpoint/to/get/order/from/external/system/456709](https://sample/external/endpoint/to/get/order/from/external/system/456709)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_GET`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"} **Use Case:** To fetch the order from an external system during BORIS flow for merchants that use POS.

****Note:**** For a BORIS order, if the customer initiates the return with an external or alternate receipt ID, this SPI is expected to return the POS Order ID in the field 'borisOrderId'. Either a full Order object is expected or just 'borisOrderId' in the response.

#### Parameters

*   `orderId` (path, string, required)

#### Responses

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

### GET Retrieve transaction.

`GET /merchant/spi/sample/endpoint/sa/orders/transaction/{orderId}`

Operation ID: `getOrder_2`. Tags: Transaction SPI.

Retrieve order from merchant's system using lean payload. Merchants must implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `GET_TRANSACTION_DETAIL`
    *   **API Endpoint:** Provide the external endpoint to get the order, for example: [https://sample/external/endpoint/to/get/order/from/external/system/456709](https://sample/external/endpoint/to/get/order/from/external/system/456709)
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_GET`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"} **Use Case:** To fetch the order from merchant's system during return flow if merchant's system is master of record.

#### Parameters

*   `orderId` (path, string, required)

#### Responses

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

### POST Warranty Lookup SPI

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

Operation ID: `checkWarrantyEligibility`. Tags: Warranty SPI.

Checks warranty eligibility for merchandise items in the cart.

The POS sends cart context (store address, shipping address, customer profile, and merchandise items) to the merchant's warranty engine. The engine evaluates eligibility rules (jurisdiction, product category, loyalty tier, etc.) and returns a list of available warranty products.

Merchants must implement this endpoint per this specification and configure it in CMS under: **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**

Make sure to create the endpoint in CMS with following details

1.  Under **API Config**
    
    *   **API Key:** WARRANTY\_LOOKUP
    *   **API Endpoint:** Provide the external endpoint URL
2.  Under **JSON Config**
    
    *   **Integration Type:** HTTP\_POST
    *   **JSON Headers:** Provide the header for the api. Headers can be Content-Type eg.{"contentType": "application/json"}

**Invoke:** Called when the associate taps 'Check Warranties' on the POS cart screen. Only merchandise items are sent; warranty SKUs already in the cart are filtered out.

**Response:**

*   Return `eligibleWarrantyList` with warranty products when warranties apply
*   Return empty `eligibleWarrantyList` when no warranties apply
*   Return `errorMessage` and `errorCode` on failure (POS will surface the error)

**Notes:**

*   `warrantyProductId` must match a product in CMS configured with ProductClass rule WARRANTY\_SKU
*   `coveredProductIds` must reference `productId` values from the request's `cartItemList`
*   For CATEGORY\_BASED pricing (MVP), `quantity` should always be 1.

#### Request body

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

#### Responses

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

### POST Send suspended cart information.

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

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

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

#### Request body

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

#### Responses

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

### POST Send voided cart information.

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

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

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

#### Request body

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

#### Responses

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

### POST Receive promotion lifecycle event details

`POST /merchant/spi/sample/endpoint/sa/customer/promotion/promotionExport`

Operation ID: `promotionExportWebhook`. Tags: Promotion Events Webhook.

Webhook to export promotion events (CREATE, UPDATE, DELETE) to the merchant's system. The payload contains the promotion details as a `PromotionWebhookPayload`. For all the events the `promotions` list is populated. The `promotionEventType` field indicates which lifecycle event occurred.

Merchants should implement this endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details

1.  Under **API Config**
    
    *   **API Key:** This should be `PROMOTION_EXPORT`
    *   **API Endpoint:** Provide the external endpoint URL to receive the promotion payload
2.  Under **JSON Config**
    
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the headers for the API. Headers can include Content-Type, Authorization attributes like clientId/password eg. {"Content-Type":"application/json"}.

#### Request body

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

#### Responses

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

### POST Export quote details for email.

`POST /merchant/spi/sample/endpoint/sa/customer/quote/quoteEmail`

Operation ID: `eReceiptQuoteSPI`. Tags: Quote Events Webhook.

Export the quote details to merchants, and the merchant system sends the quote email to the customer. This SPI shares created Quote events to merchant's system for email. Merchants must implement the endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `ERECEIPT_QUOTE`
    *   **API Endpoint:** Provide the external endpoint to get the order
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json"}.

#### Request body

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

#### Responses

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

### POST Export quote details.

`POST /merchant/spi/sample/endpoint/sa/customer/quote/quoteExport`

Operation ID: `quoteExportWebhook`. Tags: Quote Events Webhook.

Export the created or updated quote details. This webhook exports Quote events to merchant's system. Merchants must implement the endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `QUOTE_EXPORT`
    *   **API Endpoint:** Provide the external endpoint to get the order
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json"}.

#### Request body

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

#### Responses

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

### POST Export BOFIS events.

`POST /merchant/webhook/sa/sample/endpoint/to/export/bofis/events/to/external/system`

Operation ID: `exportBofis`. Tags: Store Fulfillment Event Webhook.

Export BOFIS events from merchant's system. Merchants must implement the endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `BOFIS_EXPORT`
    *   **API Endpoint:** Provide the external endpoint to get the order
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_GET`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}.

#### Request body

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

#### Responses

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

### POST Export BOPIS events.

`POST /merchant/webhook/sa/sample/endpoint/to/export/bopis/events/to/external/system`

Operation ID: `exportBopis`. Tags: Store Fulfillment Event Webhook.

Export BOPIS events from merchant's system. Merchants must implement the endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `BOPIS_EXPORT`
    *   **API Endpoint:** Provide the external endpoint to get the order
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_GET`
    *   **JSON Headers:** Provide the header for the API. Headers can be Content-Type, Authorization attributes like clientId/password, for example: {"Content-Type":"application/json","client\_id":"myClientId","client\_secret":"myClientSecret"}.

#### Request body

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

#### Responses

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

### POST Export webhook monitoring events.

`POST /merchant/webhook/monitoring/sa/sample/endpoint/to/export/webhook/monitoring/events/to/external/system`

Operation ID: `exportMessage`. Tags: Webhook Monitoring Event Webhook.

Export ExternalWebhookMonitoringMessage to merchant's system. Merchants must implement the endpoint per this specification and then configure it in CMS under **CMS** > **Store Management** > **Integration** > **Custom API Connectors** > **Create**. Make sure to create the endpoint in CMS with the following details:

1.  Under **API Config**:
    *   **API Key:** `MONITORING`
    *   **API Endpoint:** Provide the external endpoint to receive the message
2.  Under **JSON Config**:
    *   **Integration Type:** `HTTP_POST` or HTTP\_PUT.

#### Request body

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

#### Responses

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

## Schemas

### ListUserAccountsResponse

Payload that contains the list of CMS users.

*   `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`.
*   `users` (_array of UserAccount_) List of CMS users.
*   `error` (_boolean_)

### EditUserRequest

*   `oldUserId` (_string_, required) The existing user ID.
*   `newUserId` (_string_, nullable) New user ID. Must be a valid Google account.
*   `role` (_string_, nullable) New Role.
*   `timeZoneId` (_string_, nullable) New timezone ID. Don't use a timezone abbreviation.  
    Example: `America/Los_Angeles`.
*   `userType` (_string_, nullable) New user type.  
    Allowed values: `GLOBAL`, `REGIONAL`. Example: `GLOBAL`.

### CreateCMSUsersRequest

Request payload to create the CMS users.

*   `userAccounts` (_array of UserAccount_) List of users for CMS account creation.

### UpdatesCMSUsersRequest

*   `userRequestList` (_array of EditUserRequest_)

### UserAccount

Payload that contains information about CMS user.

*   `userId` (_string_, required) User ID. Must be a valid Google account.
*   `merchantId` (_string_, required) Merchant ID.
*   `permissions` (_string_, nullable) User's permission in CMS in the JSON form.  
    Example: `{"role":"CMS POWER USER","permissions":[{"LAYOUTS":["EDIT"]},{"FEEDS":["EDIT"]}]}`.
*   `role` (_string_, nullable) User's role.  
    Default: `CMS POWER USER`.
*   `timeZoneId` (_string_, nullable) User's timezone ID. Don't use a timezone abbreviation.  
    Default: `UTC`. Example: `America/Los_Angeles`.
*   `userType` (_string_) User Type.  
    Allowed values: `GLOBAL`, `REGIONAL`. Default: `GLOBAL`.

### CustomerMaskResponse

*   `requestId` (_string_) Unique identifier for this masking request.  
    Example: `e7966181-88a6-4247-9261-0ef0f35eb336`.
*   `customerCount` (_integer (int32)_) Number of customer records included in the masking request.  
    Example: `2`.
*   `status` (_string_)
    
    Current status of the masking request.
    
    *   `IN_PROGRESS` — Masking is running asynchronously.
    *   `SUCCESSFUL` — All specified customer records have been masked.
    *   `FAILED` — Masking failed. See `errorCode` and `errorMessage` for details.
    
      
    Allowed values: `IN_PROGRESS`, `SUCCESSFUL`, `FAILED`.
*   `requestedOn` (_integer (int64)_) Unix timestamp (milliseconds) indicating when the masking request was submitted.  
    Example: `1746136132000`.
*   `errorCode` (_string_) Machine-readable error code. Present only when `status` is `FAILED`.  
    Example: `MISSING_ID`.
*   `errorMessage` (_string_) Human-readable error message. Present only when `status` is `FAILED`.  
    Example: `No customer identifier(s) provided`.

### CycleCountCancelRequest

*   `cycleCountId` (_integer (int64)_) Cycle count ID which needs to be canceled. Note: Provide either of cycleCountId or externalReferenceId to cancel.  
    Example: `10001`.
*   `externalReferenceId` (_string_) External cycle count which needs to be canceled. Note: Provide either of cycleCountId or externalReferenceId to cancel.  
    Example: `spring-2023`.
*   `storeId` (_string_, required) Store ID corresponding to cycle count being canceled.  
    Example: `001`.

### CycleCountCancelResponse

*   `cycleCountId` (_integer (int64)_) Cycle count ID which needs to be canceled. Note: Provide either of cycleCountId or externalReferenceId to cancel.  
    Example: `10001`.
*   `externalReferenceId` (_string_) External cycle count which needs to be canceled. Note: Provide either of cycleCountId or externalReferenceId to cancel.  
    Example: `spring-2023`.
*   `storeId` (_string_, required) Store ID corresponding to cycle count being canceled.  
    Example: `001`.
*   `errorMessage` (_string_, read-only) If the cycle count request fails, a detailed error message is provided.
*   `errorCode` (_string_, read-only) If the cycle count request fails, an error code is provided.  
    Allowed values: `CYCLE_COUNT_ERROR`.

### AdvanceShippingNotice

*   `id` (_string_, required) ID of the entity being transferred.
*   `status` (_string_) Transfer status.  
    Allowed values: `OPEN`, `NEW`, `IN_PROGRESS`, `PARTIAL`, `COMPLETE`, `SHIPPED`, `PARTIAL_SHIPPED`, `DELIVERED`, `RECEIVED`, `CANCELLED`, `PAUSED`, `PARTIAL_PAUSED`.
*   `description` (_string_) Transfer description.
*   `processedBy` (_string_) Processed by ID.
*   `receivedBy` (_string_) Received by ID.
*   `receivedOn` (_integer (int64)_) Received on time represented as milliseconds since epoch.
*   `deliveredTimestamp` (_integer (int64)_) Delivered on time represented as milliseconds since epoch.
*   `scheduledDeliveryTimestamp` (_integer (int64)_) Estimated delivery on time represented as milliseconds since epoch (if not delivered yet).
*   `reasonCode` (_string_, nullable, deprecated) Use reasons instead. Reason code for declining entity transfer.
*   `reasons` (_array of Reason_, nullable) List of reasons pertaining to declining entity transfer. In general, it has a single reason for any declining entity transfer.
*   `trackingNumber` (_string_, nullable) Item level tracking number.
*   `asnType` (_string_) ASN Type.  
    Allowed values: `ORIGINAL`, `CANCELLATION`, `CANCEL_REISSUE`, `UNKNOWN`.
*   `shipmentId` (_string_) An identifier for the shipment referenced in the ASN.
*   `shippedTimestamp` (_integer (int64)_) The time that the shipment was shipped represented as milliseconds since epoch.
*   `shipment` (_Shipment_, required)
*   `lastProcessedById` (_string_, required) ID for the person or entity who processed this inventory transfer.
*   `lastProcessedByName` (_string_, required) Name for the person/entity who processed this inventory transfer.
*   `createdOn` (_string_) Inventory transfer created date.

### PSResponse

*   `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_)

### FullCycleCountRequest

*   `storeId` (_string_, required) ID of the store where this cycle count is performed. Provide a valid store ID that's already configured in POS, either through CMS or Store Feed.  
    Example: `001`.
*   `name` (_string_, required) Logical name for this cycle count.  
    Example: `Spring 2020 cycle count`.
*   `startTimestamp` (_string_, required) Cycle count start time in ISO-8601 format. The timestamp can include a timezone offset, for example: '2011-12-18T10:15:30+01:00'. If no timezone offset is provided, the value is assumed to be in UTC.  
    Example: `2011-12-18T10:15:30+01:00`.
*   `createdFrom` (_string_, required) Origin of this cycle count - triggered by the corporate or from the store itself.  
    Allowed values: `CORPORATE`, `STORE`.
*   `description` (_string_) Detailed description for the cycle count.  
    Example: `Spring 2020 cycle count to be completed before 4/30`.
*   `cycleCountStatus` (_string_, required, read-only)
    
    1.  **CREATED**: While creating a new batch, provide this status 2. **CANCELED**: To cancel the existing cycle count batch 3. **COMPLETED**: Once the batch is created in the POS system, the status becomes COMPLETED 4. **PREPARING**: Preparing the cycle count batch 5. **IN\_PROGRESS**: Cycle count in progress.
    
      
    Allowed values: `CREATED`, `CANCELED`, `COMPLETED`, `PREPARING`, `IN_PROGRESS`.
*   `cycleCountId` (_integer (int64)_, required, read-only) Cycle count identifier. Unique POS ID assigned when the cycle count is created.  
    Example: `10001`.
*   `externalReferenceId` (_string_) External cycle count or batch ID.  
    Example: `spring-2023`.

### CycleCountResponse

*   `storeId` (_string_, required) ID of the store where this cycle count is performed. Provide a valid store ID that's already configured in POS, either through CMS or Store Feed.  
    Example: `001`.
*   `name` (_string_, required) Logical name for this cycle count.  
    Example: `Spring 2020 cycle count`.
*   `startTimestamp` (_string_, required) Cycle count start time in ISO-8601 format. The timestamp can include a timezone offset, for example: '2011-12-18T10:15:30+01:00'. If no timezone offset is provided, the value is assumed to be in UTC.  
    Example: `2011-12-18T10:15:30+01:00`.
*   `createdFrom` (_string_, required) Origin of this cycle count - triggered by the corporate or from the store itself.  
    Allowed values: `CORPORATE`, `STORE`.
*   `description` (_string_) Detailed description for the cycle count.  
    Example: `Spring 2020 cycle count to be completed before 4/30`.
*   `cycleCountStatus` (_string_, required, read-only)
    
    1.  **CREATED**: While creating a new batch, provide this status 2. **CANCELED**: To cancel the existing cycle count batch 3. **COMPLETED**: Once the batch is created in the POS system, the status becomes COMPLETED 4. **PREPARING**: Preparing the cycle count batch 5. **IN\_PROGRESS**: Cycle count in progress.
    
      
    Allowed values: `CREATED`, `CANCELED`, `COMPLETED`, `PREPARING`, `IN_PROGRESS`.
*   `cycleCountId` (_integer (int64)_, required, read-only) Cycle count identifier. Unique POS ID assigned when the cycle count is created.  
    Example: `10001`.
*   `externalReferenceId` (_string_) External cycle count or batch ID.  
    Example: `spring-2023`.
*   `errorMessage` (_string_, read-only) If the cycle count request fails, a detailed error message is provided.
*   `errorCode` (_string_, read-only) If the cycle count request fails, an error code is provided.  
    Allowed values: `CYCLE_COUNT_ERROR`.

### ManualCycleCountRequest

*   `storeId` (_string_, required) ID of the store where this cycle count is performed. Provide a valid store ID that's already configured in POS, either through CMS or Store Feed.  
    Example: `001`.
*   `name` (_string_, required) Logical name for this cycle count.  
    Example: `Spring 2020 cycle count`.
*   `startTimestamp` (_string_, required) Cycle count start time in ISO-8601 format. The timestamp can include a timezone offset, for example: '2011-12-18T10:15:30+01:00'. If no timezone offset is provided, the value is assumed to be in UTC.  
    Example: `2011-12-18T10:15:30+01:00`.
*   `createdFrom` (_string_, required) Origin of this cycle count - triggered by the corporate or from the store itself.  
    Allowed values: `CORPORATE`, `STORE`.
*   `description` (_string_) Detailed description for the cycle count.  
    Example: `Spring 2020 cycle count to be completed before 4/30`.
*   `cycleCountStatus` (_string_, required, read-only)
    
    1.  **CREATED**: While creating a new batch, provide this status 2. **CANCELED**: To cancel the existing cycle count batch 3. **COMPLETED**: Once the batch is created in the POS system, the status becomes COMPLETED 4. **PREPARING**: Preparing the cycle count batch 5. **IN\_PROGRESS**: Cycle count in progress.
    
      
    Allowed values: `CREATED`, `CANCELED`, `COMPLETED`, `PREPARING`, `IN_PROGRESS`.
*   `cycleCountId` (_integer (int64)_, required, read-only) Cycle count identifier. Unique POS ID assigned when the cycle count is created.  
    Example: `10001`.
*   `externalReferenceId` (_string_) External cycle count or batch ID.  
    Example: `spring-2023`.
*   `productIds` (_array of string_, required) List of product IDs applicable for manual cycle count for specific products.
    
    Each item: Product ID applicable for manual cycle count.
    

### PartialCycleCountRequest

*   `storeId` (_string_, required) ID of the store where this cycle count is performed. Provide a valid store ID that's already configured in POS, either through CMS or Store Feed.  
    Example: `001`.
*   `name` (_string_, required) Logical name for this cycle count.  
    Example: `Spring 2020 cycle count`.
*   `startTimestamp` (_string_, required) Cycle count start time in ISO-8601 format. The timestamp can include a timezone offset, for example: '2011-12-18T10:15:30+01:00'. If no timezone offset is provided, the value is assumed to be in UTC.  
    Example: `2011-12-18T10:15:30+01:00`.
*   `createdFrom` (_string_, required) Origin of this cycle count - triggered by the corporate or from the store itself.  
    Allowed values: `CORPORATE`, `STORE`.
*   `description` (_string_) Detailed description for the cycle count.  
    Example: `Spring 2020 cycle count to be completed before 4/30`.
*   `cycleCountStatus` (_string_, required, read-only)
    
    1.  **CREATED**: While creating a new batch, provide this status 2. **CANCELED**: To cancel the existing cycle count batch 3. **COMPLETED**: Once the batch is created in the POS system, the status becomes COMPLETED 4. **PREPARING**: Preparing the cycle count batch 5. **IN\_PROGRESS**: Cycle count in progress.
    
      
    Allowed values: `CREATED`, `CANCELED`, `COMPLETED`, `PREPARING`, `IN_PROGRESS`.
*   `cycleCountId` (_integer (int64)_, required, read-only) Cycle count identifier. Unique POS ID assigned when the cycle count is created.  
    Example: `10001`.
*   `externalReferenceId` (_string_) External cycle count or batch ID.  
    Example: `spring-2023`.
*   `criteria` (_PartialCycleCountCriteria_, required)

### MerchantNotificationResponse

*   `statusMessage` (_string_)
*   `notificationJobId` (_string_)

### ProductRequest

*   `products` (_array of MerchantProduct_) List of products.

### ProductResponse

*   `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`.
*   `products` (_array of MerchantProduct_, read-only) List of products.
*   `error` (_boolean_)

### Promotion

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

### UpdatePromotionsRequest

*   `promotions` (_array of Promotion_)

### UpdatePromotionsResponse

*   `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`.
*   `promotions` (_array of Promotion_)
*   `error` (_boolean_)

### DownloadFileResponse

*   `status` (_string_)
*   `statusMessage` (_string_)
*   `fileName` (_string_)
*   `url` (_string (url)_)

### PageOneTimePromotionCodeResponse

*   `totalPages` (_integer (int32)_)
*   `totalElements` (_integer (int64)_)
*   `pageable` (_Pageable_)
*   `numberOfElements` (_integer (int32)_)
*   `first` (_boolean_)
*   `number` (_integer (int32)_)
*   `size` (_integer (int32)_)
*   `content` (_array of OneTimePromotionCodeResponse_)
*   `sort` (_Sort_)
*   `last` (_boolean_)
*   `empty` (_boolean_)

### UpsertOneTimePromotionRequest

*   `promotionCodes` (_array of PromotionCode_) List of one-time promotion entities.

### OneTimeCodeDataUploadResult

*   `unprocessedCodes` (_array of OneTimePromotionCodeUpsertVO_)
*   `totalProcessed` (_integer (int32)_)
*   `totalError` (_integer (int32)_)
*   `entriesUpdated` (_integer (int32)_)
*   `entriesInactive` (_integer (int32)_)
*   `errors` (_array of object_)
    *   `cause` (_object_)
        *   `stackTrace` (_array of object_)
            *   `classLoaderName` (_string_)
            *   `moduleName` (_string_)
            *   `moduleVersion` (_string_)
            *   `methodName` (_string_)
            *   `fileName` (_string_)
            *   `lineNumber` (_integer (int32)_)
            *   `nativeMethod` (_boolean_)
            *   `className` (_string_)
        *   `message` (_string_)
        *   `localizedMessage` (_string_)
    *   `stackTrace` (_array of object_)
        *   `classLoaderName` (_string_)
        *   `moduleName` (_string_)
        *   `moduleVersion` (_string_)
        *   `methodName` (_string_)
        *   `fileName` (_string_)
        *   `lineNumber` (_integer (int32)_)
        *   `nativeMethod` (_boolean_)
        *   `className` (_string_)
    *   `message` (_string_)
    *   `suppressed` (_array of object_)
        *   `stackTrace` (_array of object_)
            *   `classLoaderName` (_string_)
            *   `moduleName` (_string_)
            *   `moduleVersion` (_string_)
            *   `methodName` (_string_)
            *   `fileName` (_string_)
            *   `lineNumber` (_integer (int32)_)
            *   `nativeMethod` (_boolean_)
            *   `className` (_string_)
        *   `message` (_string_)
        *   `localizedMessage` (_string_)
    *   `localizedMessage` (_string_)
*   `processedFile` (_DataFeedFile_)

### GetPromotionsResponse

*   `totalCount` (_integer (int64)_) The total number of promotions available.
*   `promotions` (_array of Promotion_) A list of promotions returned in the response.

### OneTimePromotionCodeLookupResponse

*   `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`.
*   `totalCount` (_integer (int32)_)
*   `oneTimePromotionCodeResponse` (_array of OneTimePromotionCodeResponse_)
*   `error` (_boolean_)

### FormDataBodyPart

*   `contentDisposition` (_ContentDisposition_)
*   `entity` (_object_)
*   `headers` (_object_)
    
    *   `empty` (_boolean_)
    
    Additional properties: `array of string`.
    
*   `mediaType` (_MediaType_)
*   `messageBodyWorkers` (_MessageBodyWorkers_)
*   `parent` (_MultiPart_)
*   `providers` (_Providers_)
*   `formDataContentDisposition` (_FormDataContentDisposition_)
*   `simple` (_boolean_)
*   `name` (_string_)
*   `value` (_string_)
*   `content` (_object_)
*   `fileName` (_string_)
*   `parameterizedHeaders` (_object_)
    
    *   `empty` (_boolean_)
    
    Additional properties: `array of ParameterizedHeader`.
    

### PromotionFileUploadResponse

*   `statuses` (_array of PromotionUploadStatus_) List of promotion status.
*   `successCount` (_integer (int32)_) Number of successfully uploaded promotions.
*   `count` (_integer (int32)_) Number of total promotions.

### StoreAssociateBulkRequest

*   `associateList` (_array of Associate_, required) List of associates to create, update, or upsert in the POS System. This list must contain at least 1 associate and no more than 100 associates.  
    Minimum items: 1. Maximum items: 100.

### StoreAssociateSearchResponse

*   `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`.
*   `storeAssociates` (_array of Associate_) List of the store associates. It can have a single associate, the associates from a store, or all associates.
*   `error` (_boolean_)

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

### PageStoreGroupResponse

*   `totalPages` (_integer (int32)_)
*   `totalElements` (_integer (int64)_)
*   `pageable` (_Pageable_)
*   `numberOfElements` (_integer (int32)_)
*   `first` (_boolean_)
*   `number` (_integer (int32)_)
*   `size` (_integer (int32)_)
*   `content` (_array of StoreGroupResponse_)
*   `sort` (_Sort_)
*   `last` (_boolean_)
*   `empty` (_boolean_)

### StoreGroupRequest

Store group pricing request.

*   `storeGroupId` (_string_, required) Store group identifier.  
    Example: `SG-001`.
*   `productId` (_string_, required) Product identifier.  
    Example: `PROD-12345`.
*   `storeGroupPrice` (_number_, required) Store group specific price for the product.  
    Example: `99.99`.
*   `customString0` (_string_, nullable) Custom string field 0 for additional attributes.
*   `customString1` (_string_, nullable) Custom string field 1 for additional attributes.

### StoreGroupResponse

*   `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`.
*   `storeGroupId` (_string_)
*   `productId` (_string_)
*   `storePrice` (_number_)
*   `customString0` (_string_)
*   `customString1` (_string_)
*   `error` (_boolean_)

### UpdateStoreGroupsRequest

Batch update request for store group prices.

*   `storeGroups` (_array of StoreGroupRequest_, required) List of store group pricing updates. Maximum 100 store groups per request.

### InventoryAdjustRequest

*   `productId` (_string_, required)
    
    productId
    
    Product ID.
    
      
    Example: `123456`.
*   `storeId` (_string_, required)
    
    storeId
    
    Store ID.
    
      
    Example: `1`.
*   `quantity` (_integer (int32)_, required)
    
    quantity
    
    Quantity adjustment for the product.
    
      
    Example: `10`.
*   `reason` (_string_, required)
    
    reason
    
    Adjustment reason.
    
      
    Example: `Restock`.
*   `overlay` (_boolean_)
    
    overlay
    
    Specifies whether to adjust inventory as a delta (incremental change) or an absolute value. If the value is missing or false, the adjustment will be made as a delta; if the value is true, the adjustment will be made as an absolute value.
    
      
    Example: `true`.

### InventoryAdjustResponse

*   `productId` (_string_, required)
    
    productId
    
    Product ID.
    
      
    Example: `123456`.
*   `storeId` (_string_, required)
    
    storeId
    
    Store ID.
    
      
    Example: `1`.
*   `quantity` (_integer (int32)_, required)
    
    quantity
    
    Quantity adjustment for the product.
    
      
    Example: `10`.
*   `reason` (_string_, required)
    
    reason
    
    Adjustment reason.
    
      
    Example: `Restock`.
*   `overlay` (_boolean_)
    
    overlay
    
    Specifies whether to adjust inventory as a delta (incremental change) or an absolute value. If the value is missing or false, the adjustment will be made as a delta; if the value is true, the adjustment will be made as an absolute value.
    
      
    Example: `true`.
*   `inventoryAdjustStatus` (_string_)  
    Allowed values: `COMPLETE`, `FAILED`.
*   `errorMessage` (_string_)

### DownloadResponse

*   `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`.
*   `url` (_string_) URL for the artifact to be downloaded.
*   `fileName` (_string_) File location for the artifact to be downloaded.
*   `error` (_boolean_)

### StoreProductDetails

Provide details about products in the store. This includes store-level inventory, store level pricing, store level promotions, etc. You must provide a value if store inventory tracking is enabled in CMS (**CMS** > **Store Settings** > **Inventory**).

*   `storeId` (_string_) Store or warehouse ID.
*   `productId` (_string_) Product ID.
*   `storeInventory` (_integer (int32)_) Product sellable quantity.
*   `storePrice` (_number_) Product price at the store.
*   `storePromoText` (_string_) Product promotion text applicable to this store.
*   `listPrice` (_number_) Product list price.
*   `salesPrice` (_number_) Product sale price.
*   `storePromoBanner` (_string_) Product promotion banner text.
*   `clearanceItems` (_array of ClearanceItem_) Product location within the store.
*   `allocatedQuantity` (_integer (int32)_) Product quantity allocated for shipment or BOPIS orders.
*   `safetyStockQuantity` (_integer (int32)_) Product safety stock quantity.
*   `quantityOnHand` (_integer (int32)_) Product quantity on hand.
*   `quantityInTransit` (_integer (int32)_) Product quantity in transit to this store.
*   `quantityOnOrder` (_integer (int32)_) Product quantity on order for this store.
*   `notForSaleQuantity` (_integer (int32)_) Damaged product quantity that isn't for sale.
*   `returnedItemsQuantity` (_integer (int32)_) Returned product quantity that isn't for sale.
*   `floorDemoQuantity` (_integer (int32)_) Floor/Demo product quantity that isn't for sale.
*   `fullPriceSerialNumbers` (_array of string_) Full price serial numbers.
*   `storeOnlineQuantity` (_integer (int32)_) Online product quantity available for sale in store.
*   `customString0` (_string_) Custom string attribute of the product for the store.
*   `customString1` (_string_) Custom string attribute of the product for the store.
*   `quantity` (_integer (int32)_)

### StoreProductUpdateResponse

*   `storeId` (_string_) Store or warehouse ID.
*   `productId` (_string_) Product ID.
*   `storeInventory` (_integer (int32)_) Product sellable quantity.
*   `storePrice` (_number_) Product price at the store.
*   `storePromoText` (_string_) Product promotion text applicable to this store.
*   `listPrice` (_number_) Product list price.
*   `salesPrice` (_number_) Product sale price.
*   `storePromoBanner` (_string_) Product promotion banner text.
*   `clearanceItems` (_array of ClearanceItem_) Product location within the store.
*   `allocatedQuantity` (_integer (int32)_) Product quantity allocated for shipment or BOPIS orders.
*   `safetyStockQuantity` (_integer (int32)_) Product safety stock quantity.
*   `quantityOnHand` (_integer (int32)_) Product quantity on hand.
*   `quantityInTransit` (_integer (int32)_) Product quantity in transit to this store.
*   `quantityOnOrder` (_integer (int32)_) Product quantity on order for this store.
*   `notForSaleQuantity` (_integer (int32)_) Damaged product quantity that's not for sale.
*   `returnedItemsQuantity` (_integer (int32)_) Returned product quantity that's not for sale.
*   `floorDemoQuantity` (_integer (int32)_) Floor/Demo product quantity that's not for sale.
*   `fullPriceSerialNumbers` (_array of string_) Full price serial numbers.
*   `storeOnlineQuantity` (_integer (int32)_) Online product quantity available for sale in the store.
*   `customString0` (_string_) Custom string attribute of the product for the store.
*   `customString1` (_string_) Custom string attribute of the product for the store.
*   `quantity` (_integer (int32)_)

### StoreInventoryProductsUpdateResponse

*   `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`.
*   `products` (_array of StoreProductUpdateResponse_)
*   `error` (_boolean_)

### FulfillmentOrder

*   `orderId` (_string_, required) Order ID. In the case of ROPIS, the orderID serves as the uspendedCartId as POS generates a brand new orderId for the ROPIS order during checkout.
*   `orderType` (_string_, required) Order Type. BOPIS = STORE\_PICKUP, BOFIS = STORE\_FULFILLMENT,ROPIS = ONLINE\_RESERVE.  
    Allowed values: `STORE_PICKUP`, `STORE_FULFILLMENT`, `LAYAWAY`, `MIXED_MODE`, `ONLINE`, `ONLINE_RESERVE`.
*   `orderSource` (_string_, required) OrderSource must be WEB for BOPIS, BOFIS and ROPIS orders.  
    Allowed values: `DEFAULT`, `IN_STORE`, `POPUP_STORE`, `WEB`, `APP`, `OUTLET_STORE`, `ONLINE`, `POS_EA`.
*   `storeId` (_string_, required) StoreId which is going to fulfill the order.
*   `status` (_string_, required) Store fulfillment status. Possible values include: 1. PACK: BOPIS, BOFIS OR ROPIS item is packed by store associate. 2. DELIVERED: BOPIS item is picked up by the customer or pickup person. 3. CANCELED: BOPIS or BOFIS item is canceled by store associate. 4. SHIPPED: BOFIS item is shipped by store associate. 5. READY: When importing a fulfillment order into POS, it must have a 'READY' status.  
    Allowed values: `PACK`, `DELIVERED`, `CANCELED`, `SHIPPED`, `READY`.
*   `orderDate` (_integer (int64)_, required) Date when order was placed. Represented as number of milliseconds since epoch.
*   `totalAmount` (_number_, required) Order total.
*   `taxSubTotal` (_number_, nullable) Total tax amount for this order. Excludes any product price or shipping cost. Includes only the sum of taxes. Mandatory: If taxes are applicable, refer to valueAddedTax for VAT.
*   `valueAddedTax` (_number_, nullable) Value added tax amount for this order. Mandatory: If VAT is applicable, refer to taxSubTotal for taxes.
*   `taxableAmount` (_number_, nullable) Taxable amount.
*   `orderSubTotal` (_number_, required) Order total excluding discounts, shipping costs and taxes but inclusive of VAT.
*   `installationId` (_string_)
*   `shipmentList` (_array of ShipmentDetail_) List of shipments. Each shipment has shipping details for a BOFIS order. The shipping details consist of shipping address, shipping method, expected delivery date, and products corresponding to the shipment. **Note:** This field should be provided if the CMS property `Allow multiple shipments per cart/order` is enabled. This CMS setting can be found at: - **CMS** > **Store Management** > **Store Setting** > **Store fulfillment** > **Omni settings If this** flag is disabled, the shipping details should instead be provided in the following attributes: - `shippingMethodId` - `shippingCarrier` - `shippingCost` - `shippingAddress` - `deliveryDate` - `deliveryTimeSlot`.
*   `tenders` (_array of OrderPaymentDetail_, nullable) Representation of list of payments for this order. Required for BOPIS and BOFIS. Not applicable for ROPIS.
*   `customerProfile` (_CustomerProfile_)
*   `pickUpDetail` (_PickupDetail_)
*   `shippingAddress` (_Address_)
*   `shippingMethodId` (_string_, nullable) Shipping method ID. Refer to shipmentList for more details on when to provide shippingMethodId.
*   `shippingCarrier` (_string_) Shipping carrier code. Refer to shipmentList for more details on when to provide shippingCarrier.  
    Example: `UPS`.
*   `shippingCost` (_number_) Shipping cost. Refer to shipmentList for more details on when to provide shippingCost.
*   `deliveryDate` (_integer (int64)_) Delivery date in epoch.
*   `deliveryTimeSlot` (_string_) Expected delivery time slot. Refer to shipmentList for more details on when to provide deliveryTimeSlot.
*   `expectedShippingDate` (_integer (int64)_) Expected shipping date in epoch. Used for SLA calculation in BOFIS orders.
*   `lastPickupDate` (_string_) Last pickup date in ISO\_LOCAL\_DATE format (yyyy-MM-dd). Specifies the deadline for BOPIS order pickup, used for display purposes and automated cancellation logic.  
    Example: `2026-08-20`.
*   `productList` (_array of FulfillmentProduct_, required) List of products in the order.

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

### ExternalBopisCancellationRequest

Request to cancel BOPIS items.

*   `productList` (_array of CancelItem_, required) List of products to cancel.
*   `orderId` (_string_, required) Order ID.
*   `storeId` (_string_, required) Store ID.

### FulfillmentEvent

*   `orderId` (_string_, required) Order Id.
*   `orderType` (_string_, required) Order type. It can be either: 1. Store Fulfillment: order is fulfilled by a store. 2. Store Pickup: order is available for pickup at a store.  
    Allowed values: `STORE_PICKUP`, `STORE_FULFILLMENT`, `LAYAWAY`, `MIXED_MODE`, `ONLINE`, `ONLINE_RESERVE`.
*   `productList` (_array of FulfillmentProduct_, required) Item list.
*   `status` (_string_, required) Store Fulfillment Status. 1. PACK: BOPIS, BOFIS, or ROPIS item is packed by store associate. 2. DELIVERED: BOPIS item is picked up by the customer or pickup person. 3. CANCELED: BOPIS or BOFIS item is canceled by store associate. 4. SHIPPED: BOFIS item is shipped by store associate. 5. READY: When importing a fulfillment order into POS, it must have a 'READY' status.  
    Allowed values: `PACK`, `DELIVERED`, `CANCELED`, `SHIPPED`, `READY`.
*   `storeId` (_string_, required) Store ID from where the item(s) are picked or fulfilled.
*   `deliveryGroupList` (_array of ShipmentDetail_, nullable) The shipping details of the items for store fulfillment order. Each delivery group has shipping address and corresponding shipping method. Each delivery item from productList is associated with its delivery group using productList\[\].deliveryGroupId. Note: It is available only if the CMS Property - 'Allow multiple shipments per cart/order' is enabled. This is a CMS setting and can be found in **CMS** > **Store Management** > **Store Setting** > **Store** fulfillment > Omni settings. If the property is disabled, refer to shipment.
*   `shipment` (_ShipmentDetail_)
*   `pickupDetail` (_PickupDetail_)
*   `note` (_string_) Note provided by associate during pack, pick, or shipment.

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

### ActivationCodeRequest

*   `orderId` (_string_, required) The order ID of the customer order.
*   `storeId` (_string_, required) The store ID of the store where the transaction is happening.
*   `transactionId` (_string_, required) Sale transaction ID.  
    Example: `1-test-20240612131829-4-1`.
*   `productList` (_array of ExternalProduct_, required) List of products that need serialized-unit attributes. For example, activation code, context code, etc.

### ActivationCodeResponse

*   `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`.
*   `serializedUnitDetailList` (_array of ExternalSerializedUnitDetail_) The list of attributes about a serialized unit, for example, activation code or context code.
*   `error` (_boolean_)

### ExternalCart

*   `cartId` (_string_, required) Unique identifier for the cart.
*   `editOrderId` (_string_) Order ID for the order being edited.
*   `cartItemList` (_array of ExternalProduct_, required) All the items from the cart. Each item has a link to its delivery group via deliveryGroupId.
*   `deliveryGroupList` (_array of ExternalDeliveryGroup_) All delivery groups corresponding to the delivery items from the cart.
*   `billingAddress` (_ExternalAddress_)
*   `profile` (_ExternalCustomerProfile_)
*   `pickUpDetailList` (_array of ExternalPickUpDetail_, nullable) Pickup details.

### CartValidationResponse

*   `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`.
*   `displayMessage` (_string_, nullable) This message is for informational purposes only and is intended for display to users or associates. Please ensure it is not used in error scenarios. For error messages, use 'errorMessage' instead, as this will trigger the creation of a new cart and the execution of tax and other SPI calls.
*   `error` (_boolean_)

### SearchCustomersResponse

*   `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`.
*   `customers` (_array of CustomerData_, nullable) List of Customers.
*   `associateSessionId` (_string_, nullable) Store associate session ID.
*   `error` (_boolean_)

### UpdateCustomerRequest

*   `profile` (_Profile_, required)
*   `addressList` (_array of Address_, nullable, deprecated) Deprecated. Not supported in create or update customer requests. Use profile.address instead. To add additional addresses, use the Customer Address SPI (CREATE\_CUSTOMER\_ADDRESS or UPDATE\_CUSTOMER\_ADDRESS). The complete address collection is returned in responses only.
*   `consents` (_Consents_)
*   `storeAttribution` (_SpiStoreAttribution_)
*   `loyaltyProfile` (_CustomerLoyaltyProfile_)

### UpdateCustomerResponse

*   `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`.
*   `profile` (_Profile_, required)
*   `addressList` (_array of Address_, nullable) List of all customer addresses. In responses returned to POS from the merchant system, contains the complete address collection, including the primary address from profile.address.
*   `loyaltyProfile` (_CustomerLoyaltyProfile_)
*   `consents` (_Consents_)
*   `error` (_boolean_)

### CreateCustomerRequest

*   `profile` (_Profile_, required)
*   `addressList` (_array of Address_, nullable, deprecated) Deprecated. Not supported in create or update customer requests. Use profile.address instead. To add additional addresses, use the Customer Address SPI (CREATE\_CUSTOMER\_ADDRESS or UPDATE\_CUSTOMER\_ADDRESS). The complete address collection is returned in responses only.
*   `consents` (_Consents_)
*   `storeAttribution` (_SpiStoreAttribution_)

### CreateCustomerResponse

*   `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`.
*   `profile` (_Profile_, required)
*   `addressList` (_array of Address_, nullable) List of all customer addresses. In responses returned to POS from the merchant system, contains the complete address collection, including the primary address from profile.address.
*   `loyaltyProfile` (_CustomerLoyaltyProfile_)
*   `consents` (_Consents_)
*   `error` (_boolean_)

### GetCustomerResponse

*   `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`.
*   `sessionId` (_string_) Active session ID.
*   `profile` (_Profile_, required)
*   `addressList` (_array of Address_, nullable) List of all customer addresses. In responses returned to POS from the merchant system: contains the complete address collection, including the primary address from profile.address.
*   `cartProductList` (_array of ClientelingCartProduct_, nullable) List of products saved in customer cart.
*   `loyaltyProfile` (_CustomerLoyaltyProfile_)
*   `consents` (_Consents_)
*   `error` (_boolean_)

### GetCustomerAddressesResponse

*   `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`.
*   `addressList` (_array of Address_, nullable) List of customer addresses.
*   `error` (_boolean_)

### UpdateCustomerAddressRequest

*   `customerId` (_string_) Customer ID.
*   `address` (_Address_)
*   `addressId` (_string_) Address ID of address to update.

### UpdateCustomerAddressResponse

*   `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`.
*   `addressList` (_array of Address_) List of customer addresses.
*   `error` (_boolean_)

### AddCustomerAddressRequest

*   `customerId` (_string_) Customer ID.
*   `address` (_Address_)

### AddCustomerAddressResponse

*   `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`.
*   `addressList` (_array of Address_) List of customer addresses.
*   `error` (_boolean_)

### DeleteCustomerAddressResponse

*   `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`.
*   `addressList` (_array of Address_, nullable) List of customer addresses.
*   `error` (_boolean_)

### SpiDeliveryDatesRequest

Request object to get delivery/pickup dates for products belonging to the same group, that is, products with the same shipping address, delivery group, or fulfillment type.

*   `products` (_array of SpiProduct_, required) The list of products in this group for which the delivery / pickup dates are to be returned in the response.
*   `datePickerType` (_string_, required) The type of action for which the dates are to be selected. Valid values: DELIVERY & PICKUP.  
    Allowed values: `DELIVERY`, `PICKUP`.
*   `shippingMethodId` (_string_, nullable) The shipping method ID in case the shipping method is selected for delivery items.
*   `address` (_SPIAddress_)

### SpiDateTimesResponse

Response object that contains a set of delivery/pickup date and time slots for the products sent in the request.

*   `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`.
*   `dateTimeSlots` (_array of SpiDateTimeSlot_, required) The list of delivery/pickup date time slots for the products.
*   `availableDate` (_integer (int64)_, required) The first available date in epoch milliseconds that is eligible for delivery/pickup.
*   `dateTimeSlotType` (_string_, required) The type of date time slots provided. Valid values: Delivery & Pickup.  
    Allowed values: `Delivery`, `Pickup`.
*   `willCallDate` (_SpiDateTimeSlot_)
*   `error` (_boolean_)

### SPIShipmentProcessorRequest

*   `cartId` (_string_, required) Unique identifier for the cart.
*   `editOrderId` (_string_) Order ID for the order being edited.
*   `cartItemList` (_array of SPIShipmentProcessorRequestProduct_, required) All the items from the cart. Each item has a link to its delivery group via deliveryGroupId.
*   `deliveryGroupList` (_array of SPIShipmentProcessorRequestDeliveryGroup_, required) All delivery groups corresponding to the delivery items from the cart.

### SPIShipmentProcessorResponse

*   `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`.
*   `cartItemList` (_array of SPIShipmentProcessorResponseProduct_, required) All items from the cart are associated with a deliveryGroupId, enabling linkage to the corresponding deliveryGroup within the deliveryGroupList. Additionally, each item may possess custom attributes.
*   `deliveryGroupList` (_array of SPIShipmentProcessorResponseDeliveryGroup_, required) All delivery groups corresponding to the delivery items from the cart.
*   `error` (_boolean_)

### EReceiptRequest

*   `type` (_string_) Receipt's type.  
    Allowed values: `TRANSACTION_PRINT_RECEIPT`, `ORDER_PRINT_RECEIPT`, `CUSTOMER_ORDER_CONFIRMATION`, `GIFT_RECEIPT`, `REFUND_CONFIRMATION`, `SA_ORDER_INTIMATION`.
*   `emailTo` (_array of string_) Emails to receive order.
*   `customerOrder` (_CustomerOrder_)
*   `receiptPrintCount` (_integer (int32)_) Receipt print count (number of original and duplicate receipts).
*   `receiptLanguage` (_string_)
    
    Language selected for the receipt template. This field is optional.
    
    The language value is resolved using the following priority order:
    
    1.  **Thank You Page language** — Uses the language option configured on the Thank You Page.
    2.  **Store Setting languages default** — If no Thank You Page language is configured, uses the default language from the languages Store Setting.
    3.  **Mobile Config defaultSupportedLanguage** — If neither of the above is set, falls back to Receipt Configuration > defaultSupportedLanguage in the Mobile Config.
    4.  **iPad locale** — If none of the above are populated, defaults to the associated iPad's locale.

### EmployeeVerificationRequest

*   `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_)
*   `storeId` (_string_) Store ID provided for employee verification.
*   `associateId` (_string_) Associate ID provided for employee verification.

### EmployeeVerificationResponse

*   `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`.
*   `employeeId` (_string_) Identification of employee.
*   `firstName` (_string_) Employee's first name.
*   `lastName` (_string_) Employee's last name.
*   `email` (_string_) Employee's email.
*   `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.
*   `error` (_boolean_)

### SpiGiftCardActivateRequest

*   `cardNumber` (_string_, required) Gift card PAN (primary account number).
*   `cardPin` (_string_) PIN for card verification, driven by **Store Management** > **Integration** > **Gift Card** > **PIN Setting**: non-null when pinSetting is REQUIRED, or OPTIONAL and the user provided a PIN; null when pinSetting is NONE or OPTIONAL without user-provided PIN.
*   `transactionId` (_string_, required) Platform-generated transaction reference for idempotency and tracing.
*   `amount` (_number_, required) Activation amount (gift card purchase price); non-negative.

### SpiGiftCardActivateResponse

*   `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`.
*   `cardNumber` (_string_, required) Echoed card number from the request.
*   `balance` (_number_, required) Current balance on the gift card; non-negative.
*   `providerTransactionId` (_string_, required) Provider's transaction identifier; stored by platform for future void or reversal operations.
*   `error` (_boolean_)

### SpiGiftCardAddBalanceRequest

*   `cardNumber` (_string_, required) Gift card PAN (primary account number).
*   `cardPin` (_string_) PIN for card verification, driven by **Store Management** > **Integration** > **Gift Card** > **PIN Setting**: non-null when pinSetting is REQUIRED, or OPTIONAL and the user provided a PIN; null when pinSetting is NONE or OPTIONAL without user-provided PIN.
*   `transactionId` (_string_, required) Platform-generated transaction reference for idempotency and tracing.
*   `amount` (_number_, required) Amount to load onto the card; non-negative.

### SpiGiftCardAddBalanceResponse

*   `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`.
*   `cardNumber` (_string_, required) Echoed card number from the request.
*   `balance` (_number_, required) Current balance on the gift card; non-negative.
*   `providerTransactionId` (_string_, required) Provider's transaction identifier; stored by platform for future void or reversal operations.
*   `error` (_boolean_)

### SpiGiftCardBalanceRequest

*   `cardNumber` (_string_, required) Gift card PAN (primary account number).
*   `cardPin` (_string_) PIN for card verification, driven by **Store Management** > **Integration** > **Gift Card** > **PIN Setting**: non-null when pinSetting is REQUIRED, or OPTIONAL and the user provided a PIN; null when pinSetting is NONE or OPTIONAL without user-provided PIN.
*   `transactionId` (_string_, required) Platform-generated transaction reference for idempotency and tracing.

### SpiGiftCardBalanceResponse

*   `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`.
*   `balance` (_number_, required) Current balance on the gift card; non-negative.
*   `isActive` (_boolean_) True if the card is active and usable; defaults to true.
*   `cardNumber` (_string_) Echoed card number from the request.
*   `error` (_boolean_)

### SpiGiftCardRedeemRequest

*   `cardNumber` (_string_, required) Gift card PAN (primary account number).
*   `cardPin` (_string_) PIN for card verification, driven by **Store Management** > **Integration** > **Gift Card** > **PIN Setting**: non-null when pinSetting is REQUIRED, or OPTIONAL and the user provided a PIN; null when pinSetting is NONE or OPTIONAL without user-provided PIN.
*   `transactionId` (_string_, required) Platform-generated transaction reference for idempotency and tracing.
*   `amount` (_number_, required) Amount to deduct from the card; non-negative.

### SpiGiftCardRedeemResponse

*   `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`.
*   `cardNumber` (_string_, required) Echoed card number from the request.
*   `balance` (_number_, required) Current balance on the gift card; non-negative.
*   `providerTransactionId` (_string_, required) Provider's transaction identifier; stored by platform for future void or reversal operations.
*   `providerReferenceId` (_string_, required) Provider's reference identifier; stored by platform as requestId on the tender for reconciliation.
*   `error` (_boolean_)

### SpiGiftCardVoidRequest

*   `cardNumber` (_string_, required) Gift card PAN (primary account number).
*   `cardPin` (_string_) PIN for card verification, driven by **Store Management** > **Integration** > **Gift Card** > **PIN Setting**: non-null when pinSetting is REQUIRED, or OPTIONAL and the user provided a PIN; null when pinSetting is NONE or OPTIONAL without user-provided PIN.
*   `transactionId` (_string_, required) Platform-generated transaction reference for idempotency and tracing.
*   `amount` (_number_, required) Amount to reverse; must match the approvedAmount from the original operation.
*   `originalProviderTransactionId` (_string_, required) Provider's transaction identifier from the original operation being voided.

### SpiGiftCardVoidResponse

*   `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`.
*   `cardNumber` (_string_, required) Echoed card number from the request.
*   `providerReferenceId` (_string_, required) Provider's reference identifier for the void; stored by platform as paymentReversalRequestId.
*   `error` (_boolean_)

### SpiRegistryDetailResponse

*   `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`.
*   `registryId` (_string_, required) The unique ID of the registry.
*   `firstName` (_string_, required) The First name of the Registrant.
*   `lastName` (_string_, required) The last name of the Registrant.
*   `coRegistrantName` (_string_, nullable) The Co-Registrant name for the registry if available.
*   `eventType` (_string_, required) The event type for which the registry was created. For example, Wedding, Engagement, Housewarming.
*   `eventDate` (_integer (int64)_, required) The event date in epoch milliseconds, to be shown in a suitable format on the app.
*   `preEventAddress` (_SPIAddress_, required)
*   `postEventAddress` (_SPIAddress_, required)
*   `productList` (_array of SpiRegistryProduct_, required) The list of gift products that are present with this registry, with all the availability details.
*   `error` (_boolean_)

### ReturnRegistryRequest

*   `registryId` (_string_, required) The unique ID of the registry.
*   `productId` (_string_, required) Product Identifier.
*   `gtin` (_string_, nullable) Item's GTIN, alternate field to product ID.
*   `storeId` (_string_, nullable) Store ID of the current store.
*   `quantity` (_integer (int32)_, required) Quantity of the product to be returned. The response returns an error if the requested quantity isn't available.  
    Default: `1`.

### SpiRegistryReturnResponse

*   `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`.
*   `items` (_array of RegistryLineItem_, required) The list of line items corresponding to the product Id sent in request, where each line can be of differing prices, quantities, belonging to different orders.
*   `error` (_boolean_)

### SearchRegistryRequest

*   `registryId` (_string_, nullable) The unique ID of the registry.
*   `firstName` (_string_, nullable) The First name of the Registrant.
*   `lastName` (_string_, nullable) The last name of the Registrant.
*   `storeId` (_string_, nullable) Store ID of the current store.
*   `email` (_string_, nullable) The email ID of the registrant.
*   `phone` (_string_, nullable) The Phone number of the Registrant.

### SpiGiftRegistryResponse

*   `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`.
*   `giftRegistries` (_array of GiftRegistry_, required) The list of gift registries matching the search.
*   `error` (_boolean_)

### InventoryAvailabilityRequest

*   `zipCode` (_string_, required) The zip code or postal code for which to check product availability.
*   `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.
*   `gtin` (_string_, nullable) Item's GTIN , alternate field to check inventory (Mainly used by SPI).
*   `variantGroupId` (_string_, nullable) Variant Group ID. All the variants of an item are grouped together under the same variant ID.
*   `storeId` (_string_, nullable) Store ID of the current store.

### SpiInventoryAvailabilityResponse

*   `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`.
*   `availabilityText` (_string_, required) Generic text field that contains information about inventory availability of the product.
*   `error` (_boolean_)

### InventoryOverviewRequest

*   `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.
*   `storeId` (_string_, required) Store ID of the current store.
*   `gtin` (_string_, nullable) Item's GTIN, alternate field to check inventory (mainly used by SPI).
*   `variantGroupId` (_string_, nullable) Variant Group ID. All the variants of an item are grouped together under the same variant ID.

### SpiInventoryOverviewResponse

Response object that returns the full inventory overview for all stores.

*   `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`.
*   `storeInventoryDetails` (_array of StoreInventoryDetails_, required) List of all stores and their inventory details for the product sent in the request.
*   `error` (_boolean_)

### CheckInventoryRequest

*   `products` (_array of InventoryProduct_, required) The list of Products for which the Inventory is to be checked.

### SpiInventoryResponse

*   `errorMessage` (_string_, nullable) Placeholder string for any error that occurs when checking inventory.
*   `inventory` (_array of ProductInventory_)

### CycleCountPayload

*   `eventType` (_string_, required) Inventory transfer event type.  
    Allowed values: `ASN_RECEIVED_EVENT`, `ASN_PARTIALLY_RECEIVED_EVENT`, `ASN_RECEIVE_COMPLETED_EVENT`, `ASN_REJECTED_EVENT`, `BLIND_RECEIVE_STARTED_EVENT`, `BLIND_RECEIVE_PAUSED_EVENT`, `BLIND_RECEIVE_IN_PROGRESS_EVENT`, `BLIND_RECEIVE_COMPLETED_EVENT`, `CTS_TRANSFER_STARTED_EVENT`, `CTS_TRANSFER_COMPLETED_EVENT`, `CTS_TRANSFER_CANCELLED_EVENT`, `CTS_TRANSFER_ERRORED_EVENT`, `STS_TRANSFER_STARTED_EVENT`, `STS_TRANSFER_COMPLETED_EVENT`, `STS_TRANSFER_SHIPPED_EVENT`, `STS_TRANSFER_RECEIVED_EVENT`, `STS_TRANSFER_CANCELLED_EVENT`, `STS_TRANSFER_ERRORED_EVENT`, `PO_TRANSFER_STARTED_EVENT`, `PO_TRANSFER_COMPLETED_EVENT`, `PO_TRANSFER_SHIPPED_EVENT`, `PO_TRANSFER_RECEIVED_EVENT`, `PO_TRANSFER_CANCELLED_EVENT`, `PO_TRANSFER_ERRORED_EVENT`, `RTV_CREATED_EVENT`, `RTV_COMPLETED_EVENT`, `RTV_SHIPPED_EVENT`, `RTV_RECEIVED_EVENT`, `RTV_CANCELLED_EVENT`, `RTV_FAILLED_EVENT`, `CYC_COUNT_CREATED_EVENT`, `CYC_COUNT_STARTED_EVENT`, `CYC_COUNT_COMPLETED_EVENT`, `CYC_COUNT_CANCELED_EVENT`, `INVENTORY_ADJUSTMENT`, `INVENTORY_BUCKET_ADJUSTMENT`. Example: `STS_TRANSFER_STARTED_EVENT`.
*   `lines` (_array of CycleCountPayloadLine_, required) Cycle count line items.

### InventoryWebhookResponse

*   `status` (_string_, required)
    
    Status
    
    Status of the inventory webhook processing.
    
      
    Allowed values: `SUCCESS`, `ERROR`. Example: `SUCCESS`.
*   `message` (_string_, required)
    
    Message
    
    Inventory webhook processing result.
    
      
    Example: `Successfully`.

### InventoryAdjustmentPayload

*   `eventType` (_string_, required) Inventory transfer event type.  
    Allowed values: `ASN_RECEIVED_EVENT`, `ASN_PARTIALLY_RECEIVED_EVENT`, `ASN_RECEIVE_COMPLETED_EVENT`, `ASN_REJECTED_EVENT`, `BLIND_RECEIVE_STARTED_EVENT`, `BLIND_RECEIVE_PAUSED_EVENT`, `BLIND_RECEIVE_IN_PROGRESS_EVENT`, `BLIND_RECEIVE_COMPLETED_EVENT`, `CTS_TRANSFER_STARTED_EVENT`, `CTS_TRANSFER_COMPLETED_EVENT`, `CTS_TRANSFER_CANCELLED_EVENT`, `CTS_TRANSFER_ERRORED_EVENT`, `STS_TRANSFER_STARTED_EVENT`, `STS_TRANSFER_COMPLETED_EVENT`, `STS_TRANSFER_SHIPPED_EVENT`, `STS_TRANSFER_RECEIVED_EVENT`, `STS_TRANSFER_CANCELLED_EVENT`, `STS_TRANSFER_ERRORED_EVENT`, `PO_TRANSFER_STARTED_EVENT`, `PO_TRANSFER_COMPLETED_EVENT`, `PO_TRANSFER_SHIPPED_EVENT`, `PO_TRANSFER_RECEIVED_EVENT`, `PO_TRANSFER_CANCELLED_EVENT`, `PO_TRANSFER_ERRORED_EVENT`, `RTV_CREATED_EVENT`, `RTV_COMPLETED_EVENT`, `RTV_SHIPPED_EVENT`, `RTV_RECEIVED_EVENT`, `RTV_CANCELLED_EVENT`, `RTV_FAILLED_EVENT`, `CYC_COUNT_CREATED_EVENT`, `CYC_COUNT_STARTED_EVENT`, `CYC_COUNT_COMPLETED_EVENT`, `CYC_COUNT_CANCELED_EVENT`, `INVENTORY_ADJUSTMENT`, `INVENTORY_BUCKET_ADJUSTMENT`. Example: `STS_TRANSFER_STARTED_EVENT`.
*   `lines` (_array of InventoryAdjustmentPayloadLine_, required) Inventory adjustment line items.

### InventoryTransferPayload

*   `eventType` (_string_, required) Inventory transfer event type.  
    Allowed values: `ASN_RECEIVED_EVENT`, `ASN_PARTIALLY_RECEIVED_EVENT`, `ASN_RECEIVE_COMPLETED_EVENT`, `ASN_REJECTED_EVENT`, `BLIND_RECEIVE_STARTED_EVENT`, `BLIND_RECEIVE_PAUSED_EVENT`, `BLIND_RECEIVE_IN_PROGRESS_EVENT`, `BLIND_RECEIVE_COMPLETED_EVENT`, `CTS_TRANSFER_STARTED_EVENT`, `CTS_TRANSFER_COMPLETED_EVENT`, `CTS_TRANSFER_CANCELLED_EVENT`, `CTS_TRANSFER_ERRORED_EVENT`, `STS_TRANSFER_STARTED_EVENT`, `STS_TRANSFER_COMPLETED_EVENT`, `STS_TRANSFER_SHIPPED_EVENT`, `STS_TRANSFER_RECEIVED_EVENT`, `STS_TRANSFER_CANCELLED_EVENT`, `STS_TRANSFER_ERRORED_EVENT`, `PO_TRANSFER_STARTED_EVENT`, `PO_TRANSFER_COMPLETED_EVENT`, `PO_TRANSFER_SHIPPED_EVENT`, `PO_TRANSFER_RECEIVED_EVENT`, `PO_TRANSFER_CANCELLED_EVENT`, `PO_TRANSFER_ERRORED_EVENT`, `RTV_CREATED_EVENT`, `RTV_COMPLETED_EVENT`, `RTV_SHIPPED_EVENT`, `RTV_RECEIVED_EVENT`, `RTV_CANCELLED_EVENT`, `RTV_FAILLED_EVENT`, `CYC_COUNT_CREATED_EVENT`, `CYC_COUNT_STARTED_EVENT`, `CYC_COUNT_COMPLETED_EVENT`, `CYC_COUNT_CANCELED_EVENT`, `INVENTORY_ADJUSTMENT`, `INVENTORY_BUCKET_ADJUSTMENT`. Example: `STS_TRANSFER_STARTED_EVENT`.
*   `lines` (_array of InventoryTransferPayloadLine_, required) Inventory transfer line items.

### PurchaseOrderPayload

*   `eventType` (_string_, required) Inventory transfer event type.  
    Allowed values: `ASN_RECEIVED_EVENT`, `ASN_PARTIALLY_RECEIVED_EVENT`, `ASN_RECEIVE_COMPLETED_EVENT`, `ASN_REJECTED_EVENT`, `BLIND_RECEIVE_STARTED_EVENT`, `BLIND_RECEIVE_PAUSED_EVENT`, `BLIND_RECEIVE_IN_PROGRESS_EVENT`, `BLIND_RECEIVE_COMPLETED_EVENT`, `CTS_TRANSFER_STARTED_EVENT`, `CTS_TRANSFER_COMPLETED_EVENT`, `CTS_TRANSFER_CANCELLED_EVENT`, `CTS_TRANSFER_ERRORED_EVENT`, `STS_TRANSFER_STARTED_EVENT`, `STS_TRANSFER_COMPLETED_EVENT`, `STS_TRANSFER_SHIPPED_EVENT`, `STS_TRANSFER_RECEIVED_EVENT`, `STS_TRANSFER_CANCELLED_EVENT`, `STS_TRANSFER_ERRORED_EVENT`, `PO_TRANSFER_STARTED_EVENT`, `PO_TRANSFER_COMPLETED_EVENT`, `PO_TRANSFER_SHIPPED_EVENT`, `PO_TRANSFER_RECEIVED_EVENT`, `PO_TRANSFER_CANCELLED_EVENT`, `PO_TRANSFER_ERRORED_EVENT`, `RTV_CREATED_EVENT`, `RTV_COMPLETED_EVENT`, `RTV_SHIPPED_EVENT`, `RTV_RECEIVED_EVENT`, `RTV_CANCELLED_EVENT`, `RTV_FAILLED_EVENT`, `CYC_COUNT_CREATED_EVENT`, `CYC_COUNT_STARTED_EVENT`, `CYC_COUNT_COMPLETED_EVENT`, `CYC_COUNT_CANCELED_EVENT`, `INVENTORY_ADJUSTMENT`, `INVENTORY_BUCKET_ADJUSTMENT`. Example: `STS_TRANSFER_STARTED_EVENT`.
*   `lines` (_array of PurchaseOrderPayloadLine_, required) Purchase order line items.

### TransactionalReturnPayload

*   `orderId` (_string_, required)
    
    orderId
    
    Order ID.
    
      
    Example: `PS00000006`.
*   `products` (_array of TransactionalInventoryProduct_, required)
    
    products
    
    List the products that require inventory adjustment.
    
*   `returnStoreLocation` (_string_, required)
    
    returnStoreLocation
    
    Return order's store ID.
    
      
    Example: `2`.

### TransactionalInventoryWebhookResponse

*   `status` (_string_, required)
    
    Status
    
    Status of the transaction inventory webhook processing.
    
      
    Allowed values: `SUCCESS`, `ERROR`. Example: `SUCCESS`.
*   `message` (_string_, required)
    
    Message
    
    Transaction inventory webhook processing result.
    
      
    Example: `Successfully`.

### TransactionalSalePayload

*   `orderId` (_string_, required)
    
    orderId
    
    Order ID.
    
      
    Example: `PS00000006`.
*   `products` (_array of TransactionalInventoryProduct_, required)
    
    products
    
    List the products that require inventory adjustment.
    
*   `fulfillmentLocation` (_string_, required)
    
    fulfillmentLocation
    
    Sale order's store ID.
    
      
    Example: `2`.
*   `fulfillmentType` (_string_, required)
    
    fulfillmentType
    
    Order fulfillment type.
    
      
    Allowed values: `IN_STORE`, `ONLINE`, `MIXED_CART`.

### Cart

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

### SPILoyaltyPoints

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

### HttpResponse

*   `statusLine` (_StatusLine_)
*   `statusCode` (_integer (int32)_, write-only)
*   `reasonPhrase` (_string_, write-only)
*   `entity` (_HttpEntity_)
*   `locale` (_object_)
    *   `language` (_string_)
    *   `script` (_string_)
    *   `country` (_string_)
    *   `variant` (_string_)
    *   `unicodeLocaleAttributes` (_array of string_)  
        Unique items.
    *   `unicodeLocaleKeys` (_array of string_)  
        Unique items.
    *   `displayLanguage` (_string_)
    *   `displayScript` (_string_)
    *   `displayCountry` (_string_)
    *   `displayVariant` (_string_)
    *   `displayName` (_string_)
    *   `extensionKeys` (_array of string_)  
        Unique items.
    *   `iso3Language` (_string_)
    *   `iso3Country` (_string_)
*   `protocolVersion` (_ProtocolVersion_)
*   `allHeaders` (_array of Header_)
*   `headers` (_array of Header_, write-only)
*   `header` (_Header_)
*   `params` (_HttpParams_)

### POSCrashDataRequest

*   `data` (_array of POSCrashData_)

### POSVitalsDto

*   `storeId` (_string_) Store ID.
*   `storeAssociateId` (_string_) Store Associate ID.
*   `installationId` (_string_) Unique Installation ID.
*   `storeRegisterId` (_string_) Store Register ID.
*   `lastSeenOn` (_integer (int64)_) Last time this register was online. Represented as milliseconds since epoch.
*   `lastWentOfflineOn` (_integer (int64)_) Last time when register went offline represented as milliseconds since epoch.
*   `lastOnlineOrderPlacedOn` (_integer (int64)_) Last time when an online order was placed. Represented as milliseconds since epoch.
*   `lastOfflineOrderPlacedOn` (_integer (int64)_) Last time when an offline order was placed. Represented as milliseconds since epoch.
*   `buildNumber` (_string_) Build Number.
*   `lastOfflineProductFeedDownloadedOn` (_integer (int64)_) Last time when offline product feed was downloaded. Represented as milliseconds since epoch.
*   `lastOfflineProductFeedItemCount` (_string_) Number of records in offline product feed download.
*   `numberOfOfflineProducts` (_string_) Number of records that were successfully stored in offline product DB stored in the app.
*   `lastOfflineTaxFeedDownloadedOn` (_integer (int64)_) Last time when offline tax feed was downloaded. Represented as milliseconds since epoch.
*   `lastOfflineTaxFeedItemCount` (_string_) Number of records in offline product feed download.
*   `numberOfTaxEntriesInOfflineDB` (_string_) Number of records that were successfully stored in offline tax DB table stored in the app.
*   `numberOfOrdersInOfflineDB` (_string_) Number of orders in offline order DB table stored in the app.
*   `lastOfflineOrderSyncedOn` (_integer (int64)_) Last time when an offline order sync was done. Represented as milliseconds since epoch.
*   `wifiStrength` (_number_) WiFi Signal Strength.
*   `lastNetworkFailureOccurredOn` (_integer (int64)_) Last time when a network failure happened. Represented as milliseconds since epoch.
*   `lastAssociateSignInOccurredOn` (_integer (int64)_) Last time when a store associate signed in to this register. Represented as milliseconds since epoch.
*   `lastAssociateSignOutOccurredOn` (_integer (int64)_) Last time when store associate signed out to this register. Represented as milliseconds since epoch.
*   `lastAssociateToSignIn` (_string_) Last store associate who signed in to this register.
*   `lastAssociateToSignOut` (_string_) Last store associate who signed out of this register.
*   `deviceName` (_string_) POS Register device name.
*   `deviceType` (_string_) POS device type. For example, iPad.
*   `ipAddress` (_string_) POS register IP address.
*   `cashDrawerSerialNumber` (_string_) Serial number of the cash drawer connected to this POS register.
*   `cashDrawerModel` (_string_) Model number of the cash drawer connected to this POS register.
*   `cashDrawerConnectionType` (_string_) Connection type of the cash drawer connected to this POS register, for example, WiFi, LAN, or Bluetooth.
*   `scannerSerialNumber` (_string_) Serial number of the scanner connected to this POS register.
*   `scannerModel` (_string_) Model number of the scanner connected to this POS register.
*   `scannerConnectionType` (_string_) Connection type of the scanner connected to this POS register, for example, WiFi, LAN, or Bluetooth.
*   `cardReaderSerialNumber` (_string_) Serial number of the payment card reader connected to this POS register.
*   `cardReaderModel` (_string_) Model number of the payment card reader connected to this POS register.
*   `cardReaderIpAddress` (_string_) IP address of the payment card reader connected to this POS register.
*   `cardReaderConnectionType` (_string_) Connection type of the payment card reader connected to this POS register, for example, WiFi, LAN, or Bluetooth.
*   `cardReaderIntegrationType` (_string_) Integration type of the payment card reader connected to this POS register, for example, Terminal API or SDK.
*   `receiptPrinterSerialNumber` (_string_) Serial number of the receipt printer connected to this POS register.
*   `receiptPrinterModel` (_string_) Model number of the receipt printer connected to this POS register.
*   `receiptPrinterIPAddress` (_string_) IP address of the receipt printer connected to this POS register.
*   `receiptPrinterConnectionType` (_string_) Connection type of the receipt printer connected to this POS register, for example, WiFi, LAN, or Bluetooth.
*   `cashDrawerConnected` (_string_) Flag indicating whether cash drawer is connected to this POS register.
*   `cashDrawerConnectedOn` (_integer (int64)_) Last time when cash drawer was connected to this register. Represented as milliseconds since epoch.
*   `cashDrawerConnectionIssue` (_string_) Details about any connect issues related to cash drawer.
*   `printerConnected` (_string_) Flag indicating whether receipt printer is connected to this POS register.
*   `printerLastConnectedOn` (_integer (int64)_) Last time when receipt printer was connected to this register. Represented as milliseconds since epoch.
*   `printerConnectionIssue` (_string_) Details about any connect issues related to receipt printer.
*   `paymentTerminalConnected` (_string_) Flag indicating whether payment terminal is connected to this POS register.
*   `paymentTerminalLastConnectedOn` (_integer (int64)_) Last time when payment terminal was connected to this register. Represented as milliseconds since epoch.
*   `paymentTerminalConnectionIssue` (_string_) Details about any connect issues related to payment terminal.
*   `scannerConnected` (_string_) Flag indicating whether scanner is connected to this POS register.
*   `scannerLastConnectedOn` (_integer (int64)_) Last time when scanner was connected to this register. Represented as milliseconds since epoch.
*   `scannerConnectionIssue` (_string_) Details about any connect issues related to scanner.
*   `lastOfflineAssociatesFeedDownloadedOn` (_integer (int64)_) Last time when offline store associates feed was downloaded to this register. Represented as milliseconds since epoch.
*   `lastOfflineAssociatesItemCount` (_integer (int32)_) Number of offline store associates that were downloaded to this register. This is just the number of records in the download.
*   `numberOfOfflineAssociates` (_integer (int32)_) Number of offline store associates. This is the successfully imported offline associate count.
*   `lastOfflineLoginErrorOccurredOn` (_integer (int64)_) Last time when offline store associate login failed. Represented as milliseconds since epoch.
*   `numberOfPendingOnlineOrders` (_integer (int32)_) Number of pending online orders. This is just to track phase 2 order submission failure.
*   `lastOnlineOrderSyncedOn` (_integer (int64)_) Last time when online orders were synced. Represented as milliseconds since epoch. This is just to track phase 2 order submission failure.
*   `upcScanFailureIssue` (_string_) UPC Scan failure related details. This is different from scanner connection issues.
*   `cardPaymentFailureIssue` (_string_) Card payment failure related details. This is different from payment terminal connection issues.
*   `lastOfflineLoginError` (_string_) Last offline login error details.
*   `offlinePOSVitalsLog` (_OfflinePOSVitalsLog_)
*   `offlineTaxFeedLastUpdatedOn` (_integer (int64)_) Last time when offline tax feed was updated. Represented as milliseconds since epoch.
*   `offlineTaxFeedLastStoredOn` (_integer (int64)_) Timestamp when the offline tax feed was last stored. Represented as milliseconds since epoch.
*   `offlineTaxFeedLastDownloadedOn` (_integer (int64)_) Timestamp when the offline tax feed was last downloaded. Represented as milliseconds since epoch.
*   `offlineTaxFeedDbRecordCount` (_integer (int32)_) Number of records in the offline tax feed database.
*   `offlineTaxFeedLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline tax feed.
*   `offlineStoreCredentialsLastStoredOn` (_integer (int64)_) Timestamp when offline store credentials were last stored. Represented as milliseconds since epoch.
*   `offlineStoreCredentialsLastUpdatedOn` (_integer (int64)_) Timestamp when offline store credentials were last updated. Represented as milliseconds since epoch.
*   `offlineStoreCredentialsLastDownloadedOn` (_integer (int64)_) Timestamp when offline store credentials were last downloaded. Represented as milliseconds since epoch.
*   `offlineStoreCredentialsDbRecordCount` (_integer (int32)_) Number of records in the offline store credentials database.
*   `offlineStoreCredentialsLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline store credentials.
*   `offlineProductFeedLastDownloadedOn` (_integer (int64)_) Last time when offline product feed was downloaded. Represented as milliseconds since epoch.
*   `offlineProductFeedLastDownloadedFileCreatedTime` (_integer (int64)_) Timestamp when the last downloaded file for offline product feed was created. Represented as milliseconds since epoch.
*   `offlineProductFeedLastProcessedFileName` (_string_) Name of the last processed file for offline product feed.
*   `offlineProductFeedLastUpdatedOn` (_integer (int64)_) Timestamp when the offline product feed was last updated. Represented as milliseconds since epoch.
*   `offlineProductFeedLastStoredOn` (_integer (int64)_) Timestamp when the offline product feed was last stored. Represented as milliseconds since epoch.
*   `offlineProductFeedDbRecordCount` (_integer (int32)_) Number of records in the offline product feed database.
*   `offlineProductFeedLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline product feed.
*   `offlineProductDeltaLastStoredOn` (_integer (int64)_) Timestamp when offline product delta data was last stored. Represented as milliseconds since epoch.
*   `offlineProductDeltaLastUpdatedOn` (_integer (int64)_) Timestamp when offline product delta data was last updated. Represented as milliseconds since epoch.
*   `offlineProductDeltaLastDownloadedOn` (_integer (int64)_) Timestamp when offline product delta data was last downloaded. Represented as milliseconds since epoch.
*   `offlineProductDeltaLastProcessedFileName` (_string_) Name of the last processed file for offline product delta data.
*   `offlineProductDeltaLastDownloadedFileCreatedTime` (_integer (int64)_) Timestamp when the last downloaded file for offline product delta data was created. Represented as milliseconds since epoch.
*   `offlineProductDeltaLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline product delta data.
*   `offlinePromotionsLastProcessedFileName` (_string_) Name of the last processed file for offline promotions.
*   `offlinePromotionsLastDownloadedFileCreatedTime` (_integer (int64)_) Timestamp when the last downloaded file for offline promotions was created. Represented as milliseconds since epoch.
*   `offlinePromotionsLastDownloadedOn` (_integer (int64)_) Timestamp when offline promotions data was last downloaded. Represented as milliseconds since epoch.
*   `offlinePromotionsLastStoredOn` (_integer (int64)_) Timestamp when offline promotions data was last stored. Represented as milliseconds since epoch.
*   `offlinePromotionsLastUpdatedOn` (_integer (int64)_) Timestamp when offline promotions data was last updated. Represented as milliseconds since epoch.
*   `offlinePromotionsDbRecordCount` (_integer (int32)_) Number of records in the offline promotions database.
*   `offlinePromotionsLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline promotions data.

### PromoCodeValidationRequest

*   `promotionCode` (_string_, required) Promotion code to validate.

### PromoCodeValidationResponse

*   `promotionId` (_string_, nullable) If the promotion code is valid, return the promotion ID; otherwise, return empty.
*   `merchantPromotionId` (_string_, nullable) If the promotion code is valid, return the merchant's identifier for the relevant promotion; otherwise, return empty. This is the merchantPromotionId which should have been sent/used during promotion creation/updates.

### SpiGetQuoteResponse

SPI Response object for Get Quote Details operations.

*   `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`.
*   `quote` (_QuotePayload_)
*   `associateSessionId` (_string_, nullable) Associate Session Id.
*   `error` (_boolean_)

### SpiQuoteRequest

Request object for Quote SPI operations.

*   `firstName` (_string_) Customer first name.
*   `lastName` (_string_) Customer last name.
*   `name` (_string_) Customer full name.
*   `email` (_string_) Customer email address.
*   `phone` (_string_) Customer phone.
*   `quoteId` (_string_) Quote ID.
*   `start` (_integer (int32)_) Quote search offset. Used for paginating across multiple quotes.  
    Default: `0`.
*   `limit` (_integer (int32)_) Number of quotes to return. Used for paginating across multiple quotes.  
    Default: `20`.
*   `storeId` (_string_) Store ID. Find quote placed in this store.
*   `customerId` (_string_) Customer ID. Find quotes placed by this customer ID.
*   `productId` (_string_) Product ID. Find quotes containing this product ID.
*   `storeAssociateId` (_string_) Store Associate ID. Find quotes placed by specific store associate.
*   `storeRegisterId` (_string_) Store Register ID. Find quotes placed from specific store register.
*   `quoteDateTimeStampStart` (_integer (int64)_) Find quotes placed on or after this timestamp - represented as milliseconds since epoch.
*   `quoteDateTimeStampEnd` (_integer (int64)_) Find quotes placed or or before this timestamp - represented as milliseconds since epoch.
*   `advanceSearchId` (_string_) Advanced Search Id for changing the page.
*   `source` (_string_) Optional. Only used/expected when Quote SPI (QUOTE\_SERVICE) is configured. Filters quotes by origin.  
    Allowed values: `POS`, `EXTERNAL`, `ALL`, `POS`, `EXTERNAL`, `ALL`.

### SpiQuoteSearchResponse

SPI Response object for Quote search operations.

*   `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`.
*   `quoteList` (_array of QuotePayload_) List of searched quotes.
*   `advanceSearchId` (_string_)
*   `error` (_boolean_)

### SpiRewardLookupRequest

Request to look up rewards based on customer details such as Customer ID or Token value. At least one of the fields is required.

*   `customerId` (_string_) Customer ID.
*   `loyaltyId` (_string_) Loyalty Id of the customer.
*   `alias` (_string_) Card Alias/Token Value from the customer card acquisition response.
*   `issuerCountry` (_string_) The Card issuer country.
*   `cardCountryCode` (_string_) The country code present in card acquisition response.

### SpiRewardLookupResponse

*   `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`.
*   `rewards` (_array of Reward_, required) List of applicable/available rewards earned by the customer. Response is mandatory for a successful response, can be an empty list.
*   `error` (_boolean_)

### ShipmentSpiRequest

*   `shipmentContext` (_string_, required) Shipment context. Provides the context of the request, indicating whether it is related to a BOFIS order or inventory transfer.  
    Allowed values: `ORDER`, `RETURN_TO_VENDOR`, `STORE_TO_STORE_TRANSFER`, `CORP_TRANSFER`.
*   `requestTime` (_integer (int64)_, required) Request time in epoch milliseconds.
*   `storeId` (_string_, required) ID of the store that fulfills the shipment.
*   `storeAssociateId` (_string_, required) ID of the store associate.
*   `orderId` (_string_) Order number of BOFIS order or inventory transfer.
*   `customerName` (_string_) Customer name.
*   `fromAddress` (_SPIAddress_, required)
*   `shippingAddress` (_SPIAddress_, required)
*   `store` (_Store_)
*   `packageDimension` (_PackageDimension_)
*   `itemWeight` (_number_) Total weight of all items in the package.
*   `items` (_array of ShipmentItem_) Items in the package.
*   `packageValue` (_number_) Cost of the package (item total).

### ShipmentLabelSpiResponse

*   `errorMessage` (_string_) Error Message.
*   `errorCode` (_string_) Error Code.
*   `shippingLabelLink` (_string_, required) Link to shipping label image. The image must be in PNG format.
*   `trackingNumber` (_string_) Tracking number corresponding to the shipping label link.
*   `shippingMethod` (_ShippingOption_, required)
*   `packageDimension` (_PackageDimension_, required)
*   `itemWeight` (_number_, required) Replay the provided item weight.

### ShipmentOptionSpiResponse

*   `errorMessage` (_string_) Error Message.
*   `errorCode` (_string_) Error Code.
*   `shippingMethodList` (_array of ShippingOption_, required) Shipping method options.

### ShippingMethodsRequest

*   `customerId` (_string_) Identifier of the customer associated with this cart.
*   `cartItemList` (_array of ShippingSPIProduct_, required) List of items in cart which require shipping to a particular address.

### ShippingMethodsResponse

*   `shippingMethods` (_array of ShippingMethod_) List of all shipping methods that can be applied to cart.

### SpiTaxCalculationRequest

*   `cartId` (_string_, required) Unique identifier for the cart.
*   `editOrderId` (_string_) Order ID for the order being edited.
*   `taxBuckets` (_array of SpiTaxBucket_, required) All products that require tax calculations are grouped based on their origin and destination addresses, and provided in these tax buckets, along with any applicable tax exemptions.

### SpiTaxResponse

*   `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`.
*   `taxItems` (_array of TaxOrVatRecord_, required) List of products and their tax rates.
*   `error` (_boolean_)

### DownloadTaxRatesResponse

*   `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`.
*   `taxRates` (_string_, required) Contains the tax or VAT rates in CSV format. The first line must contain the column headers, and subsequent lines must have the corresponding tax or VAT rate values. Column names are case-sensitive and must adhere to the specified format. All required columns, their specifications, and a sample response are available in the documentation: [Set Up Tax Integration Using SPI](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/tax-integration-via-spi.html).
*   `error` (_boolean_)

### SpiTaxSubmissionRequest

*   `cartId` (_string_, required) Unique identifier for the cart.
*   `editOrderId` (_string_) Order ID for the order being edited.
*   `orderId` (_string_) The order ID corresponding to the transaction which involved the tax calculations with the merchant's tax engine.
*   `taxBuckets` (_array of SpiBucket_) The list of tax buckets which include products , their tax rates, source and destination addresses and tax exemptions if any.

### SpiTaxExemptionResponse

*   `taxExemptions` (_array of SpiTaxExemption_) List of tax exemptions that are supported by the Merchant's tax engine and can be used for tax calculations.Tax exemptions are optional, can have empty response.

### SpiWarrantyCheckRequest

*   `cartId` (_string_, required) Unique identifier for the active cart session.
*   `storeAddress` (_ExternalAddress_, required)
*   `shippingAddress` (_ExternalAddress_)
*   `profile` (_ExternalCustomerProfile_)
*   `cartItemList` (_array of ExternalProduct_, required) Merchandise items currently in the cart. Warranty items (warrantySKU=true) are filtered out before this payload is sent.

### SpiWarrantyCheckResponse

*   `eligibleWarrantyList` (_array of SpiWarrantyCheckResponseItem_) Array of eligible warranty products. Empty array if no warranties apply.
*   `errorMessage` (_string_) Human-readable error message. Presence causes POS to surface an error and abort warranty application.
*   `errorCode` (_string_) Machine-readable error code, for example, SERVICE\_UNAVAILABLE or INVALID\_REQUEST.
*   `error` (_boolean_)

### CartPayload

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

### PromotionWebhookPayload

Payload delivered to external systems via the promotion webhook for CREATE, UPDATE, and DELETE events.

*   `promotionEventType` (_string_, required) Type of promotion lifecycle event: CREATE, UPDATE, or DELETE.  
    Allowed values: `CREATE`, `UPDATE`, `DELETE`.
*   `promotions` (_array of SpiPromotion_, required) List of promotions included in this event.
*   `user` (_string_, nullable) CMS user ID who triggered this event (create, update, or delete).
*   `eventTimestamp` (_integer (int64)_, required) Unix epoch timestamp (milliseconds) indicating when this event was generated.

### EReceiptQuoteRequest

*   `emailTo` (_array of string_) Emails to receive quote.
*   `quotePayload` (_QuotePayload_)

### QuotePayload

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

### ExternalWebhookMonitoringMessage

*   `monitoringEvent` (_string_)  
    Allowed values: `THRESHOLD_EXCEED`, `RECEIVED_ERROR`.
*   `latencyThreshold` (_integer (int64)_)
*   `responseTime` (_integer (int64)_)
*   `httpErrorCode` (_integer (int32)_)
*   `integrationType` (_string_)  
    Allowed values: `FORM_POST`, `HTTP_GET`, `HTTP_PUT`, `HTTP_POST`, `HTTP_DELETE`.
*   `url` (_string_)
*   `apiKey` (_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.

### Shipment

Shipment details.

*   `poNumber` (_string_) Purchase Order Number.
*   `uploadNumber` (_string_) Unique identifier for the upload batch, used to group related corporate transfers.
*   `shipFrom` (_IMSAddress_)
*   `shipTo` (_IMSAddress_, required)
*   `orders` (_array of Order_, required) List of orders contained in the shipment.

### PartialCycleCountCriteria

Partial cycle count is done on the products which satisfy the selection criteria. The selection criteria is based on any one of the product attributes.

*   `attribute` (_string_, required, write-only) A product attribute used to determine the products that require cycle count. POS product has multiple attributes like brand, category, color, size, etc. Refer to the create product API (POST /merchant/{version}/products). Note: To utilize any product attribute, it must first be included in the product feed.  
    Example: `brand`.
*   `values` (_array of string_, required, write-only) List of values corresponding to the attribute. The values must match those provided in the product feed.
    
    Each item: Value corresponding to the attribute. The value must match those provided in the product feed.
    
      
    Items: Example: `[Rolex,Timex]`. Example: `[Rolex,Timex]`.

### MerchantProduct

List of products.

*   `productId` (_string_, required) Distinct product ID for each combination of variations, for example, size or color.  
    Example: `3661601595547`.
*   `title` (_string_, required) Product title.  
    Example: `E18PENDANT1`.
*   `description` (_string_, required) Product description.  
    Example: `Number 1 medallion`.
*   `productClass` (_string_, required) Product class of the item.  
    Example: `Merchandise`.
*   `categories` (_array of string_) Merchant categories of the product. A pipe-separated list of category names belongs to this product.  
    Items: Example: `Accessories > Categories > Jewelry, New Arrival > Jewelry`. Example: `Accessories > Categories > Jewelry, New Arrival > Jewelry`.
*   `googleCategory` (_string_) Product categories for Google search.  
    Example: `Accessories > Categories > Jewelry`.
*   `imageUrl` (_string_) Image url of the product.  
    Example: `https://us.ps.com/en/categories/jewelry/numero1/3661601595547.html`.
*   `additionalImageUrls` (_array of string_) Additional image urls of the product.  
    Items: Example: `['https://us.ps.com/en/categories/jewelry/numero1/3661601595547.html','https://us.ps.com/en/categories/jewelry/numero1/3661601595548.html']`. Example: `['https://us.ps.com/en/categories/jewelry/numero1/3661601595547.html','https://us.ps.com/en/categories/jewelry/numero1/3661601595548.html']`.
*   `condition` (_string_) Product condition.  
    Allowed values: `NEW`, `USED`, `REFURBISHED`, `NEW, USED, REFURBISHED` . Example: `NEW`.
*   `availability` (_string_) Free text value that provides information about the availability of the product.  
    Example: `Available`.
*   `listPrice` (_number (double)_, required) Listing price of the product.  
    Example: `60`.
*   `salePrice` (_number (double)_, required) Sale price of the product. It can be same as listing price.  
    Example: `60`.
*   `storePrice` (_number (double)_) Store specific price of the product.  
    Example: `55`.
*   `currencyCode` (_string_) ISO currency code.  
    Default: `USD`. Minimum length: 3. Maximum length: 3. Example: `USD`.
*   `brand` (_string_) Brand of the product.  
    Example: `Gucci`.
*   `gtin` (_string_) Product's GTIN. Possible values are: UPC, EAN, JAN, ISBN, and ITF-14.  
    Minimum length: 12. Maximum length: 14. Example: `065100004327`.
*   `mpn` (_string_) Manufacturer part number.  
    Example: `100-440-0.750-3434-A`.
*   `gender` (_string_) Free text to provide gender related to the product.  
    Example: `Unisex`.
*   `ageGroup` (_string_) Free text to provide age group related to the product.  
    Example: `10-45`.
*   `subVariantGroupId` (_string_) ID of the subvariant group.
*   `variantGroupId` (_string_, required) Group ID of the product. All the different variations of the product are grouped together under a single group ID.  
    Example: `E18PENDANT1`.
*   `color` (_string_) Product color.  
    Example: `Silver`.
*   `colorSwatchUrl` (_string_) The image link for color swatches.
*   `size` (_string_) Product size.  
    Example: `M`.
*   `pattern` (_string_) Free text to provide the product pattern.  
    Example: `Oval`.
*   `sku` (_string_) SKU Id of the product. It can be same as product Id and unique per variation of the product.  
    Example: `3661601595547`.
*   `isOnSale` (_boolean_, required) Specifies whether the product is on sale.  
    Example: `false`.
*   `promotionTitle` (_string_, nullable) Promotion title applicable to the product.  
    Example: `Summer22`.
*   `promotionPrice` (_number (double)_, nullable) Discounted price after applying promotion corresponding to the promotion title.  
    Example: `55`.
*   `customString0` (_string_, nullable) Custom field of type String.
*   `customString1` (_string_, nullable) Custom field of type String.
*   `customString2` (_string_, nullable) Custom field of type String.
*   `customString3` (_string_, nullable) Custom field of type String.
*   `customString4` (_string_, nullable) Custom field of type String.
*   `customString5` (_string_, nullable) Custom field of type String.
*   `customString6` (_string_, nullable) Custom field of type String.
*   `customString7` (_string_, nullable) Custom field of type String.
*   `customString8` (_string_, nullable) Custom field of type String.
*   `customString9` (_string_, nullable) Custom field of type String.
*   `customString10` (_string_, nullable) Custom field of type String.
*   `customString11` (_string_, nullable) Custom field of type String.
*   `customString12` (_string_, nullable) Custom field of type String.
*   `customInt0` (_integer (int32)_, nullable) Custom field of type Integer.
*   `customInt1` (_integer (int32)_, nullable) Custom field of type Integer.
*   `customDecimal0` (_number (float)_, nullable) Custom field of type Decimal.
*   `customDecimal1` (_number (float)_, nullable) Custom field of type Decimal.
*   `customDateTime0` (_integer (int64)_, nullable) Custom field of type Epoch time in millis.
*   `customDateTime1` (_integer (int64)_, nullable) Custom field of type Epoch time in millis.
*   `onlineInventory` (_integer (int32)_, nullable) The current online inventory. You must provide a value if online inventory tracking is enabled in CMS (**CMS** > **Store Settings** > **Inventory**).
*   `material` (_string_, nullable) Product material.  
    Example: `Metal`.
*   `manufacturer` (_string_, nullable) Manufacturer of the product.  
    Example: `ABC Jewellers`.
*   `sizeGuideUrl` (_string_, nullable) Image URL of the size guide.
*   `manufacturerDetails` (_string_, nullable) Manufacturer details.
*   `manufacturerLocation` (_string_, nullable) Location of product manufacturer.
*   `productLocation` (_string_, nullable) Product manufacturing location.
*   `banner` (_string_, nullable) Banner text. If provided, banner text is shown on PLP and PDP screens.
*   `availableStores` (_array of string_, nullable) List of stores where the product is available.
*   `lastUpdate` (_string (date-time)_)
*   `storeInventory` (_integer (int32)_, nullable) The current store inventory. You must provide a value if store inventory tracking is enabled in CMS (**CMS** > **Store Settings** > **Inventory**).
*   `isVirtual` (_boolean_, nullable) Specifies whether the product is available only in online mode.
*   `multipleGTINs` (_array of string_, nullable) If the product supports multiple GTINs, provide all of them.
*   `storeProductDetails` (_StoreProductDetails_)
*   `onlineAvailableStores` (_array of string_, nullable) List of stores where online products are available.
*   `costPrice` (_number (double)_, nullable) Cost per item.
*   `casePackQuantity` (_integer (int32)_, nullable) Number of items per case pack.
*   `additionalCharges` (_string_, nullable) Additional charges for CA, FR.
*   `casePackID` (_string_, nullable) Identifier for case pack.
*   `availabilityStartTime` (_string (date-time)_, nullable) Start time, when product is visible on POS.
*   `availabilityEndTime` (_string (date-time)_, nullable) End time, when product will not be visible on POS.

### FeedSource

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

### CombinationGroup

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

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

### PromotionRule

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

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

### TierGroup

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

### PromotionLanguageData

Promotion attributes in additional languages.

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

### PromotionMapping

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

### PromotionCode

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

### Pageable

*   `pageSize` (_integer (int32)_)
*   `pageNumber` (_integer (int32)_)
*   `paged` (_boolean_)
*   `unpaged` (_boolean_)
*   `offset` (_integer (int64)_)
*   `sort` (_Sort_)

### OneTimePromotionCodeResponse

*   `oneTimeCode` (_string_)
*   `status` (_string_)  
    Allowed values: `VALID`, `REDEEMED`, `NOT_FOUND`.
*   `promoName` (_string_)
*   `promotionId` (_string_)
*   `orderId` (_string_)
*   `codeRedeemedDate` (_integer (int64)_)
*   `storeId` (_string_)

### Sort

*   `unsorted` (_boolean_)
*   `sorted` (_boolean_)
*   `empty` (_boolean_)

### OneTimePromotionCodeUpsertVO

*   `errorMessage` (_string_)
*   `errorCode` (_string_)
*   `oneTimePromotionCode` (_string_)

### DataFeedFile

*   `dataStream` (_object_)
*   `fileName` (_string_)
*   `originalFileName` (_string_)
*   `length` (_integer (int64)_)
*   `contentType` (_string_)
*   `s3Reference` (_string_)

### ContentDisposition

*   `type` (_string_)
*   `parameters` (_object_)
    
    Additional properties: `string`.
    
*   `fileName` (_string_)
*   `creationDate` (_string (date-time)_)
*   `modificationDate` (_string (date-time)_)
*   `readDate` (_string (date-time)_)
*   `size` (_integer (int64)_)

### MediaType

*   `type` (_string_)
*   `subtype` (_string_)
*   `parameters` (_object_)
    
    Additional properties: `string`.
    
*   `wildcardType` (_boolean_)
*   `wildcardSubtype` (_boolean_)

### MessageBodyWorkers

### MultiPart

*   `contentDisposition` (_ContentDisposition_)
*   `entity` (_object_)
*   `headers` (_object_)
    
    *   `empty` (_boolean_)
    
    Additional properties: `array of string`.
    
*   `mediaType` (_MediaType_)
*   `messageBodyWorkers` (_MessageBodyWorkers_)
*   `parent` (_MultiPart_)
*   `providers` (_Providers_)
*   `bodyParts` (_array of BodyPart_)
*   `parameterizedHeaders` (_object_)
    
    *   `empty` (_boolean_)
    
    Additional properties: `array of ParameterizedHeader`.
    

### Providers

### FormDataContentDisposition

*   `type` (_string_)
*   `parameters` (_object_)
    
    Additional properties: `string`.
    
*   `fileName` (_string_)
*   `creationDate` (_string (date-time)_)
*   `modificationDate` (_string (date-time)_)
*   `readDate` (_string (date-time)_)
*   `size` (_integer (int64)_)
*   `name` (_string_)

### ParameterizedHeader

*   `value` (_string_)
*   `parameters` (_object_)
    
    Additional properties: `string`.
    

### PromotionUploadStatus

List of promotion status.

*   `promotionId` (_string_) The ID of the promotion passed by CMS.
*   `status` (_string_) The upload status of the related promotion ID: Success or Failure.  
    Allowed values: `SUCCESS`, `FAILURE`.
*   `exception` (_string_) Exception messages.
*   `promotionTitle` (_string_) The title of the promotion.
*   `errors` (_array of string_) List of errors.

### ClearanceItem

Product location within the store.

*   `serialNumber` (_string_) Serial number of the item (if applicable).
*   `clearancePrice` (_number_)
*   `itemLocationWithinStore` (_string_)
*   `instructionText` (_string_)

### ShipmentDetail

Shipping details applicable for store fulfillment order. If CMS flag 'Allow multiple shipments per cart/order' is enabled, the shipment will be populated. Refer to deliveryGroupList for more details on this CMS flag.

*   `shipmentId` (_string_, required) Shipment ID. Unique number.
*   `trackingNumber` (_string_, required) Shipment tracking number entered by store associate during fulfillment from the store.
*   `shippingMethodId` (_string_, required) Shipping method ID used during placing order. Mandatory.
*   `shippingName` (_string_) Shipping name. Optional.  
    Example: `Express shipping`.
*   `shippingDescription` (_string_) Shipping description. Optional.  
    Example: `Express shipping arrives in 2-3 business days`.
*   `shippingCarrier` (_string_, required) Shipping carrier code. Mandatory.  
    Example: `UPS`.
*   `shippingServiceLevel` (_string_) Shipping service level. Optional.  
    Example: `3 Business Days`.
*   `price` (_number_, required) Shipping Cost. Mandatory.
*   `deliveryDate` (_integer (int64)_) Delivery date in epoch.
*   `deliveryTimeSlot` (_string_, required) Expected delivery time slot.
*   `items` (_array of DeliveryItem_) List of items in this shipment. This can be a subset of the product list provided at the order level.
*   `shippingAddress` (_Address_, required)
*   `expectedShippingDate` (_integer (int64)_) Expected shipping date in epoch. Used for SLA calculation in BOFIS orders.

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

### CustomerProfile

Profile for the customer.

*   `customerId` (_string_, required) Customer ID.
*   `email` (_string_, required) Customer Email ID.
*   `firstName` (_string_, required) Customer first name.
*   `lastName` (_string_, required) Customer last name.
*   `phoneMobile` (_string_, nullable) Customer's Phone#.

### PickupDetail

Pickup information for store pickup order.

*   `storeId` (_string_) Store Id.
*   `firstName` (_string_) First name of pickup person.
*   `lastName` (_string_) Last name of pickup person.
*   `email` (_string_, nullable) Email of pickup person.
*   `phone` (_string_, nullable) Phone of pickup person.
*   `pickupDate` (_integer (int64)_, nullable) Customer pickup date & time. Milliseconds since epoch.

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

### FulfillmentProduct

Item list.

*   `productId` (_string_, required) Product Id.  
    Example: `N0345123`.
*   `orderItemId` (_string (The value should be numeric in string format)_, required) Item sequence/system generated item ID assigned to this line item. Must be unique within this order.  
    Example: `It can have values like 1, 2, 3, etc... which represents line item number within the order.`.
*   `itemStatus` (_string_, required) Store fulfillment status. Possible values are: 1. **PACK**: The BOPIS, BOFIS, or ROPIS item is packed by a store associate. 2. **DELIVERED**: The BOPIS item is picked up by the customer or a designated pickup person. 3. **CANCELED**: The BOPIS or BOFIS item is canceled by a store associate. 4. **SHIPPED**: The BOFIS item is shipped by a store associate. 5. **READY**: When importing a fulfillment order into POS, it must have a **READY** status.  
    Allowed values: `PACK`, `DELIVERED`, `CANCELED`, `SHIPPED`, `READY`. Example: `PACK`.
*   `name` (_string_, required) Item name.  
    Example: `White Shirt`.
*   `quantity` (_integer (int32)_, required) Item quantity. This represents the original quantity. If the store setting `treatEachItemInCartAsSeparateLineItem` is enabled in CMS, then the quantity should be 1 per line item. This setting can be found in: **CMS** > **Store Management** > **Store Settings** > **OMS** > **Advanced**.  
    Example: `1`.
*   `price` (_number_, required) Item price.  
    Example: `12.05`.
*   `total` (_number_, required) Item total after discount and taxes.  
    Example: `14`.
*   `adjustedQuantity` (_integer (int32)_, required, read-only) Packed quantity for a PACK event, picked-up quantity for a DELIVERED event, and shipped quantity for a SHIPPED event.

### CancelItem

Item to be canceled in an order.

*   `productId` (_string_, required) Product ID.  
    Example: `PROD-123`.
*   `orderItemId` (_string_, required) Order Item ID.  
    Example: `1`.
*   `quantity` (_integer (int32)_, required) Quantity to cancel.  
    Example: `2`.
*   `reasons` (_array of Reason_) List of reasons for cancellation.

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

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

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

### ExternalSerializedUnitDetail

The list of attributes about a serialized unit, 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.

### CustomerData

List of Customers.

*   `profile` (_Profile_, required)
*   `addressList` (_array of Address_) Customer's addresses.
*   `cartProductList` (_array of ClientelingCartProduct_) Wish list or products from customer's abandoned cart.
*   `loyaltyProfile` (_CustomerLoyaltyProfile_)
*   `consents` (_Consents_)

### Consents

Consents for different types of sign ups.

*   `smsSignUp` (_boolean_, nullable) Consent for SMS signup.
*   `newsLetterSignUp` (_boolean_, nullable) Consent for news letter signup.
*   `agreeToTC` (_boolean_, nullable) Consent for terms and conditions.
*   `directMailSignUp` (_boolean_, nullable) Consent for direct mail signup.
*   `phoneSignUp` (_boolean_, nullable) Consent for phone signup.
*   `loyaltySignUp` (_boolean_, nullable) Consent for loyalty signup.
*   `eReceipt` (_boolean_, nullable) Consent for eReceipt signup.

### SpiStoreAttribution

Store ID and associate details of created customer.

*   `storeAssociateId` (_string_, nullable) ID of the store associate who creates customer account and rings the transaction.
*   `storeId` (_string_, nullable) Store Id.

### CustomerLoyaltyProfile

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

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

### ClientelingCartProduct

Summary of a product line in the customer's saved cart. Current implementation only supports productId as the details are fetched from the product catalog.

*   `productId` (_string_, required) Product / SKU identifier of the product.

### SpiProduct

The list of products in this group for which the delivery/pickup dates are to be returned in the response.

*   `productId` (_string_, required) Product ID.
*   `quantity` (_integer (int32)_, required) Product Quantity.
*   `gtin` (_string_) Product GTIN.

### SPIAddress

The full address of the destination of transaction.

*   `firstName` (_string_) Customer first name saved for address.
*   `lastName` (_string_) Customer last name saved for address.
*   `addressLine1` (_string_, required) Address Line 1.
*   `addressLine2` (_string_) Address Line 2.
*   `city` (_string_, required) City.
*   `state` (_string_) State.
*   `postalCode` (_string_, required) Postal Code.
*   `countryCode` (_string_, required) Country Code.
*   `phone` (_string_) Phone.
*   `storeId` (_string_) Store ID if it is store address.
*   `emailAddress` (_string_) Customer Email Address.

### SpiDateTimeSlot

The backup delivery/pickup date in case slots are not available or unknown. (Default value can also be set in Store settings using property 'deliveryDatePickerWillCall' ).

*   `slotId` (_string_, required) Slot ID, unique value for this delivery/pickup day/date.
*   `slotDate` (_integer (int64)_, required) Delivery date in epoch.
*   `selectedTimeSlot` (_string_, required) The default selected time slot for the delivery/pickup date.  
    Example: `09:00 - 12:00`.
*   `availableTimeSlots` (_array of string_, nullable) The list of other time slots available for delivery/pickup.
*   `shippingMethodId` (_string_, nullable) Shipping Method ID for this slot in case of delivery item.

### SPIShipmentProcessorRequestProduct

All the items from the cart. Each item has a link to its delivery group via deliveryGroupId.

*   `orderItemId` (_string_, required, write-only) 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.`.
*   `parentOrderItemId` (_string_, write-only) Indicates the parent order item ID for add-on items, pointing to the main item's order item ID. For example, values like 1, 2, or 3 represent the line item number of the parent item.  
    Example: `1, 2, 3`.
*   `deliveryGroupId` (_string_, write-only) 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.
*   `productId` (_string_, required, write-only) 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, write-only) Variant Group ID. All the variants of an item are grouped together under the same variant ID.
*   `customAttributeList` (_array of ProductFormAttribute_) Custom attributes related to the product. The products have custom attributes  
    like customString0,customString1. etc. Merchants can map their custom attributes to  
    these fields in field mapping and provide the values in the product feed.  
    For more details, see:  
    [Clienteling SPI Field Mapping](https://developer.salesforce.com/docs/commerce/retail-cloud/guide/clienteling-spi-field-mapping.html)  
    If merchants want custom attributes to be exported in Order Export and also here in  
    this SPI request, they need to configure CMS's store settings as below  
    **CMS** > **Store Management** > **Store Setting** > **Oms** > **Order** export > tLogCustomProductAttributes >  
    customString0,customString1.. etc.  
    
    _Example_
    
    ```
    [
      {
        "key": "color",
        "value": "red"
      }
    ]
    ```
    
*   `name` (_string_, required, write-only) Name of the item.
*   `price` (_number_, required, write-only) Price of the item.
*   `quantity` (_integer (int32)_, required, write-only) Item's Quantity.
*   `imageURL` (_string_, required, write-only) Image URL of the item.
*   `subTotal` (_number_, required, write-only) Item's total excluding discounts, shipping costs and taxes but inclusive of VAT.
*   `discount` (_number_, write-only) 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, write-only) Item's total (final amount charged for this item), inclusive of tax/VAT and discounts.
*   `productTax` (_ExternalProductTax_)
*   `size` (_string_, write-only) Item's size.  
    Example: `39-42 or M or 38 etc...`.
*   `color` (_string_, required, write-only) Item's color.  
    Example: `Light Grey or Black etc...`.
*   `itemStatus` (_string_, required, write-only)
    
    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_, write-only) Item's GTIN.
*   `fulfillmentType` (_string_, required, write-only) 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, write-only)
    
    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`.
*   `priceCorrection` (_ExternalProductPriceCorrection_)
*   `productClass` (_string_, required, write-only) Product class of the item.
*   `serialNumber` (_string_, write-only) Serial number of the item (if applicable).
*   `productCondition` (_string_, write-only) Product condition.  
    Allowed values: `NEW`, `USED`, `REFURBISHED`. Default: `NEW`.
*   `registryId` (_string_, write-only, nullable) The unique ID of the registry. This is required when the item being purchased or returned is a gift registry item.

### SPIShipmentProcessorRequestDeliveryGroup

All delivery groups corresponding the delivery items from the cart.

*   `deliveryGroupId` (_string_, required) Delivery group ID. Unique ID in alphanumeric format.  
    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` (_SPIShipmentProcessorShippingMethod_)
*   `shippingAddress` (_ExternalAddress_)
*   `dateTimeSlot` (_ExternalDateTimeSlot_)
*   `availableDateTimeSlotList` (_array of ExternalAvailableDateTimeSlot_, read-only) Available delivery date time slots.
*   `deliveryDatePickerOption` (_string_, read-only) Determines what action to take for the delivery date picker.  
    Allowed values: `ENABLED`, `DISABLED`.
*   `sortOrder` (_integer (int32)_, required) PS POS uses sort order to display delivery groups in a specific sequence. If not provided, the display order becomes unpredictable.
*   `fulfillmentAddress` (_ExternalAddress_)

### SPIShipmentProcessorResponseProduct

All items from the cart are associated with a deliveryGroupId,  
enabling linkage to the corresponding deliveryGroup within the deliveryGroupList.  
Additionally, each item may possess custom attributes.

*   `orderItemId` (_string_, required, read-only) 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.`.
*   `deliveryGroupId` (_string_, read-only) 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.
*   `customAttributeList` (_array of ProductFormAttribute_, read-only) Custom attributes related to the product.  
    All these attributes will be available in order export JSON at item level under attribute:  
    tLogCustomProductAttributes.
    
    _Example_
    
    ```
    [
      {
        "key": "color",
        "value": "red"
      }
    ]
    ```
    

### SPIShipmentProcessorResponseDeliveryGroup

All delivery groups corresponding the delivery items from the cart.

*   `deliveryGroupId` (_string_, required) Delivery group ID. Unique ID in alphanumeric format.  
    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` (_SPIShipmentProcessorShippingMethod_)
*   `shippingAddress` (_ExternalAddress_)
*   `dateTimeSlot` (_ExternalDateTimeSlot_)
*   `availableDateTimeSlotList` (_array of ExternalAvailableDateTimeSlot_, read-only) Available delivery date time slots.
*   `deliveryDatePickerOption` (_string_, read-only) Determines what action to take for the delivery date picker.  
    Allowed values: `ENABLED`, `DISABLED`.
*   `sortOrder` (_integer (int32)_, required) PS POS uses sort order to display delivery groups in a specific sequence. If not provided, the display order becomes unpredictable.
*   `fulfillmentAddress` (_ExternalAddress_)
*   `shippingMethodList` (_array of SPIShipmentProcessorShippingMethod_) Available shipping method options corresponding to the delivery group. It is optional and must be provided if an address is provided for the delivery group.

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

### SpiRegistryProduct

The list of gift products that are present with this registry, with all the availability details.

*   `productId` (_string_, required) Product Identifier.
*   `quantityWanted` (_integer (int32)_, required) The quantity of this item that the registrant is looking for.
*   `quantityPurchased` (_integer (int32)_, required) Quantity of the item that have already been purchased as a gift.
*   `preEventAvailability` (_boolean_, required) Flag indicating whether item is available for Ship to the Pre event address.
*   `postEventAvailability` (_boolean_, required) Flag indicating whether item is available for Ship to the Post event address.
*   `inStoreAvailability` (_boolean_, required) Flag indicating whether item is available to take with / In Store order.
*   `quantity` (_integer (int32)_, required) Quantity of the product that is available to purchase.

### RegistryLineItem

The list of line items corresponding to the product Id sent in request, where each line can be of differing prices, quantities, belonging to different orders.

*   `eligibleForReturn` (_boolean_, required) Flag to indicate whether product is eligible for return.
*   `productId` (_string_, required) Product Identifier.
*   `price` (_number_, required) Product price inclusive of quantity.
*   `quantity` (_integer (int32)_, required) Quantity of the product.
*   `taxAmount` (_number_, required) Tax amount inclusive of quantity.
*   `externalReferenceId` (_string_, required) The orderId or reference ID associated with the registry item being returned. Pass this when adding the item to the cart for NRR.

### GiftRegistry

The list of gift registries matching the search.

*   `imageUrl` (_string_, required) The URL of the image to be shown along with the Registry details.
*   `registryId` (_string_, required) The unique ID of the registry.
*   `firstName` (_string_, required) The First name of the Registrant.
*   `lastName` (_string_, required) The last name of the Registrant.
*   `coRegistrantName` (_string_, nullable) The Co-Registrant name for the registry if available.
*   `state` (_string_, required) The state where the event is taking place.
*   `eventType` (_string_, required) The event type for which the registry was created. For example, Wedding, Engagement, Housewarming.
*   `eventDate` (_integer (int64)_, required) The event date in epoch milliseconds, to be shown in a suitable format on the app.

### StoreInventoryDetails

List of all stores and their inventory details for the product sent in the request.

*   `storeId` (_string_, required) Store or warehouse ID.
*   `storeName` (_string_, required) Store name.
*   `storeAddress` (_SpiStoreAddress_, required)
*   `inventory` (_SpiInventory_, required)

### InventoryProduct

The list of Products for which the Inventory is to be checked.

*   `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.
*   `inventoryType` (_string_, required) Item's inventory check type. It can be either IN\_STORE (in-store purchase) or ONLINE (delivery item).
*   `inventoryAction` (_string_, required) The action to be taken for this inventory check. Current valid values: AVAILABILITY.
*   `storeId` (_string_, required) Check inventory based on given store ID. Will always be sent in the request.

### ProductInventory

*   `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.
*   `quantity` (_integer (int32)_, required) The available inventory quantity of the product, 0 when there is no inventory.
*   `storeId` (_string_, nullable) Available inventory based on given store ID. Optional, to be returned when inventoryType is IN\_STORE.
*   `inventoryType` (_string_, required) Item's inventory check type. It can be either IN\_STORE (in-store purchase) or ONLINE (delivery item).

### CycleCountPayloadLine

Cycle count line items.

*   `storeID` (_string_, required) ID of the store where this cycle count is performed. Provide a valid store ID that's already configured in POS, either through CMS or Store Feed.  
    Example: `001`.
*   `cycleCountID` (_string_, required, read-only) Cycle count identifier. Unique POS ID assigned when the cycle count is created.  
    Example: `10001`.
*   `cycleCountType` (_string_, required, read-only) Below is list of supported cycle count types:  
    1.**Full**: Cycle count for the full inventory of products  
    2.**Partial**: Cycle count for a particular group of products that fall within  
    a selected category, brand, or any other product attribute that is configured  
    3.**Manual**: Cycle count for a specific set of products that are scanned in prior to starting the count.  
    Allowed values: `FULL`, `PARTIAL`, `ADJUSTMENT`, `FULL, PARTIAL, ADJUSTMENT`. Example: `STORE`.
*   `cycleCountStatus` (_string_, required, read-only)
    
    1.  **CREATED**: While creating a new batch provide this status  
        2\. **CANCELED**: To cancel the existing cycle count batch.  
        3\. **COMPLETED**: Once the batch is created in the POS system,  
        the status will become COMPLETED  
        4\. **PREPARING**: Preparing the cycle count batch  
        5\. **IN\_PROGRESS**: Cycle count in progress.
    
      
    Allowed values: `CREATED`, `CANCELED`, `COMPLETED`, `PREPARING`, `IN_PROGRESS`, `CREATED, PREPARING, IN_PROGRESS, COMPLETED, CANCELED`. Example: `CREATED`.
*   `createdFrom` (_string_, required) Origin of this cycle count - triggered by the corporate or from the store itself.  
    Allowed values: `CORPORATE`, `STORE`, `CORPORATE, STORE`. Example: `STORE`.
*   `cycleCountDate` (_integer (int64)_)
*   `name` (_string_, required) Logical name for this cycle count.  
    Example: `Spring 2020 cycle count`.
*   `description` (_string_) Detailed description for the cycle count.  
    Example: `Spring 2020 cycle count to be completed before 4/30`.
*   `partialCycleCountProductAttribute` (_string_, required) Product attribute for partial cycle count to perform cycle count by specific product attribute. For example, Brand.  
    Example: `MerchantCategory`.
*   `partialCycleCountProductAttributeValues` (_string_, required) List of product attribute values for partial cycle count. For example, Brand values of Mattel, Disney, etc.  
    Example: `Reserve`.
*   `productCategories` (_string_, deprecated) List of product categories for partial cycle count for specific product categories. Use @partialCycleCountProductAttribute.  
    Example: `Clothing`.
*   `productIDs` (_string_, deprecated) List of product IDs applicable for partial cycle count for specific products. Use @partialCycleCountProductAttributeValues.  
    Example: `productId1,productId2`.
*   `createdBy` (_string_, required) Store associate ID who created the cycle count.  
    Example: `0202`.
*   `updatedBy` (_string_, required) Store associate ID who modified the cycle count.  
    Example: `0202`.
*   `startedByStoreAssociateID` (_string_, required) ID of the Store associate who started this cycle count. This need not be the same as the user who created the cycle count.  
    Example: `0202`.
*   `updatedByStoreAssociateID` (_string_, required) ID of the Store associate who last updated this cycle count.  
    Example: `0202`.
*   `expectedQuantity` (_integer (int32)_, required) Total number of products expected.  
    Example: `5`.
*   `countedQuantity` (_integer (int32)_, required) Total number of products actually counted.  
    Example: `3`.
*   `expectedProductValue` (_number_, required) Total value of the products - expected.  
    Example: `100`.
*   `countedProductValue` (_number_, required) Total value of the products that were actually counted.  
    Example: `60`.
*   `variancePercentageQuantity` (_number_, required) Variance percentage between expected product count vs. actual product count.  
    Example: `-60`.
*   `variancePercentageProductValue` (_number_, required) Variance percentage between expected product value vs. actual product value.  
    Example: `-60`.
*   `varianceQuantity` (_integer (int32)_, required) Variance in quantity between expected product count vs. actual product count.  
    Example: `-2`.
*   `varianceProductValue` (_number_, required) Variance in value between expected product count vs. actual product count.  
    Example: `-40`.
*   `email` (_string_) Email address to which the cycle count report was sent.  
    Example: `predictspring@predictspring.com`.
*   `startTimeStamp` (_integer (int64)_, required) Cycle count start time represented in milliseconds since epoch.  
    Example: `1686608971000`.
*   `productID` (_string_, required) Product ID.  
    Example: `014001`.
*   `gtin` (_string_, required) Product GTIN.  
    Example: `778913800001`.
*   `productTitle` (_string_, required) Product name.  
    Example: `Plat Pinot`.
*   `productImageURL` (_string_) Product Image URL.
*   `color` (_string_) Product Color.  
    Example: `white`.
*   `size` (_string_) Product Size.  
    Example: `0.75`.
*   `unitProductValue` (_number_) Unit Price.  
    Example: `32.99`.
*   `excluded` (_boolean_) Flag indicating if this product was excluded from cycle count. This flag indicates that this product inventory should not be adjusted based on this cycle count. Excluded products are excluded from variance calculations as well.
*   `reasonCode` (_string_) Reason code for excluding the item from cycle count.
*   `createdTimeStamp` (_integer (int64)_, required) Cycle count creation time represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `modifiedTimeStamp` (_integer (int64)_, required) Cycle count last modified time represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `reasonText` (_string_) Reason text for excluding the item from cycle count.  
    Example: `Lost`.
*   `serialNumbers` (_string_) Scanned Serial numbers.
*   `itemExpectedQuantity` (_integer (int32)_, required) Expected quantity for this item.  
    Example: `70`.
*   `itemCountedQuantity` (_integer (int32)_, required) Actual quantity for this item.  
    Example: `0`.
*   `itemExpectedProductValue` (_number_, required) Expected product value for this item based on expected quantity.  
    Example: `2309.3`.
*   `itemCountedProductValue` (_number_, required) Actual product value for this item based on counted quantity.  
    Example: `0`.
*   `itemVariancePercentageQuantity` (_number_, required) Variance percentage between expected product count vs. actual product count.  
    Example: `-100`.
*   `itemVariancePercentageProductValue` (_number_, required) Variance percentage in value between expected product value vs. actual product value.  
    Example: `-100`.
*   `itemVarianceQuantity` (_integer (int32)_, required) Variance in quantity between expected product count vs. actual product count.  
    Example: `-70`.
*   `itemVarianceProductValue` (_number_, required) Variance in value between expected product value vs. actual product value.  
    Example: `-2309.3`.
*   `itemRecountCount` (_integer (int32)_, required) The number of times the item is recounted within the same cycle count.  
    Example: `1`.
*   `externalReferenceId` (_string_) External cycle count or batch ID.  
    Example: `spring-2023`.

### InventoryAdjustmentPayloadLine

Inventory adjustment line items.

*   `id` (_string_, required) Inventory adjustment identifier.
*   `storeID` (_string_, required) ID of the store where this inventory adjustment is performed. Provide a valid store ID that's already configured in POS, either through CMS or Store Feed.  
    Example: `001`.
*   `productID` (_string_, required) Product item identifier.
*   `productTitle` (_string_, required) Product title.
*   `productImageURL` (_string_, required) Product image URL.
*   `color` (_string_) Product color.
*   `size` (_string_) Product size.
*   `countedQuantity` (_integer (int32)_, required) Adjusted quantity.  
    Example: `5`.
*   `startedByStoreAssociateID` (_string_, required) ID of the Store associate who started this inventory adjustment. This need not be the same as the user who created the inventory adjustment.  
    Example: `2036`.
*   `updatedByStoreAssociateID` (_string_, required) ID of the Store associate who last updated this inventory adjustment.  
    Example: `2036`.
*   `createdTimeStamp` (_integer (int64)_, required) Inventory adjustment batch item creation time represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `modifiedTimeStamp` (_integer (int64)_, required) Inventory adjustment batch item last modified time represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `reason` (_string_, required) Adjustment reason code.  
    Example: `MISSING ITEMS`.
*   `reasonText` (_string_, required) Adjustment reason text.  
    Example: `Missing Items`.
*   `gtin` (_string_, required) Product GTIN.  
    Example: `778913800001`.
*   `serialNumbers` (_string_) Scanned Serial numbers.
*   `itemHierarchyId` (_string_, required) Item hierarchy ID for products which have the same product ID but have different reason codes.  
    Example: `1`.

### InventoryTransferPayloadLine

Inventory transfer line items.

*   `transferType` (_string_, required) Inventory transfer type.  
    Allowed values: `ASN`, `CORP_TRANSFER`, `STORE_TO_STORE`, `BLIND_RECEIVE`, `RETURN_TO_VENDOR`, `PO`, `ASN`, `CORP_TRANSFER`, `STORE_TO_STORE`, `BLIND_RECEIVE`, `RETURN_TO_VENDOR`. Example: `STORE_TO_STORE`.
*   `inventoryTransferID` (_string_, required) Inventory transfer identifier.  
    Example: `ITS00000001`.
*   `orderID` (_string_) Inventory transfer order identifier.  
    Example: `OrderPS00000001`.
*   `poNumber` (_string_) Inventory transfer Purchase Order Number.  
    Example: `123456`.
*   `uploadNumber` (_string_) Used to indicate the corporate transfer group.  
    Example: `1, 2`.
*   `billOfLadingID` (_string_) Bill of lading ID.  
    Example: `99865`.
*   `trackingNumber` (_string_, required) Tracking number.  
    Example: `track123`.
*   `fromID` (_string_, required) Inventory transfer origin identifier. For example, Warehouse/Distribution center/Store ID.  
    Example: `1`.
*   `toID` (_string_, required) Inventory transfer recipient identifier. For example, Warehouse/Distribution center/Store ID.  
    Example: `2`.
*   `productCount` (_integer (int32)_, required) Number of products in this inventory transfer.  
    Example: `3`.
*   `productImageLinks` (_string_) List of product images for the items in this inventory transfer.  
    Example: `https://us.maje.com/dw/image/v2/AAON_PRD/on/demandware.static/-/Sites-maje-catalog-master-H13/default/dwd569bdfb/images/h13/Maje_E18GUMPY-0067_H_1.jpg`.
*   `status` (_string_, required) Inventory transfer status.  
    Allowed values: `OPEN`, `NEW`, `IN_PROGRESS`, `PARTIAL`, `COMPLETE`, `SHIPPED`, `PARTIAL_SHIPPED`, `DELIVERED`, `RECEIVED`, `CANCELLED`, `PAUSED`, `PARTIAL_PAUSED`. Example: `IN_PROGRESS`.
*   `createdOn` (_integer (int64)_, required) Date and time when this inventory transfer is created. Represented as milliseconds since epoch.  
    Example: `1686607971000`.
*   `dueOn` (_integer (int64)_) Date and time when this inventory transfer is due. Represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `lastProcessedById` (_string_, required) ID for the person/entity who processed this inventory transfer.  
    Example: `2036`.
*   `lastProcessedByName` (_string_, required) Name for the person/entity who processed this inventory transfer.  
    Example: `Rob`.
*   `updatedOn` (_integer (int64)_, required) Date and time when this inventory transfer is last updated. Represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `vendorID` (_string_, required) Vendor ID.  
    Example: `1`.
*   `receivedOn` (_integer (int64)_, required) Date and time when this inventory transfer is received. Represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `cancelledOn` (_integer (int64)_, required) Date and time when this inventory transfer is cancelled. Represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `exportDate` (_integer (int64)_) Inventory transfer export time. Represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `itemStatus` (_string_, required) Inventory transfer item's status.  
    Allowed values: `OPEN`, `NEW`, `IN_PROGRESS`, `PARTIAL`, `COMPLETE`, `SHIPPED`, `PARTIAL_SHIPPED`, `DELIVERED`, `RECEIVED`, `CANCELLED`, `PAUSED`, `PARTIAL_PAUSED`. Example: `COMPLETE`.
*   `transferID` (_string_) Inventory transfer detail identifier.  
    Example: `409a92a5-834b-4500-b062-cedd89a38602`.
*   `palletID` (_string_, required) Pallet ID. Used to lookup specific transfer that has palletId.  
    Example: `A-4-PS00000001P1`.
*   `cartonID` (_string_, required) Carton ID. Used to lookup specific transfer that has cartonId.  
    Example: `A-4-PS00000001P1C1`.
*   `productID` (_string_, required) Product ID.  
    Example: `3661601594304`.
*   `vendorNumber` (_string_) Product vendor number.  
    Example: `607282`.
*   `externalDocNumber` (_string_) Product external doc number.  
    Example: `4900071859`.
*   `externalLineNumber` (_string_) Product external doc number.  
    Example: `00010`.
*   `productTitle` (_string_, required) Product title.  
    Example: `Wide-leg checked trousers`.
*   `productImageURL` (_string_, required) Product image URL.  
    Example: `https://us.maje.com/dw/image/v2/AAON_PRD/on/demandware.static/-/Sites-maje-catalog-master-H13/default/dw2b369dcf/images/h13/Maje_E18PERSE-1066_H_1.jpg`.
*   `quantityOrdered` (_integer (int32)_, required) Ordered quantity for each product in a transfer.  
    Example: `3`.
*   `quantityTransferred` (_integer (int32)_, required) Transferred quantity for each product in a transfer.  
    Example: `2`.
*   `quantityReceived` (_integer (int32)_, required) Received quantity for each product in a transfer.  
    Example: `1`.
*   `shipper` (_string_, required) Shipping supplier.  
    Example: `UPS`.
*   `shippedOn` (_integer (int64)_, required) Date and time when transfer is shipped. Represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `itemTrackingNumber` (_string_, required) Item tracking number.  
    Example: `TrackingIDPS00000001`.
*   `estimatedDeliveryOn` (_integer (int64)_, required) Date and time when transfer is expected to be delivered. Represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `deliveredOn` (_integer (int64)_) Date and time when transfer is delivered. Represented as milliseconds since epoch.  
    Example: `1686608971000`.
*   `receivedBy` (_string_, required) Received by ID.  
    Example: `2036`.
*   `reasonCode` (_string_, required) Item receive mismatch reason code.  
    Example: `1`.
*   `reasonText` (_string_, required) Item receive mismatch reason text.  
    Example: `Damaged`.
*   `color` (_string_) Product color.  
    Example: `Navy`.
*   `size` (_string_) Product size.  
    Example: `OS`.
*   `gtin` (_string_) Product gtin.  
    Example: `3661601593970`.
*   `isManualAdd` (_boolean_) Indicates if an item was manually added to the ASN, with true for manual additions and false for the item was existing.
*   `description` (_string_, required) Inventory transfer description.  
    Example: `Request for transfer from from store 1 to store 2`.
*   `serialNumbers` (_string_) Scanned Serial numbers.

### PurchaseOrderPayloadLine

Purchase order line items.

*   `transferType` (_string_, required) Inventory transfer type.  
    Allowed values: `ASN`, `CORP_TRANSFER`, `STORE_TO_STORE`, `BLIND_RECEIVE`, `RETURN_TO_VENDOR`, `PO`, `PO`. Example: `PO`.
*   `inventoryTransferID` (_string_, required) Purchase order identifier.  
    Example: `ITS00000001`.
*   `toID` (_string_, required) Purchase order recipient identifier. For example, Warehouse/Distribution center/Store ID.  
    Example: `1`.
*   `productCount` (_integer (int32)_, required) Total number of products in this inventory transfer.  
    Example: `10`.
*   `createdOn` (_integer (int64)_, required) Date and time when this order is created. Represented as milliseconds since epoch.  
    Example: `1686607971000`.
*   `productID` (_string_, required) Product ID.  
    Example: `3661601594304`.
*   `productTitle` (_string_, required) Product title.  
    Example: `Wide-leg checked trousers`.
*   `quantityOrdered` (_integer (int32)_, required) Ordered quantity for each product in a purchase order.  
    Example: `10`.
*   `costPrice` (_number_, required) Cost price of each item.  
    Example: `12.99`.
*   `casePackQuantity` (_integer (int32)_, required) Number of item per case pack.  
    Example: `8`.
*   `totalCost` (_number_, required) Total price of each item in an order, quantityOrdered \* costPrice.  
    Example: `129.9`.

### TransactionalInventoryProduct

products

List the products that require inventory adjustment.

*   `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.
*   `quantity` (_integer (int32)_, required) Item's Quantity.
*   `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`.

### ProductError

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

### ProductWarning

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

### ProductPriceAdjustment

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

### OrderPriceAdjustment

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

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

### CartDiscountData

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

### GiftCard

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

### CheckoutCookie

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

### LoyaltyInfo

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

### ExchangeItemResponse

Details about the items that are being returned or exchanged.

*   `errorMessage` (_string_, nullable) Error message shown to the user.  
    Example: `Invalid request. Please check the request and try again.`.
*   `errorCode` (_string_, nullable) Error code shown to the user.  
    Example: `INTERNAL_ERROR`.
*   `orderId` (_string_)
*   `exchangeStatus` (_string_)  
    Allowed values: `EXCHANGED`, `EXCHANGED_WITH_REFUND`, `FAILED`, `SKIPPED`.
*   `refundAmount` (_number_)
*   `refundMedium` (_string_)
*   `refundStatus` (_string_)
*   `orderStatus` (_string_)
    
    Below is the list of statuses for in-store purchases and BORIS. The statuses are applicable for both the order and its items. The significance of each status is described in detail below.  
    The eligibility of an item for returns is determined by its current status and the status of the order. Moreover, the **returnsEligibility** attribute at the item level (productList, orderProductList) can also be used to regulate the return eligibility of an item.  
    To learn more about returns eligibility, please refer to the table below and orderProductList.returnsEligibility/productList.returnsEligibility  
      
    
    | Order Status | Display Name in Order History Filter | Significance for Order | Significance for Item | Return Eligibility |
    | --- | --- | --- | --- | --- |
    | COMPLETED | Completed | Successful sale transaction. | Item sold successfully. | Both the order and item are eligible for return. |
    | RETURNED | Returned | Successful return or exchange of all items with refund to customer. | Successful return of an item - whole quantity and is not eligible for return. | Both the order and item are not eligible for return. |
    | PARTIALLY\_REFUNDED | Partially Returned | Successful return or exchange of partial items with refund to customer. | Successful return of an item - partial quantity | Further returns are allowed on order as well as on item. |
    | EXCHANGED | Exchanged | Successful transaction that exchanges all items with no refund to customer | Successful exchanges of an item - whole quantity | Both the order and item are not eligible for return. |
    | PARTIALLY\_EXCHANGED | Partially Exchanged | Successful transaction that exchanges partial items with no refund to customer | Successful exchanges of an item - partial quantity | Further returns are allowed on order as well as on item. |
    | FAILED | Failed | Failed sale transaction. | Not applicable | Both the order and item are not eligible for return. |
    | PENDING | Pending | Sale transaction awaiting payment confirmation. For example, Remote Pay By Link | Not applicable | Both the order and item are not eligible for return. |
    
      
    Allowed values: `NEW`, `PROCESSING`, `PARTIALLY_SHIPPED`, `SHIPPED`, `CANCELED`, `COMPLETED`, `FAILED`, `RETURNED`, `PARTIALLY_REFUNDED`, `REWARD`, `PENDING`, `UNKNOWN`, `READY`, `PACK`, `UNPACK`, `PICKED`, `DELIVERED`, `CREATED`, `CANCELLED_WITH_REFUND`, `UNAVAILABLE`, `DAMAGED`, `EXCHANGED`, `PARTIALLY_EXCHANGED`, `RECREATED`, `FULFILLED`, `PENDING_ORDER`, `IN_TRANSIT`, `EDITED`.
*   `products` (_array of Product_)
*   `order` (_CustomerOrder_)
*   `amountPendingRefund` (_number_)
*   `refundPaymentData` (_array of PaymentData_)
*   `refundPaymentDataOriginalTender` (_array of PaymentData_)
*   `paymentData` (_array of PaymentData_)
*   `parentOrderId` (_string_)
*   `noReceiptReturns` (_boolean_)
*   `editOrderId` (_string_)
*   `refundFees` (_array of RefundFee_, nullable) Refund fees charged so far.
*   `transactionId` (_string_, nullable) Transaction identifier to identify current exchange transaction.
*   `offlineMode` (_boolean_) Flag to indicate whether returns or exchange is being performed in offline mode or not.
*   `postProcessingPerformed` (_boolean_) Flag to indicate if the post processing webhook is triggered or not.
*   `paidAmount` (_number_) Used in edit order flow. Amount already paid as part of original order.
*   `orderReturnsPolicy` (_OrderReturnsPolicy_)
*   `employee` (_Employee_)
*   `tipTotal` (_number_) Tip Total to be refunded in case of pure return.
*   `request` (_ExchangeItemRequest_)
*   `refundPerformed` (_boolean_)
*   `returnableItemTotal` (_number_)
*   `paymentDetails` (_array of OrderPaymentDetail_)
*   `exchangeOrderPaymentDetails` (_array of ExchangeOrderPaymentDetail_)
*   `error` (_boolean_)

### ReturnsTender

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

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

### ExchangeItemRequest

Request for items that are being returned or exchanged.

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

### RefundFee

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

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

### TaxTransaction

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

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

### OrderLevelGiftWrap

Gift Wrap.

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

### PaymentInstallment

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

### PaymentInstallmentOptions

List of Payment Installment options available.

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

### Tender

Tender object with payment details.

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

### CartSummary

Payload that contains summary of cart totals.

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

### Discount

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

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

### Flash

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

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

### AuxiliaryItemData

auxiliary Items details support for edit order.

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

### ReturnCustomerInformation

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

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

### DeltaCart

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

### StatusLine

*   `reasonPhrase` (_string_)
*   `protocolVersion` (_ProtocolVersion_)
*   `statusCode` (_integer (int32)_)

### HttpEntity

*   `repeatable` (_boolean_)
*   `streaming` (_boolean_)
*   `chunked` (_boolean_)
*   `content` (_object_)
*   `contentLength` (_integer (int64)_)
*   `contentType` (_Header_)
*   `contentEncoding` (_Header_)

### ProtocolVersion

*   `protocol` (_string_)
*   `major` (_integer (int32)_)
*   `minor` (_integer (int32)_)

### Header

*   `name` (_string_)
*   `value` (_string_)
*   `elements` (_array of HeaderElement_)

### HttpParams

### POSCrashData

*   `merchantId` (_string_) Merchant ID.
*   `locale` (_string_) Locale.
*   `region` (_string_) Region.
*   `installationId` (_string_) Unique Installation ID.
*   `storeId` (_string_) Store ID.
*   `storeAssociateId` (_string_) Store Associate ID.
*   `storeRegisterId` (_string_) Store Register ID.
*   `crashTimeStamp` (_integer (int64)_) Timestamp of when the crash occurred. Represented as milliseconds since epoch.
*   `crashId` (_string_) Crash ID.
*   `crashDataRecordId` (_string_) Unique ID for the crash data record.
*   `appVersion` (_string_) App Version.
*   `buildVersion` (_string_) Build Version.
*   `deviceType` (_string_) POS device type. For example, iPad.
*   `osVersion` (_string_) Device OS Version.

### OfflinePOSVitalsLog

Offline vital details.

*   `offlinePOSVitalsStartTime` (_integer (int64)_) Record of offline POS Vital Start Time.
*   `offlinePOSVitalsEndTime` (_integer (int64)_) Record of offline POS Vital End Time.
*   `offlineReason` (_string_, nullable) Record of offline reason.
*   `description` (_string_, nullable) Description of offline reason.
*   `lastOnlineOrderPlacedOn` (_integer (int64)_) Last time when an online order was placed. Represented as milliseconds since epoch.
*   `lastOfflineOrderPlacedOn` (_integer (int64)_) Last time when an offline order was placed. Represented as milliseconds since epoch.
*   `offlineTaxFeedLastUpdatedOn` (_integer (int64)_) Last time when offline tax feed was updated. Represented as milliseconds since epoch.
*   `offlineTaxFeedLastStoredOn` (_integer (int64)_) Timestamp when the offline tax feed was last stored. Represented as milliseconds since epoch.
*   `offlineTaxFeedLastDownloadedOn` (_integer (int64)_) Timestamp when the offline tax feed was last downloaded. Represented as milliseconds since epoch.
*   `offlineTaxFeedDbRecordCount` (_integer (int32)_) Number of records in the offline tax feed database.
*   `offlineTaxFeedLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline tax feed.
*   `offlineStoreCredentialsLastStoredOn` (_integer (int64)_) Timestamp when offline store credentials were last stored. Represented as milliseconds since epoch.
*   `offlineStoreCredentialsLastUpdatedOn` (_integer (int64)_) Timestamp when offline store credentials were last updated. Represented as milliseconds since epoch.
*   `offlineStoreCredentialsLastDownloadedOn` (_integer (int64)_) Timestamp when offline store credentials were last downloaded. Represented as milliseconds since epoch.
*   `offlineStoreCredentialsDbRecordCount` (_integer (int32)_) Number of records in the offline store credentials database.
*   `offlineStoreCredentialsLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline store credentials.
*   `offlineProductFeedLastDownloadedFileCreatedTime` (_integer (int64)_) Timestamp when the last downloaded file for offline product feed was created. Represented as milliseconds since epoch.
*   `offlineProductFeedLastProcessedFileName` (_string_) Name of the last processed file for offline product feed.
*   `offlineProductFeedLastUpdatedOn` (_integer (int64)_) Timestamp when the offline product feed was last updated. Represented as milliseconds since epoch.
*   `offlineProductFeedLastStoredOn` (_integer (int64)_) Timestamp when the offline product feed was last stored. Represented as milliseconds since epoch.
*   `offlineProductFeedDbRecordCount` (_integer (int32)_) Number of records in the offline product feed database.
*   `offlineProductFeedLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline product feed.
*   `offlineProductDeltaLastStoredOn` (_integer (int64)_) Timestamp when offline product delta data was last stored. Represented as milliseconds since epoch.
*   `offlineProductDeltaLastUpdatedOn` (_integer (int64)_) Timestamp when offline product delta data was last updated. Represented as milliseconds since epoch.
*   `offlineProductDeltaLastDownloadedOn` (_integer (int64)_) Timestamp when offline product delta data was last downloaded. Represented as milliseconds since epoch.
*   `offlineProductDeltaLastProcessedFileName` (_string_) Name of the last processed file for offline product delta data.
*   `offlineProductDeltaLastDownloadedFileCreatedTime` (_integer (int64)_) Timestamp when the last downloaded file for offline product delta data was created. Represented as milliseconds since epoch.
*   `offlineProductDeltaLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline product delta data.
*   `offlinePromotionsLastProcessedFileName` (_string_) Name of the last processed file for offline promotions.
*   `offlinePromotionsLastDownloadedFileCreatedTime` (_integer (int64)_) Timestamp when the last downloaded file for offline promotions was created. Represented as milliseconds since epoch.
*   `offlinePromotionsLastDownloadedOn` (_integer (int64)_) Timestamp when offline promotions data was last downloaded. Represented as milliseconds since epoch.
*   `offlinePromotionsLastStoredOn` (_integer (int64)_) Timestamp when offline promotions data was last stored. Represented as milliseconds since epoch.
*   `offlinePromotionsLastUpdatedOn` (_integer (int64)_) Timestamp when offline promotions data was last updated. Represented as milliseconds since epoch.
*   `offlinePromotionsDbRecordCount` (_integer (int32)_) Number of records in the offline promotions database.
*   `offlinePromotionsLastDownloadedRecordCount` (_integer (int32)_) Number of records in the last downloaded offline promotions data.
*   `merchantId` (_string_)
*   `installationId` (_string_)
*   `storeId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

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

### PackageDimension

Dimension of package being shipped.

*   `length` (_number_, required) Length of the package.  
    Example: `12.2`.
*   `height` (_number_, required) Height of the package.  
    Example: `12.2`.
*   `width` (_number_, required) Width of the package.  
    Example: `12.2`.

### ShipmentItem

Items in the package.

*   `productId` (_string_) Product ID.
*   `quantity` (_integer (int32)_) Number of items.
*   `orderItemId` (_string_) Item sequence or system-generated item ID assigned to this line item. Must be unique within this order.  
    Example: `It can have values like 1, 2, 3, etc... which represents line item number within the order.`.
*   `shippingMethodId` (_string_) Unique Identifier for the Shipping Method.
*   `shippingCarrier` (_string_) Shipping carrier, for example, UPS, USPS, FedEx, or DHL.
*   `deliveryDate` (_integer (int64)_) Expected delivery date in epoch in millis.
*   `deliveryTimeSlot` (_string_) Expected delivery time slot.  
    Example: `09:00 - 12:00`.

### ShippingOption

Shipping method options.

*   `shippingMethodId` (_string_, required) Unique Identifier for the Shipping Method.
*   `name` (_string_) Shipping Method Name.
*   `description` (_string_) Description.
*   `shippingCarrier` (_string_, required) Shipping carrier, for example, UPS, USPS, FedEx, or DHL.
*   `serviceLevel` (_string_) Service-level description. This is shown on the POS app. For example, 3-5 Days, 1-Day, Express, Standard, Overnight.
*   `price` (_number_, required) Shipping Method Price.
*   `sortOrder` (_integer (int32)_, required) Display rank. Helps determine display sequence of shipping methods on screen. For example, a shipping method with display rank of 1 will be displayed beforea method with display rank 2 and so on.
*   `deliveryDate` (_integer (int64)_, required) Expected delivery date in epoch in millis.
*   `deliveryTimeSlot` (_string_, required) Expected delivery time slot.  
    Example: `09:00 - 12:00`.

### ShippingSPIProduct

Details of an item available in the cart. Includes mandatory and optional item attributes. The optional attributes are provided only if they are configured with product field mapping. Product field mapping is available under **CMS** > **Feeds** > **Field Mappings** > **Products**. To learn more about field mapping, salesforce.com/docs/commerce/retail-cloud/guide/clienteling-spi-field-mapping.html.

*   `productId` (_string_, required) Distinct product ID for each combination of variations, for example, size or color.  
    Example: `3661601595547`.
*   `title` (_string_, required) Product title.  
    Example: `E18PENDANT1`.
*   `description` (_string_, required) Product description.  
    Example: `Number 1 medallion`.
*   `productClass` (_string_, required) Product class of the item.  
    Example: `Merchandise`.
*   `categories` (_array of string_) Merchant categories of the product. A pipe-separated list of category names belongs to this product.  
    Items: Example: `Accessories > Categories > Jewelry, New Arrival > Jewelry`. Example: `Accessories > Categories > Jewelry, New Arrival > Jewelry`.
*   `googleCategory` (_string_) Product categories for Google search.  
    Example: `Accessories > Categories > Jewelry`.
*   `imageUrl` (_string_) Image url of the product.  
    Example: `https://us.ps.com/en/categories/jewelry/numero1/3661601595547.html`.
*   `additionalImageUrls` (_array of string_) Additional image urls of the product.  
    Items: Example: `['https://us.ps.com/en/categories/jewelry/numero1/3661601595547.html','https://us.ps.com/en/categories/jewelry/numero1/3661601595548.html']`. Example: `['https://us.ps.com/en/categories/jewelry/numero1/3661601595547.html','https://us.ps.com/en/categories/jewelry/numero1/3661601595548.html']`.
*   `condition` (_string_) Product condition.  
    Allowed values: `NEW`, `USED`, `REFURBISHED`, `NEW, USED, REFURBISHED` . Example: `NEW`.
*   `availability` (_string_) Free text value that provides information about the availability of the product.  
    Example: `Available`.
*   `listPrice` (_number (double)_, required) Listing price of the product.  
    Example: `60`.
*   `salePrice` (_number (double)_, required) Sale price of the product. It can be same as listing price.  
    Example: `60`.
*   `storePrice` (_number (double)_) Store specific price of the product.  
    Example: `55`.
*   `currencyCode` (_string_) ISO currency code.  
    Default: `USD`. Minimum length: 3. Maximum length: 3. Example: `USD`.
*   `brand` (_string_) Product's brand.  
    Example: `Gucci`.
*   `gtin` (_string_) Product's GTIN. It can be one of UPC, EAN, JAN, ISBN, or ITF-14.  
    Minimum length: 12. Maximum length: 14. Example: `065100004327`.
*   `mpn` (_string_) Manufacturer part number.  
    Example: `100-440-0.750-3434-A`.
*   `gender` (_string_) Free text to provide gender related to the product.  
    Example: `Unisex`.
*   `ageGroup` (_string_) Free text to provide age group related to the product.  
    Example: `10-45`.
*   `subVariantGroupId` (_string_) Sub variant group id.
*   `variantGroupId` (_string_, required) Group id of the product. All the different variations of the product are grouped together under a single group id.  
    Example: `E18PENDANT1`.
*   `color` (_string_) Product color.  
    Example: `Silver`.
*   `colorSwatchUrl` (_string_) The image link for color swatches.
*   `size` (_string_) Product size.  
    Example: `M`.
*   `pattern` (_string_) Free text to provide the product pattern.  
    Example: `Oval`.
*   `sku` (_string_) SKU Id of the product. It can be same as product Id and unique per variation of the product.  
    Example: `3661601595547`.
*   `isOnSale` (_boolean_, required) Specifies whether the product is on sale.  
    Example: `false`.
*   `promotionTitle` (_string_, nullable) Promotion title applicable to the product.  
    Example: `Summer22`.
*   `promotionPrice` (_number (double)_, nullable) Discounted price after applying promotion corresponding to the promotion title.  
    Example: `55`.
*   `customString0` (_string_, nullable) Custom field of type String.
*   `customString1` (_string_, nullable) Custom field of type String.
*   `customString2` (_string_, nullable) Custom field of type String.
*   `customString3` (_string_, nullable) Custom field of type String.
*   `customString4` (_string_, nullable) Custom field of type String.
*   `customString5` (_string_, nullable) Custom field of type String.
*   `customString6` (_string_, nullable) Custom field of type String.
*   `customString7` (_string_, nullable) Custom field of type String.
*   `customString8` (_string_, nullable) Custom field of type String.
*   `customString9` (_string_, nullable) Custom field of type String.
*   `customString10` (_string_, nullable) Custom field of type String.
*   `customString11` (_string_, nullable) Custom field of type String.
*   `customString12` (_string_, nullable) Custom field of type String.
*   `customInt0` (_integer (int32)_, nullable) Custom field of type Integer.
*   `customInt1` (_integer (int32)_, nullable) Custom field of type Integer.
*   `customDecimal0` (_number (float)_, nullable) Custom field of type Decimal.
*   `customDecimal1` (_number (float)_, nullable) Custom field of type Decimal.
*   `customDateTime0` (_integer (int64)_, nullable) Custom field of type Epoch time in millis.
*   `customDateTime1` (_integer (int64)_, nullable) Custom field of type Epoch time in millis.
*   `onlineInventory` (_integer (int32)_, nullable) The current online inventory. Provide a value if online inventory tracking is enabled in CMS (**CMS** > **Store Settings** > **Inventory**).
*   `material` (_string_, nullable) Product material.  
    Example: `Metal`.
*   `manufacturer` (_string_, nullable) Manufacturer of the product.  
    Example: `ABC Jewellers`.
*   `sizeGuideUrl` (_string_, nullable) Image url of the size guide.
*   `manufacturerDetails` (_string_, nullable) Manufacturer details.
*   `manufacturerLocation` (_string_, nullable) Location of product manufacturer.
*   `productLocation` (_string_, nullable) Product manufacturing location.
*   `banner` (_string_, nullable) Banner text. If provided, it will be shown on PLP and PDP screens.
*   `availableStores` (_array of string_, nullable) List of stores where the product is available.
*   `lastUpdate` (_string (date-time)_)
*   `storeInventory` (_integer (int32)_, nullable) The current store inventory. Provide a value if store inventory tracking is enabled in CMS (**CMS** > **Store Settings** > **Inventory**).
*   `isVirtual` (_boolean_, nullable) Specifies whether the product is available only in online mode (true) or not (false).
*   `multipleGTINs` (_array of string_, nullable) If the product supports multiple GTINs, provide all of them.
*   `storeProductDetails` (_StoreProductDetails_)
*   `onlineAvailableStores` (_array of string_, nullable) List of stores where online products are available.
*   `costPrice` (_number (double)_, nullable) Cost of per item.
*   `casePackQuantity` (_integer (int32)_, nullable) Number of items per case pack.
*   `additionalCharges` (_string_, nullable) Additional charges for CA, FR.
*   `casePackID` (_string_, nullable) Identifier for case pack.
*   `availabilityStartTime` (_string (date-time)_, nullable) Start time, when product is visible on POS.
*   `availabilityEndTime` (_string (date-time)_, nullable) End time, when product will not be visible on POS.
*   `price` (_number_, required) Unit price of this line item.
*   `quantity` (_integer (int32)_, required) Quantity of this line item.
*   `fulfillmentLocation` (_Store_, required)
*   `shippingAddress` (_SPIAddress_)
*   `deliveryDate` (_integer (int64)_) Expected delivery date in epoch in millis.
*   `deliveryTimeSlot` (_string_) Expected delivery time slot.  
    Example: `09:00 - 12:00`.

### SpiTaxBucket

All products that require tax calculations are grouped based on their origin and destination addresses, and provided in these tax buckets, along with any applicable tax exemptions.

*   `products` (_array of TaxProduct_, required) List of Products that have the same originating and destination address.
*   `taxExemptions` (_array of SpiTaxExemptionRequest_, nullable) The list of tax exemptions to be applied during tax calculation, this is optional. It is applicable only for tax regions and not applicable for VAT.
*   `originStoreId` (_string_, nullable) The originating store ID where the transaction is occurring.
*   `fromAddress` (_SPIAddress_, required)
*   `toAddress` (_SPIAddress_, required)

### TaxOrVatRecord

List of products and their tax rates.

*   `amount` (_number_, required) Product Amount.
*   `productId` (_string_, required) Product ID.
*   `quantity` (_integer (int32)_, required) Product Quantity.
*   `orderItemId` (_string_, required) Order item ID of the product. This must match the orderItemId sent in the request. Used as a line identifier to resolve conflicts when two line items have the same productId.
*   `description` (_string_, nullable) Product name.
*   `taxClass` (_string_, nullable) Tax class of this product. Can be used for tax calculation. It will be sent if the product feed has it.
*   `taxRecord` (_SpiTax_)
*   `vatRecord` (_SpiVat_)

### SpiBucket

The list of tax buckets which include products, their tax rates, source and destination addresses, and tax exemptions if any.

*   `products` (_array of TaxProduct_, required) List of Products that have the same originating and destination address.
*   `taxExemptions` (_array of SpiTaxExemptionRequest_, nullable) The list of tax exemptions to be applied during tax calculation, this is optional. It is applicable only for tax regions and not applicable for VAT.
*   `originStoreId` (_string_, nullable) The originating store ID where the transaction is occurring.
*   `fromAddress` (_SPIAddress_, required)
*   `toAddress` (_SPIAddress_, required)
*   `records` (_array of TaxOrVatRecord_, required) List of products and their tax rates.

### SpiTaxExemption

List of tax exemptions that are supported by the merchant's tax engine and can be used for tax calculations. Tax exemptions are optional and can have an empty response.

*   `taxExemptCode` (_string_, required) Tax exemption code to be applied, for example, 100, 05, A, or CED.
*   `taxExemptName` (_string_, required) Tax exemption long name, for example, RESALE or TRIBAL GOVERNMENT.
*   `taxExemptionRate` (_number_, required) Tax exemption rate percentage.
*   `taxType` (_string_, nullable) Tax Type.  
    Allowed values: `CLASS`, `CITY`, `DISTRICT`, `COUNTY`, `STATE`, `COUNTRY`, `ITEM_OVERRIDE`, `STORE_OVERRIDE`, `SPECIAL`.
*   `taxClasses` (_array of string_, nullable) Tax classes to which the exemption applies.
*   `countryCode` (_string_, nullable) Country Code where the exemption is applicable.
*   `state` (_string_, nullable) State where the exemption is applicable.
*   `city` (_string_, nullable) City where the exemption is applicable.
*   `postalCode` (_string_, nullable) Postal Code where the exemption is applicable.

### SpiWarrantyCheckResponseItem

Array of eligible warranty products. Empty array if no warranties apply.

*   `warrantyProductId` (_string_) Product ID of the warranty SKU. Must match a product configured in CMS.
*   `name` (_string_) Display name of the warranty shown in the warranty panel and on the receipt.
*   `price` (_number_) Total warranty price for this item.
*   `description` (_string_) Entitlement/terms text shown in the warranty panel and printed on the receipt.
*   `coveredProductIds` (_array of string_) One or more productId values from cartItemList covered by this warranty.
*   `pricingType` (_string_) Pricing type: CATEGORY\_BASED (MVP).
*   `quantity` (_integer (int32)_) Quantity. For CATEGORY\_BASED always 1.

### SpiPromotion

Promotion attributes included in a promotion webhook event. Represents a curated view of the Promotion for external consumers.

*   `promotionId` (_string_, required) Unique identifier assigned to the promotion.
*   `name` (_string_, required) Internal name used to identify the promotion.
*   `title` (_string_, required) Display title shown on the presentation layer.
*   `description` (_string_, required) Detailed description including disclaimer and other information shown on the presentation layer.
*   `inStorePromoCode` (_string_) Promo code entered by the customer for in-store (STORE channel) sales.
*   `appPromoCode` (_string_) Promo code entered by the customer for in-app (APP channel) sales.
*   `onlinePromoCode` (_string_) Promo code entered by the customer for online (WEB channel) sales.
*   `outletPromoCode` (_string_) Promo code entered by the customer for outlet store (OUTLET channel) sales.
*   `startTimeStamp` (_integer (int64)_, required) Promotion start time in Unix epoch milliseconds.
*   `endTimeStamp` (_integer (int64)_, required) Promotion end time in Unix epoch milliseconds.
*   `combinationTypes` (_array of string_) List of promotion types this promotion can be combined with, for example, ORDER\_PERCENT\_OFF or FREE\_SHIPPING.
*   `channel` (_array of string_, required) Sales channels this promotion applies to (ALL, WEB, APP, STORE, OUTLET). Not applicable for auto promotions.
    
    Each item: Different Channel Types supported by the Promotion Engine.
    
      
    Items: Allowed values: `ALL`, `WEB`, `APP`, `STORE`, `OUTLET`.
*   `priorityOrder` (_integer (int32)_) Priority order for promotion application. Lower number means higher priority.
*   `active` (_boolean_, required) Whether the promotion is active. Only active promotions are evaluated by the promo engine.
*   `auto` (_boolean_, required) Whether the promotion is applied automatically without requiring a promo code.
*   `redemptionLimit` (_number (double)_) Maximum number of times this promotion can be redeemed.
*   `promotionType` (_string_, required) Different promotion Types supported by the Promotion Engine.  
    Allowed values: `ORDER_PERCENT_OFF`, `ORDER_AMOUNT_OFF`, `FREE_SHIPPING`, `BXGY`, `FREE_SAMPLES`, `X_FOR_Y`, `PRODUCT_FIXED_AMOUNT`, `FREE_SHIPPING_V2`.
*   `redeems` (_number (double)_) Current number of times this promotion has been redeemed.
*   `percentOff` (_number (double)_) Percentage discount applied by this promotion.
*   `amountOff` (_number_) Fixed amount discounted by this promotion.
*   `freeShippingMethods` (_array of string_) List of shipping method codes eligible for free shipping under this promotion.
*   `hasSingleUsePromoCodes` (_boolean_) Whether this promotion uses single-use (one-time) promo codes.
*   `imageUrl` (_string_) URL of the image associated with this promotion.
*   `freeSamples` (_array of CombinationGroup_) Free sample products awarded when this promotion is applied.
*   `merchantPromotionId` (_string_) Merchant-defined identifier for this promotion.
*   `amount` (_number_) Fixed promotional amount applied to qualifying items.
*   `qualifyingProducts` (_array of CombinationGroup_) Products that must be purchased to qualify for this promotion (used in BXGY and combination promotions).
*   `discountedProducts` (_array of CombinationGroup_) Products that receive the discount when the qualifying condition is met.
*   `discountedGroupProration` (_boolean_) Whether the discount is prorated across items in the discounted product group.
*   `productRules` (_array of PromotionRule_) Rules applied to specific products to determine promotion eligibility.
*   `customerRules` (_array of PromotionRule_) Rules applied to customer attributes to determine promotion eligibility.
*   `locationRules` (_array of PromotionRule_) Rules applied to store location attributes to determine promotion eligibility.
*   `orderRules` (_array of PromotionRule_) Rules applied to order-level attributes to determine promotion eligibility.
*   `bxgyDiscountType` (_string_) Buy X Get Y Discount Types.  
    Allowed values: `PERCENT_OFF`, `AMOUNT_OFF`, `FIXED_PRICE`.

### IMSAddress

IMS-specific address format for inventory management and fulfillment operations. Used for shipFrom and shipTo locations in ASN shipments.

*   `locationId` (_string_) Location identifier.
*   `locationType` (_string_) Type of location (e.g., warehouse, store, distribution center).
*   `name` (_string_) Primary location name.
*   `additionalName` (_string_) Additional location name or identifier.
*   `streetAddress1` (_string_) Street address line 1.
*   `streetAddress2` (_string_) Street address line 2.
*   `city` (_string_) City.
*   `state` (_string_) State or province.
*   `postalCode` (_string_) Postal or ZIP code.
*   `country` (_string_) Country.

### Order

List of orders contained in the shipment.

*   `id` (_string_, required) ID of the entity being transferred.
*   `status` (_string_) Transfer status.  
    Allowed values: `OPEN`, `NEW`, `IN_PROGRESS`, `PARTIAL`, `COMPLETE`, `SHIPPED`, `PARTIAL_SHIPPED`, `DELIVERED`, `RECEIVED`, `CANCELLED`, `PAUSED`, `PARTIAL_PAUSED`.
*   `description` (_string_) Transfer description.
*   `processedBy` (_string_) Processed by ID.
*   `receivedBy` (_string_) Received by ID.
*   `receivedOn` (_integer (int64)_) Received on time represented as milliseconds since epoch.
*   `deliveredTimestamp` (_integer (int64)_) Delivered on time represented as milliseconds since epoch.
*   `scheduledDeliveryTimestamp` (_integer (int64)_) Estimated delivery on time represented as milliseconds since epoch (if not delivered yet).
*   `reasonCode` (_string_, nullable, deprecated) Use reasons instead. Reason code for declining entity transfer.
*   `reasons` (_array of Reason_, nullable) List of reasons pertaining to declining entity transfer. In general, it has a single reason for any declining entity transfer.
*   `trackingNumber` (_string_, nullable) Item level tracking number.
*   `pallets` (_array of Pallet_, required) List of pallets contained in the order.

### FeedFileMetadata

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

### BodyPart

*   `contentDisposition` (_ContentDisposition_)
*   `entity` (_object_)
*   `headers` (_object_)
    
    *   `empty` (_boolean_)
    
    Additional properties: `array of string`.
    
*   `mediaType` (_MediaType_)
*   `messageBodyWorkers` (_MessageBodyWorkers_)
*   `parent` (_MultiPart_)
*   `providers` (_Providers_)
*   `parameterizedHeaders` (_object_)
    
    *   `empty` (_boolean_)
    
    Additional properties: `array of ParameterizedHeader`.
    

### DeliveryItem

List of items in this shipment. This can be a subset of the product list provided at the order level.

*   `productId` (_string_, required) Product ID.
*   `quantity` (_integer (int32)_, required) Number of items.
*   `orderItemId` (_string_) Item sequence/system generated item ID assigned to this line item. Must be unique within this order.  
    Example: `It can have values like 1, 2, 3, etc... which represents line item number within the order.`.

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

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

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

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

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

### Transactions

Loyalty transactions.

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

### Tier

Customer's next tier details.

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

### CustomAttributes

Custom attributes.

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

### SPIShipmentProcessorShippingMethod

This selected or default shipping method must be chosen from the shippingMethodList if an address is provided for the delivery group. Refer to other attributes address and shippingMethodList for more details. It is optional.

*   `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`.
*   `price` (_number_, required) Shipping cost.
*   `sortOrder` (_integer (int32)_) Display Order.  
    Default: `0`.
*   `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.
*   `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.
*   `serviceLevel` (_string_, nullable) Service Level Description.  
    E.g. 3-5 Days, 1-Day, Express, Standard, Overnight.  
    Maximum length: 128. Example: `3-5 Days`.
*   `priceAfterShippingDiscount` (_number_, nullable) Price after applying shipping discount.
*   `itemLevelCharges` (_array of SPIShipmentProcessorItemLevelCharge_, nullable) Item level breakdown for the shipping cost and shipping discount.

### ExternalDateTimeSlot

Delivery date time. It is optional. It must be provided if associate/customer has entered the delivery date for the delivery group.

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

### ExternalAvailableDateTimeSlot

Available delivery date time slots.

*   `slotId` (_string_) Slot ID.  
    Example: `1234`.
*   `date` (_integer (int64)_, required) Delivery date in epoch.
*   `availableTimeSlots` (_array of string_) Available time slots.  
    Items: Example: `["12:00 - 14:00"]`.
    
    _Example_
    
    ```
    [
      "12:00 - 14:00"
    ]
    ```
    
*   `dateTimeSlotType` (_string_, nullable) Time slot type.  
    Allowed values: `Delivery`, `Pickup`. Default: `Delivery`.

### SpiStoreAddress

The store address.

*   `addressLine1` (_string_, required) Address Line 1.
*   `addressLine2` (_string_) Address Line 2.
*   `city` (_string_, required) City.
*   `state` (_string_, required) State.
*   `postalCode` (_string_, required) Postal Code.
*   `countryCode` (_string_, required) Country Code.

### SpiInventory

Inventory details of the product at this store.

*   `availableQuantity` (_integer (int32)_, required) Product quantity available in stock for sale.
*   `quantityOnHand` (_integer (int32)_, required) Product quantity on hand.
*   `allocatedQuantity` (_integer (int32)_, required) Product quantity allocated for shipment or BOPIS orders.
*   `quantityInTransit` (_integer (int32)_, required) Product quantity in transit to this store.
*   `quantityOnOrder` (_integer (int32)_, required) Product quantity on order for this store.

### Message

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

### PaymentData

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

### OrderReturnsPolicy

All applied return policies.

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

### ExchangeOrderPaymentDetail

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

### ReturnProductIdentification

Returning item's orderItemId and quantity.

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

### PaymentInstallmentItem

*   `amount` (_number_)
*   `text` (_string_)

### AccountHolder

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

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

### TransactionSummary

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

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

### TransactionDeposit

Cart summary for deposit of the cart.

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

### PersonalID

Customer/Person Identification Information.

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

### RefundTender

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

### ProductDeltaDeliveryGroup

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

*   `deliveryGroupId` (_string_, required) Delivery group id. Each delivery item from productList and orderProductList has a reference to this ID.  
    Maximum length: 32.
*   `orderItemId` (_string_, required) Sequence number assigned to this line item.  
    Must be unique within this order and must have numerical value.  
    Example: `It can have values like 1, 2, 3, etc...<br> which represents line item number within the order.`.

### ProductDeliveryGroup

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

### DeltaOrderNote

*   `orderId` (_string_) Order Identifier.
*   `noteId` (_string_, required) Unique Identifier for the Note.  
    Maximum length: 128.
*   `noteText` (_string_, required) Note Text.  
    Maximum length: 1024.
*   `transactionId` (_string_, required) Unique Identifier for the Transaction.  
    Maximum length: 128.
*   `createdBy` (_string_, required) Associate Id of the User who created the Note.  
    Maximum length: 128.
*   `modifiedBy` (_string_, nullable) Associate Id of the User who modified the Note.  
    Maximum length: 128.
*   `createdOn` (_integer (int64)_, required) Creation Date of the Note in epoch milliseconds.
*   `modifiedOn` (_integer (int64)_, nullable) Modification Date of the Note in epoch milliseconds.
*   `noteStatus` (_string_, nullable) Note Status for Edit Order, only used in transaction data, Will not persist to Database.  
    Allowed values: `ADD`, `UPDATE`.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### DeltaOrderDetailNote

*   `orderId` (_string_) Order Identifier.
*   `noteId` (_string_, required) Unique Identifier for the Note.  
    Maximum length: 128.
*   `noteText` (_string_, required) Note Text.  
    Maximum length: 1024.
*   `transactionId` (_string_, required) Unique Identifier for the Transaction.  
    Maximum length: 128.
*   `createdBy` (_string_, required) Associate Id of the User who created the Note.  
    Maximum length: 128.
*   `modifiedBy` (_string_, nullable) Associate Id of the User who modified the Note.  
    Maximum length: 128.
*   `createdOn` (_integer (int64)_, required) Creation Date of the Note in epoch milliseconds.
*   `modifiedOn` (_integer (int64)_, nullable) Modification Date of the Note in epoch milliseconds.
*   `orderItemId` (_string_, required) Order Item Id of the product for which the note is added.  
    Maximum length: 128.
*   `noteStatus` (_string_, nullable) Note Status for Edit Order, only used in transaction data, Will not persist to Database.  
    Allowed values: `ADD`, `UPDATE`.
*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)

### ProductPickUpDetail

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

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

### HeaderElement

*   `name` (_string_)
*   `value` (_string_)
*   `parameterCount` (_integer (int32)_)
*   `parameters` (_array of NameValuePair_)

### Hours

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

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

### TaxProduct

List of Products that have the same originating and destination address.

*   `amount` (_number_, required) Product Amount.
*   `productId` (_string_, required) Product ID.
*   `quantity` (_integer (int32)_, required) Product Quantity.
*   `orderItemId` (_string_, required) Order item ID of the product. This must match the orderItemId sent in the request. Used as a line identifier to resolve conflicts when two line items have the same productId.
*   `description` (_string_, nullable) Product name.
*   `taxClass` (_string_, nullable) Tax class of this product. Can be used for tax calculation. It will be sent if the product feed has it.

### SpiTaxExemptionRequest

The list of tax exemptions to be applied during tax calculation, this is optional. It is applicable only for tax regions and not applicable for VAT.

*   `customerName` (_string_, required) Customer name for customer having tax exemption applied.
*   `cardNumber` (_string_, required) Customer tax exemption card number.
*   `taxExemptCode` (_string_, required) Tax exemption code to be applied, for example, 100, 05, A, or CED.
*   `taxExemptName` (_string_, required) Tax exemption long name, for example, RESALE or TRIBAL GOVERNMENT.
*   `taxType` (_string_, nullable) Tax Type.  
    Allowed values: `CLASS`, `CITY`, `DISTRICT`, `COUNTY`, `STATE`, `COUNTRY`, `ITEM_OVERRIDE`, `STORE_OVERRIDE`, `SPECIAL`.

### SpiTax

Tax details for this product. Populate either tax or VAT.

*   `totalTax` (_number_, required) Total tax. Required in case of tax countries. Maps to productList.productTax.totalTax in Order TLOG JSON.
*   `taxRates` (_array of ItemTax_, required) Tax rates. Maps to productList.productTax.taxRates\[\] in Order TLOG JSON.
*   `totalExemptionAmount` (_number_) Total tax exemption amount that was applied. Maps to productList.productTax.taxExemption in Order TLOG JSON.

### SpiVat

VAT details for this product. Populate either tax or VAT.

*   `totalVat` (_number_, required) Total VAT. Required in case of VAT countries. Maps to productList.productTax.valueAddedTax in Order/Cart.
*   `vatRates` (_array of ItemTax_, required) VAT rates. Maps to productList.productTax.vatRates\[\] in Order TLOG JSON.
*   `totalExemptionAmount` (_number_, required) Total tax exemption amount that was applied. Maps to productList.productTax.taxExemption in Order TLOG JSON.

### Pallet

List of pallets contained in the order.

*   `id` (_string_, required) ID of the entity being transferred.
*   `status` (_string_) Transfer status.  
    Allowed values: `OPEN`, `NEW`, `IN_PROGRESS`, `PARTIAL`, `COMPLETE`, `SHIPPED`, `PARTIAL_SHIPPED`, `DELIVERED`, `RECEIVED`, `CANCELLED`, `PAUSED`, `PARTIAL_PAUSED`.
*   `description` (_string_) Transfer description.
*   `processedBy` (_string_) Processed by ID.
*   `receivedBy` (_string_) Received by ID.
*   `receivedOn` (_integer (int64)_) Received on time represented as milliseconds since epoch.
*   `deliveredTimestamp` (_integer (int64)_) Delivered on time represented as milliseconds since epoch.
*   `scheduledDeliveryTimestamp` (_integer (int64)_) Estimated delivery on time represented as milliseconds since epoch (if not delivered yet).
*   `reasonCode` (_string_, nullable, deprecated) Use reasons instead. Reason code for declining entity transfer.
*   `reasons` (_array of Reason_, nullable) List of reasons pertaining to declining entity transfer. In general, it has a single reason for any declining entity transfer.
*   `trackingNumber` (_string_, nullable) Item level tracking number.
*   `cartons` (_array of Carton_, required) List of cartons contained in the pallet.

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

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

### TransactionActivity

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

### CustomValue

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

### SPIShipmentProcessorItemLevelCharge

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.

### PaymentToken

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

### NameValuePair

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

### ItemTax

Individual tax rates and their details. After the sale transaction, the TLog JSON will contain the product's tax rates corresponding to this class in productList\[\].productTax.taxRates and orderProductList\[\].productTax.taxRates.

*   `taxRate` (_number_, required) % tax/vat rate.
*   `taxAmount` (_number_, required) Sum of tax amounts of a particular type (group of TaxType, TaxClass, TaxName, TaxRate) at the time of purchase. This represents the total line tax and should be calculated considering the quantity sent in the request.
*   `taxType` (_string_, required) Indicates tax type, such as COUNTRY, CITY, or STATE.  
    Allowed values: `CLASS`, `CITY`, `DISTRICT`, `COUNTY`, `STATE`, `COUNTRY`, `ITEM_OVERRIDE`, `STORE_OVERRIDE`, `SPECIAL`.
*   `taxCode` (_string_, required) Tax identifier. This is a unique identifier for tax rate per item.
*   `taxClass` (_string_, required) Tax class to which this tax rate belongs, for example, 1025 or T1C.
*   `perUnitTaxAmount` (_number_, required) The tax amount per unit in the case of multiple quantities of the product.
*   `highPrecisionTaxAmount` (_number_, nullable) Tax amount of a particular type (group of TaxType, TaxClass, TaxName, TaxRate) at the time of purchase with high precision (Scale / Number of decimal digits = 5). Required for Portugal region.
*   `taxName` (_string_, nullable) Tax name, for example, Jurisdiction, MTA, BTW Hoog, or BTW Laag.
*   `isExempt` (_boolean_) Indicates whether tax is exempted.  
    Default: `false`.
*   `taxExemptCode` (_string_, nullable) Tax Exemption Identifier to be provided in case this tax was exempted.
*   `taxExemptionAmount` (_number_, nullable) The tax amount value that was exempted.
*   `countryCode` (_string_, required) Country code.
*   `state` (_string_, required) State.
*   `postalCode` (_string_, required) Postal code.

### Carton

List of cartons contained in the pallet.

*   `id` (_string_, required) ID of the entity being transferred.
*   `status` (_string_) Transfer status.  
    Allowed values: `OPEN`, `NEW`, `IN_PROGRESS`, `PARTIAL`, `COMPLETE`, `SHIPPED`, `PARTIAL_SHIPPED`, `DELIVERED`, `RECEIVED`, `CANCELLED`, `PAUSED`, `PARTIAL_PAUSED`.
*   `description` (_string_) Transfer description.
*   `processedBy` (_string_) Processed by ID.
*   `receivedBy` (_string_) Received by ID.
*   `receivedOn` (_integer (int64)_) Received on time represented as milliseconds since epoch.
*   `deliveredTimestamp` (_integer (int64)_) Delivered on time represented as milliseconds since epoch.
*   `scheduledDeliveryTimestamp` (_integer (int64)_) Estimated delivery on time represented as milliseconds since epoch (if not delivered yet).
*   `reasonCode` (_string_, nullable, deprecated) Use reasons instead. Reason code for declining entity transfer.
*   `reasons` (_array of Reason_, nullable) List of reasons pertaining to declining entity transfer. In general, it has a single reason for any declining entity transfer.
*   `trackingNumber` (_string_, nullable) Item level tracking number.
*   `items` (_array of IMSInventoryProduct_, required)
*   `hasSerializedProduct` (_boolean_) App uses this boolean to determine the receiving of the entire pallet or carton.
*   `cartonShipments` (_array of Shipment_) List of box shipments contained in the carton.

### PaymentTokenHeader

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

### IMSInventoryProduct

Specific to inventory product.

*   `id` (_string_, required) ID of the entity being transferred.
*   `status` (_string_) Transfer status.  
    Allowed values: `OPEN`, `NEW`, `IN_PROGRESS`, `PARTIAL`, `COMPLETE`, `SHIPPED`, `PARTIAL_SHIPPED`, `DELIVERED`, `RECEIVED`, `CANCELLED`, `PAUSED`, `PARTIAL_PAUSED`.
*   `description` (_string_) Transfer description.
*   `processedBy` (_string_) Processed by ID.
*   `receivedBy` (_string_) Received by ID.
*   `receivedOn` (_integer (int64)_) Received on time represented as milliseconds since epoch.
*   `deliveredTimestamp` (_integer (int64)_) Delivered on time represented as milliseconds since epoch.
*   `scheduledDeliveryTimestamp` (_integer (int64)_) Estimated delivery on time represented as milliseconds since epoch (if not delivered yet).
*   `reasonCode` (_string_, nullable, deprecated) Use reasons instead. Reason code for declining entity transfer.
*   `reasons` (_array of Reason_, nullable) List of reasons pertaining to declining entity transfer. In general, it has a single reason for any declining entity transfer.
*   `trackingNumber` (_string_, nullable) Item level tracking number.
*   `productTitle` (_string_) Product title.
*   `productImageUrl` (_string_) Product image URL.
*   `color` (_string_) Product color.
*   `size` (_string_) Product size.
*   `gtin` (_string_) Product UPC code.
*   `vendorNumber` (_string_) Product vendor number.
*   `quantity` (_integer (int32)_, required) Product quantity being transferred.  
    Minimum: 1.
*   `quantityTransferred` (_integer (int32)_) Actual product quantity transferred.
*   `quantityReceived` (_integer (int32)_) Actual product quantity received.
*   `serialNumberedItems` (_array of ClearanceItem_)
*   `fullPriceSerialNumbers` (_array of string_) Serial numbers.
*   `removedSerialNumbers` (_array of string_) Removed serial numbers. This is for the backend to remove serial numbers from the database.
*   `serialNumberRequired` (_boolean_) Serial number required.
*   `scannedSerialNumbers` (_array of string_) Scanned serial numbers.
*   `externalDocNumber` (_string_) External Doc Number.
*   `externalLineNumber` (_string_) External Line Number.
*   `itemHierarchyId` (_string_) Item hierarchy ID inside a container.
*   `costPrice` (_number (double)_) Cost price of each item.
*   `casePackQuantity` (_integer (int32)_) Quantity of item per case pack.
*   `casePackID` (_string_) ID of case packed products.
*   `inventoryTransferDetailId` (_string_) When a user manually adds an item to transfer, the backend allocates a UUID to the field and returns it in the response. For all subsequent calls from the app, the same UUID is provided in the request and is used by the backend to determine whether to update or insert the item.
*   `salesPrice` (_number_) Sales price of the product.
*   `shipper` (_string_) Carrier name, for example, FedEx or UPS.

### CustomerMaskRequest

*   `idType` (_string_)  
    Allowed values: `CUSTOMER_ID`, `CUSTOMER_EMAIL`, `CUSTOMER_ORDER_ID`, `MASKED_FIELD`.
*   `ids` (_array of string_)
*   `maskRunType` (_string_)  
    Allowed values: `REPORT_ONLY`, `REPORT_AND_MASK`.

### MerchantNotification

*   `merchantId` (_string_)
*   `locale` (_string_)
*   `region` (_string_)
*   `notificationId` (_string_)
*   `notificationJobId` (_string_)
*   `recipients` (_RecipientData_)
*   `notificationDetail` (_MerchantNotificationDetail_)
*   `status` (_string_)  
    Allowed values: `CREATED`, `READY_TO_SEND`, `SENDING`, `PARTIALLY_SENT`, `SENT`, `NOT_SENT`, `FAILED`, `TERMINATED`.
*   `sentOn` (_integer (int64)_)
*   `sentCount` (_integer (int32)_)
*   `failedCount` (_integer (int32)_)

### MerchantNotificationDetail

*   `notificationId` (_string_)
*   `title` (_string_)
*   `message` (_string_)
*   `icon` (_string_)  
    Allowed values: `PROMOTION`, `CART`, `WISHLIST`.
*   `mediaUrl` (_string_)
*   `deepLink` (_string_)
*   `sendToInbox` (_string_)

### MerchantNotificationRequest

*   `notifications` (_array of MerchantNotification_)

### RecipientData

*   `emails` (_array of string_)
*   `installationIds` (_array of string_)

### SingleUsePromoCodesUploadSchedule

Promotion feed source for one-time use promo code.

*   `schedule` (_string_)
*   `feedSourceParams` (_FeedSource_)
*   `jobId` (_string_)
*   `startDate` (_string_)
*   `endDate` (_string_)
*   `region` (_string_)
*   `locale` (_string_)
*   `nodeExecuteOn` (_string_)
*   `merchantId` (_string_)
*   `feedType` (_string_)  
    Allowed values: `PRODUCT`, `PRODUCT_BUNDLE`, `STORE`, `LAYOUT`, `PRODUCT_PROMOTION`, `PRODUCT_CATEGORY`, `PRODUCT_CATEGORY_PROMOTION`, `PROMOTION`, `STORE_INVENTORY_FULL`, `STORE_INVENTORY_DELTA`, `SOCIAL_MEDIA`, `ONE_TIME_PROMOTION_CODE`, `PRODUCT_DELTA`, `CATEGORY`, `ORDER_LIST`, `ORDER_DETAILS`, `RECOMMENDATION`, `TAX_RATE`, `PIPELINE`, `STORE_ASSOCIATES`, `PREDICTSPRING_PROMOTION`, `REWARD`, `CASH_REWARD`, `ASN`, `CORP_TRANSFER`, `POS_PROVISIONING`, `SYNONYM`, `STORE_AREA_GOAL`, `STORE_AREA_HIERARCHY`, `OMS`, `PRODUCT_PRICING`, `PRODUCT_SIZING`, `PRODUCT_INVENTORY`, `PRODUCT_PRICING_DELTA`, `PRODUCT_SIZING_DELTA`, `PRODUCT_INVENTORY_DELTA`, `STORE_DEVICE`, `BOPIS_CANCEL_ORDER`, `PURCHASE_ORDER`, `OFFLINE_PROMOTION`, `PREDICTSPRING_PROMOTION_V2`, `EXPIRED_PAYMENT_LINK_CLEANUP`, `SINGLE_USE_PROMO_CODES`, `STORE_GROUP_FULL`, `STORE_GROUP_DELTA`.
*   `active` (_boolean_)
*   `backUp` (_boolean_)

### OneTimePromotionCodeLookupRequest

*   `promotionCodes` (_array of string_)

### MultivaluedMapStringParameterizedHeader

*   `empty` (_boolean_)

Additional properties: `array of ParameterizedHeader`.

### MultivaluedMapStringString

*   `empty` (_boolean_)

Additional properties: `array of string`.

### FulfillmentLocation

Store details for the item's fulfillment location. This field is required if an item is SHIP\_TO\_HOME or SHIP\_TO\_STORE.

*   `storeId` (_string_) Store ID.