---
schema_version: "1"
id: c29fcbf8aaecb0ae2256f7325c7733da20f1521d9d1da916b26ae1fadd1ece90
title: Shopper Customers
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/commerce-api/references/generated-api-specs/shopper-customers.md
canonical_url: https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-customers
source_site: developer.salesforce.com
content_type: documentation
content_hash: 8e748ad9775cec242b5eaf33791fc8d80e0765806a66b5293d43406252f72a77
products:
  - B2C Commerce API
  - Salesforce APIs
---
Shopper Customers

# Shopper Customers

[Download API specification](https://developer.salesforce.com/static/commercecloud/commerce-api/shopper-customers/shopper-customers-oas-v1-public.yaml)

## API Overview

The Shopper Customers API enables you to develop functionality that lets customers log in, and manage their profiles and product lists. Profile management includes ability for shoppers to add or modify addresses and payment methods, and add or modify products to wishlists or favorites. Commerce Cloud provides a rich set of Authentication APIs that include logging in guest shoppers, registered shoppers, agents on behalf of customers and a trusted system authentication on behalf of customers. In all authentication scenarios involving customers, a JSON Web Token (JWT) is generated in Commerce Cloud. Using the JWT, customers can access other Shopper API resources like Orders and Baskets. The application must refresh the JWT every 30 minutes to save the shopper activity (for example, retain products in a shopper's cart) for prolonged periods of time.

### Authentication & Authorization

The client requesting the customer information must have access to the Customer and Product List resources. The Shopper Customer API requires a shopper access token from the Shopper Login and API Access Service (SLAS).

You must include the relevant scope(s) in the client ID used to generate the SLAS token. For a full list of permissions, see the [Authorization Scopes Catalog.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/auth-z-scope-catalog.html)

For details on how to request a shopper access token from SLAS, see the guest user flows for [public clients](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-public-client.html#guest-user) and [private clients](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-private-client.html#guest-user) in the SLAS guides.

### Customization

#### Custom Properties

This API supports custom properties (prefixed with `c_`). For details, see [Custom Properties.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/custom-properties.html)

#### Hooks

For details on working with hooks, see [Extensibility with Hooks.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/extensibility_via_hooks.html)

### Response Details

#### Personalization

Responses from this API are not personalized via the Shopper Context API.

#### Caching

Responses from this API are not cached. Customer data is personal and unique to each shopper.

#### Timeouts

Shopper API requests must respond within 10 seconds, including any hook execution. If a response exceeds this threshold, an HTTP 504 status code is returned. For details, see [Timeouts and Limits.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/timeouts-limits.html)

#### Error Handling

Error responses follow the [RFC 7807](https://datatracker.ietf.org/doc/html/rfc7807) problem detail format. To trace errors, include a `correlation-id` header in your request — the response returns it as `x-correlation-id`. For details, see [HTTP Status Codes and Errors.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/error-response-codes.html)

### Use Cases

#### Get Customer Profile

Retrieve a registered customer profile. Requires a registered shopper SLAS token.

```sh
curl "https://{shortCode}.api.commercecloud.salesforce.com/customer/shopper-customers/v1/organizations/{organizationId}/customers/{customerId}?siteId=RefArch" \
  -H "Authorization: Bearer {access_token}"
```

#### Register a New Customer

In this use case, a customer who is browsing on a commerce shopping app built using B2C Commerce APIs would like to create a customer profile, so that they can track their order when logged in on the next visit.

The API flow is shown in the following diagram:

![b2c-commerce-shopper-customers-screenshot-1.png](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/b2c-commerce-shopper-customers-screenshot-1.png)

1.  The shopper opens the shopping app.
2.  Request an access token from SLAS. For details, see the guest user flows for [public clients](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-public-client.html#guest-user) and [private clients](https://developer.salesforce.com/docs/commerce/commerce-api/guide/slas-private-client.html#guest-user) in the SLAS guides.
3.  The SLAS API responds with the shopper access token (JWT).
4.  The shopper adds a product to their basket.
5.  Use the Shopper Baskets API to create a basket. The shopper JWT from SLAS is supplied in the authorization header.
6.  Save the basket with a registered user customer ID (even though the shopper is still a guest). The shopper JWT from SLAS is supplied in the authorization header.
7.  The shopper creates a profile.
8.  Use the Shopper Customers API to register the customer.

#### Authenticate a Trusted System on Behalf of a Customer

In this cross-cloud use case, a Experience Cloud user places an order on Commerce Cloud from the Experience Cloud using the platform APIs. The Experience Cloud app is a trusted system that has a trusted relationship with Commerce Cloud using the OAuth client credentials grant against the Commerce Cloud Account Manager. The Experience Cloud user logs in with a redirect to Salesforce IDM and after successful login, the client application is able to call B2C Commerce APIs on behalf of the customer. Commerce Cloud returns a JWT for the Experience Cloud user and the Experience Cloud user is able to place orders on Commerce Cloud.

The API flow is shown in the following diagram:

![b2c-commerce-shopper-customers-screenshot-2.png](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/b2c-commerce-shopper-customers-screenshot-2.png)

#### Reset Customer Password

In this use case, a shopper who is browsing on a commerce shopping app, built using B2C Commerce APIs, requests to reset their password. The app verifies the shopper's credentials and returns a 404 if verification fails. Otherwise, when the shopper requests their password to be reset, the app first creates a password reset token using the shopper’s login ID, and an account manager token (obtained using the client credentials grant). After the app has the password reset token, the app can prompt the shopper for new password. Any app-level customization, such as sending a password reset email, can be done at this step. Finally, the app calls the reset endpoint to reset the customer’s password.

![b2c-commerce-shopper-customers-screenshot-3.png](https://resources.docs.salesforce.com/rel1/doc/en-us/static/misc/b2c-commerce-shopper-customers-screenshot-3.png)

#### Update Shopper LoginId

In this use case, in order to update a shopper's loginId, the PATCH /customers/{customerId} call can be used starting B2C Commerce Cloud GA release 24.7. The new field in the request called `currentPassword` is mandatory and needs to match the shopper's existing password. If this field is not provided or does not match the existing shopper password when trying to update loginId, a HTTP 400 response will be returned. If the loginId field is not sent in the PATCH request body, the `currentPassword` field is not required. **Note:** After the `loginId` is updated, a new SLAS token must be fetched for the shopper for subsequent calls.

### Related APIs

*   [Customers (Admin)](https://developer.salesforce.com/docs/commerce/commerce-api/references/customers?meta=Summary) — Manage customer records, addresses, and credentials.

**Version:** 1.10.1

## Servers

*   `https://{shortCode}.api.commercecloud.salesforce.com/customer/shopper-customers/v1`
    *   `shortCode (default shortCode) An eight-character string assigned to a realm for routing purposes. See [Base URL and Request Formation.](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html)`

## Security

*   `ShopperToken` (oauth2) ShopperToken authentication follows the authorization code grant flow, as defined by the OAuth 2.1 standard. Depending on the type of OAuth client (public or private), this authorization flow has further requirements. For a detailed description of the authorization flow, see the [SLAS overview](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=shopper-login:Summary). A shopper token allows you to access the Shopper API endpoints of both the Open Commerce API (OCAPI) and the B2C Commerce API. These endpoints can be used to build headless storefronts and other applications. The `ShopperToken` security scheme is a parent of other security schemes, such as `ShopperTokenTsob`. A Shopper API endpoint can require a specific child scheme (`ShopperTokenTsob`, for example) that cannot be accessed with a regular shopper token.
    *   OAuth flow clientCredentials (tokenUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/token)
    *   Scope sfcc.shopper-customers.register: Shopper Customers Register scope READONLY
    *   Scope sfcc.shopper-myaccount.baskets: Shopper MyAccount Baskets scope READONLY
    *   Scope sfcc.shopper-myaccount.orders: Shopper MyAccount Orders scope READONLY
    *   Scope sfcc.shopper-myaccount.paymentinstruments.rw: Shopper MyAccount PaymentInstruments scope
    *   Scope sfcc.shopper-myaccount.productlists: Shopper MyAccount ProductLists scope READONLY
    *   Scope sfcc.shopper-myaccount.productlists.rw: Shopper MyAccount ProductLists scope
    *   Scope sfcc.shopper-productlists: Shopper ProductLists scope READONLY
    *   OAuth flow authorizationCode (authorizationUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/authorize, tokenUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/token)
    *   Scope sfcc.shopper-customers.register: Shopper Customers Register scope READONLY
    *   Scope sfcc.shopper-myaccount.baskets: Shopper MyAccount Baskets scope READONLY
    *   Scope sfcc.shopper-myaccount.orders: Shopper MyAccount Orders scope READONLY
    *   Scope sfcc.shopper-myaccount.paymentinstruments.rw: Shopper MyAccount PaymentInstruments scope
    *   Scope sfcc.shopper-myaccount.productlists: Shopper MyAccount ProductLists scope READONLY
    *   Scope sfcc.shopper-myaccount.productlists.rw: Shopper MyAccount ProductLists scope
    *   Scope sfcc.shopper-productlists: Shopper ProductLists scope READONLY
*   `RegisteredShopperToken` (oauth2) `RegisteredShopperToken` is a child of the `ShopperToken` security scheme and restricts access to a **registered (authenticated) shopper**. Access is only granted to a shopper token that represents a registered shopper; a guest shopper token is rejected. Endpoints secured with `RegisteredShopperToken` operate on identity-bound resources of a registered shopper, such as their addresses, payment instruments, password, or saved product lists. Besides these endpoints that require this specific subtype, all other endpoints secured by the `ShopperToken` parent scheme can be accessed with a `RegisteredShopperToken`. To get a `RegisteredShopperToken`, the shopper must authenticate with SLAS (for example, through the authorization code flow or the [login endpoint](https://developer.salesforce.com/docs/commerce/commerce-api/references/auth?meta=authenticateCustomer)). For details, see the [SLAS overview](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=shopper-login:Summary).
    *   OAuth flow authorizationCode (authorizationUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/authorize, tokenUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/token)
    *   Scope sfcc.shopper-customers.login: Shopper Customers Login scope READONLY
    *   Scope sfcc.shopper-myaccount: Shopper MyAccount scope READONLY
    *   Scope sfcc.shopper-myaccount.rw: Shopper MyAccount scope
    *   Scope sfcc.shopper-myaccount.addresses: Shopper MyAccount Addresses scope READONLY
    *   Scope sfcc.shopper-myaccount.addresses.rw: Shopper MyAccount Addresses scope
    *   Scope sfcc.shopper-myaccount.paymentinstruments: Shopper MyAccount PaymentInstruments scope READONLY
    *   Scope sfcc.shopper-myaccount.paymentinstruments.rw: Shopper MyAccount PaymentInstruments scope
*   `AmOAuth2` (oauth2) AccountManager OAuth 2.0 bearer token Authentication.
    *   OAuth flow clientCredentials (tokenUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
    *   Scope sfcc.shopper-customers.login: Shopper Customers Login scope READONLY
    *   OAuth flow authorizationCode (authorizationUrl: https://account.demandware.com/dwsso/oauth2/authorize, tokenUrl: https://account.demandware.com/dwsso/oauth2/access\_token, refreshUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
*   `ShopperClientContextToken` (oauth2) ShopperClientContextToken is a separate security scheme used to track and validate client context information. It is valid for Guest shoppers flows only using SLAS private clients. For registered shoppers, use existing ShopperToken flows. For authentication details, see the [SLAS overview](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=shopper-login:Summary). This token allows access to Shopper API endpoints for guest shoppers only.
    *   OAuth flow clientCredentials (tokenUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/token?hint=client\_context)
    *   Scope sfcc.shopper-customers.register: Shopper Customers Register scope READONLY
    *   Scope sfcc.shopper-myaccount.baskets: Shopper MyAccount Baskets scope READONLY
    *   Scope sfcc.shopper-myaccount.orders: Shopper MyAccount Orders scope READONLY
    *   Scope sfcc.shopper-myaccount.paymentinstruments.rw: Shopper MyAccount PaymentInstruments scope
    *   Scope sfcc.shopper-myaccount.productlists: Shopper MyAccount ProductLists scope READONLY
    *   Scope sfcc.shopper-myaccount.productlists.rw: Shopper MyAccount ProductLists scope
    *   Scope sfcc.shopper-productlists: Shopper ProductLists scope READONLY

## Operations

### POST Register a new customer.

`POST /organizations/{organizationId}/customers`

Operation ID: `registerCustomer`. Security: ShopperToken (sfcc.shopper-customers.register, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-customers.register, sfcc.shopper-standard).

Mandatory data includes the credentials, profile last name, and email. This endpoint requires a guest JSON Web Token (JWT) from the [Shopper Login and API Access Service](https://developer.salesforce.com/docs/commerce/commerce-api/references/auth?meta=getAccessToken). The return type object for this endpoint is a common customer object shared by multiple Shopper Customer endpoints. In this case, all customer object details are returned, but attributes that are not included in the response, although they might be part of the customer object, are ignored. For example, although address information is included in the customer object, it is not displayed in the response for this endpoint and is ignored.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: CustomerRegistrationBody_

```
{
  "password": "12345!aBcD",
  "customer": {
    "login": "jsmith",
    "email": "jsmith@test.com",
    "firstName": "John",
    "lastName": "Smith"
  }
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `Customer`.
    
    _Example: customerRegistrationResponse_
    
    ```
    {
      "authType": "registered",
      "crmContactId": "003xx000004WhKe",
      "creationDate": "2020-02-13T17:44:15.892Z",
      "customerId": "abkd9LhOWzAiAFubdEDChtkMHW",
      "customerNo": "00006002",
      "email": "jsmith@test.com",
      "emailVerified": false,
      "enabled": true,
      "firstName": "John",
      "hasPassword": true,
      "lastModified": "2020-02-13T17:44:15.898Z",
      "lastName": "Smith",
      "login": "jsmith"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **401** In the case of type credentials, the username is unknown or the password does not match. In the case of type session, the session is no longer active or the dwsecuretoken value is invalid. In both cases, the customer is disabled or locked.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer401_
    
    ```
    {
      "title": "Authentication Failed",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/authentication-failed",
      "detail": "Customer authentication based on JohnSmith failed.",
      "credentialType": "JohnSmith"
    }
    ```
    

### POST Reset customer password after obtaining a reset token.

`POST /organizations/{organizationId}/customers/password/actions/reset`

Operation ID: `resetPassword`. Security: AmOAuth2 (sfcc.shopper-customers.login).

This is the second step in the reset customer password flow, in which a customer password is reset by providing new credentials along with a reset token. This call should be preceded by a call to the /create-reset-token endpoint.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: ResetPasswordBody_

```
{
  "resetToken": "R1e2s3e4t5T6o7k8e9n0",
  "login": "janedoe@test.com",
  "newPassword": "p@assword2"
}
```

#### Responses

*   **204** Reset password successful. No Content.
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    

### POST Get reset password token.

`POST /organizations/{organizationId}/customers/password/actions/create-reset-token`

Operation ID: `getResetPasswordToken`. Security: AmOAuth2 (sfcc.shopper-customers.login).

This is the first step in the reset customer password flow, in which a password reset token is requested for future use to reset a customer password. This call should be followed by a call to the /reset endpoint.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: ResetPasswordTokenBody_

```
{
  "login": "janedoe@test.com"
}
```

#### Responses

*   **200** Reset password token generated and returned successfully.
    
    Media type: `application/json`. Schema: `ResetPasswordToken`.
    
    _Example: getResetPasswordTokenSuccess_
    
    ```
    {
      "login": "janedoe@test.com",
      "email": "janedoe@test.com",
      "resetToken": "R1e2s3e4t5T6o7k8e9n0",
      "expiresInMinutes": 30
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    

### GET Gets the new external profile for a customer. This endpoint only accepts a registered customer ShopperToken (JWT).

`GET /organizations/{organizationId}/customers/external-profile`

Operation ID: `getExternalProfile`. Security: AmOAuth2 (sfcc.shopper-customers.login).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `externalId` (query, string, required) The External ID of the customer.  
    Minimum length: 1.
*   `authenticationProviderId` (query, string, required) The authentication Provider Id.  
    Minimum length: 1.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerExternalProfile`.
    
    _Example: getExternalProfileSuccess_
    
    ```
    {
      "authenticationProviderId": "Google",
      "firstName": "John",
      "lastName": "Doe",
      "customerId": "bfqcN48dn2y4EaV9Qj5bNpVJVj",
      "email": "testCustomer@test.com",
      "externalId": "testCustomer@test.com"
    }
    ```
    
*   **400** Customer ExternalId URL parameter is not valid.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: getExternalProfile400_
    
    ```
    {
      "title": "Invalid Customer External Profile",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer-external-profile",
      "detail": "The customer external profile is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: getExternalProfile404_
    
    ```
    {
      "title": "Not Found",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/not-found",
      "detail": "No customer with external profile with ID 'abfTWMDZOgi3JPzkHjv9IhmziI' could be found.",
      "externalId": "abfTWMDZOgi3JPzkHjv9IhmziI"
    }
    ```
    

### POST Register a new external profile for a customer. This endpoint accepts a guest customer ShopperToken (JWT) only.

`POST /organizations/{organizationId}/customers/external-profile`

Operation ID: `registerExternalProfile`. Security: ShopperToken (sfcc.shopper-customers.register, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-customers.register, sfcc.shopper-standard).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: ExternalProfileBody_

```
{
  "authenticationProviderId": "Google",
  "firstName": "John",
  "lastName": "Doe",
  "email": "testCustomer@test.com",
  "externalId": "testCustomer@test.com"
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerExternalProfile`.
    
    _Example registerExternalProfileSuccess: same as GET /organizations/{organizationId}/customers/external-profile 200 response._
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **401** In the case of type credentials, the username is unknown or the password does not match. In the case of type session, the session is no longer active or the dwsecuretoken value is invalid. In both cases, the customer is disabled or locked.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example registerCustomer401: same as POST /organizations/{organizationId}/customers 401 response._
    

### GET Get a customer and all existing addresses and payment instruments associated with the requested customer. This endpoint only accepts a registered customer ShopperToken (JWT).

`GET /organizations/{organizationId}/customers/{customerId}`

Operation ID: `getCustomer`. Security: RegisteredShopperToken (sfcc.shopper-myaccount, sfcc.shopper-myaccount.rw, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `expand` (query, array of string, style: form, explode: false)
    
    Expands the response with additional customer data.
    
    *   addresses (Default)
    *   paymentinstruments (Default)
    *   paymentmethodreferences (Requires Salesforce Payments integration; ignored otherwise)
    *   none (Excludes all expansion data)
    
      
    Items: Allowed values: `none`, `addresses`, `paymentinstruments`, `paymentmethodreferences`.
    
    _Example_
    
    ```
    [
      "addresses",
      "paymentinstruments",
      "paymentmethodreferences"
    ]
    ```
    
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `Customer`.
    
    _Example: getCustomerSuccess_
    
    ```
    {
      "addresses": [
        {
          "address1": "10 Presidential Way",
          "addressId": "me",
          "city": "Woburn",
          "countryCode": "US",
          "firstName": "John",
          "fullName": "John M. Smith",
          "lastName": "Smith",
          "postalCode": "01827",
          "salutation": "Mr.",
          "stateCode": "MA"
        }
      ],
      "authType": "registered",
      "crmContactId": "003xx000004WhKe",
      "creationDate": "2020-02-14T20:39:53.818Z",
      "customerId": "abfTEMDZOgi3JPrkHjv9IhoziM",
      "customerNo": "00010009",
      "email": "jsmith@demandware.com",
      "emailVerified": true,
      "firstName": "John",
      "gender": 1,
      "hasPassword": true,
      "lastName": "Smith",
      "paymentInstruments": [
        {
          "bankRoutingNumber": "0763564",
          "creationDate": "2017-08-20T11:30:36.000Z",
          "lastModified": "2017-08-20T11:30:50.000Z",
          "maskedGiftCertificateCode": "***********ode",
          "paymentCard": {
            "cardType": "Visa",
            "creditCardExpired": false,
            "expirationMonth": 2,
            "expirationYear": 2022,
            "holder": "John Smith",
            "maskedNumber": "***********ber2",
            "numberLastDigits": "ber2"
          },
          "paymentInstrumentId": "beybQiWcyatEEaaadniwhKxxFl",
          "paymentMethodId": "CREDIT_CARD"
        }
      ],
      "phoneBusiness": "234560003",
      "phoneHome": "123450003",
      "phoneMobile": "345670003"
    }
    ```
    
    _Example: getCustomerSuccessWithSalesforcePayments_
    
    ```
    {
      "addresses": [
        {
          "address1": "10 Presidential Way",
          "addressId": "me",
          "city": "Woburn",
          "countryCode": "US",
          "firstName": "John",
          "fullName": "John M. Smith",
          "lastName": "Smith",
          "postalCode": "01827",
          "salutation": "Mr.",
          "stateCode": "MA"
        }
      ],
      "authType": "registered",
      "crmContactId": "003xx000004WhKe",
      "creationDate": "2020-02-14T20:39:53.818Z",
      "customerId": "abfTEMDZOgi3JPrkHjv9IhoziM",
      "customerNo": "00010009",
      "email": "jsmith@demandware.com",
      "firstName": "John",
      "gender": 1,
      "hasPassword": false,
      "lastName": "Smith",
      "paymentInstruments": [],
      "paymentMethodReferences": [
        {
          "type": "card",
          "id": "pm_card_1234567890",
          "brand": "visa",
          "last4": "4242",
          "expiryMonth": 12,
          "expiryYear": 2028,
          "accountId": "acct_1RegszI5I22eU0I3"
        },
        {
          "type": "sepa_debit",
          "id": "pm_sepa_debit_1234567890",
          "last4": "5678",
          "accountHolderName": "John Smith",
          "accountId": "acct_1RegszI5I22eU0I3"
        }
      ],
      "phoneBusiness": "234560003",
      "phoneHome": "123450003",
      "phoneMobile": "345670003"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: getCustomer404_
    
    ```
    {
      "title": "Not Found",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/not-found",
      "detail": "No customer with ID 'abfTWMDZOgi3JPzkHjv9IhmziI' could be found.",
      "customerId": "abfTWMDZOgi3JPzkHjv9IhmziI"
    }
    ```
    

### PATCH Update a customer. This endpoint only accepts a registered customer ShopperToken (JWT).

`PATCH /organizations/{organizationId}/customers/{customerId}`

Operation ID: `updateCustomer`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.rw, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: UpdateCustomerBody_

```
{
  "customerNo": "00010009",
  "firstName": "John",
  "lastName": "Wild",
  "email": "jwild@yourstore.com",
  "fax": "+49 03641 78393 346"
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `Customer`.
    
    _Example: updateCustomerResponse_
    
    ```
    {
      "authType": "registered",
      "crmContactId": "003xx000004WhKe",
      "creationDate": "2020-02-14T20:39:53.818Z",
      "customerId": "abfTEMDZOgi3JPrkHjv9IhoziM",
      "customerNo": "00010009",
      "email": "jwild@yourstore.com",
      "emailVerified": true,
      "enabled": true,
      "fax": "+49 03641 78393 346",
      "firstName": "John",
      "hasPassword": true,
      "lastLoginTime": "2020-02-14T20:51:59.313Z",
      "lastModified": "2020-02-14T20:55:12.133Z",
      "lastName": "Wild",
      "lastVisitTime": "2020-02-14T20:51:59.313Z",
      "login": "f0a43dc2-692a-43bf-b008-e10918ea935d",
      "previousLoginTime": "2020-02-14T20:51:59.313Z",
      "previousVisitTime": "2020-02-14T20:51:59.313Z"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### POST Create a new address with the given name for the customer. This endpoint only accepts a registered customer ShopperToken (JWT).

`POST /organizations/{organizationId}/customers/{customerId}/addresses`

Operation ID: `createCustomerAddress`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.addresses.rw, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: CustomerAddressBody_

```
{
  "addressId": "home_address",
  "address1": "5 Wall St",
  "address2": "24 Presidential Way",
  "city": "Burlington",
  "companyName": "Salesforce Commerce Cloud",
  "countryCode": "US",
  "firstName": "John",
  "jobTitle": "Developer",
  "lastName": "Murphy",
  "phone": "408-555-1212",
  "postalCode": "01805",
  "postBox": "12a",
  "preferred": false,
  "salutation": "Mr.",
  "secondName": "Jim",
  "stateCode": "MA",
  "title": "Dr."
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerAddress`.
    
    _Example: customerAddressResponse_
    
    ```
    {
      "addressId": "home_address",
      "address1": "5 Wall St",
      "address2": "24 Presidential Way",
      "city": "Burlington",
      "companyName": "Salesforce Commerce Cloud",
      "countryCode": "US",
      "creationDate": "2020-02-14T21:13:29.769Z",
      "firstName": "John",
      "fullName": "John Jim Murphy",
      "jobTitle": "Developer",
      "lastModified": "2020-02-14T21:13:29.770Z",
      "lastName": "Murphy",
      "phone": "408-555-1212",
      "postalCode": "01805",
      "postBox": "12a",
      "preferred": false,
      "salutation": "Mr.",
      "secondName": "Jim",
      "stateCode": "MA",
      "title": "Dr."
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Retrieve a customer's address by address name. This endpoint only accepts a registered customer ShopperToken (JWT).

`GET /organizations/{organizationId}/customers/{customerId}/addresses/{addressName}`

Operation ID: `getCustomerAddress`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.addresses, sfcc.shopper-myaccount.addresses.rw, sfcc.shopper-standard).

#### Parameters

*   `addressName` (path, string, required) The name of the address to update.  
    Minimum length: 1. Maximum length: 256.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerAddress`.
    
    _Example customerAddressResponse: same as POST /organizations/{organizationId}/customers/{customerId}/addresses 200 response._
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### DELETE Delete a customer's address by address name. This endpoint only accepts a registered customer ShopperToken (JWT).

`DELETE /organizations/{organizationId}/customers/{customerId}/addresses/{addressName}`

Operation ID: `removeCustomerAddress`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.addresses.rw, sfcc.shopper-standard).

#### Parameters

*   `addressName` (path, string, required) The name of the address to update.  
    Minimum length: 1. Maximum length: 256.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **204** No content
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### PATCH Update a customer's address by address name. This endpoint only accepts a registered customer ShopperToken (JWT).

`PATCH /organizations/{organizationId}/customers/{customerId}/addresses/{addressName}`

Operation ID: `updateCustomerAddress`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.addresses.rw, sfcc.shopper-standard).

#### Parameters

*   `addressName` (path, string, required) The name of the address to update.  
    Minimum length: 1. Maximum length: 256.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example CustomerAddressResponseBody: same as POST /organizations/{organizationId}/customers/{customerId}/addresses 200 response._

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerAddress`.
    
    _Example customerAddressResponse: same as POST /organizations/{organizationId}/customers/{customerId}/addresses 200 response._
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Get the baskets for a customer. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`GET /organizations/{organizationId}/customers/{customerId}/baskets`

Operation ID: `getCustomerBaskets`. Security: ShopperToken (sfcc.shopper-myaccount.baskets, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.baskets, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `BasketsResult`.
    
    _Example: customerBasketsResult_
    
    ```
    {
      "baskets": [
        {
          "basketId": "bccO1aOjgEnuIaaadk7pYO2rFE",
          "adjustedMerchandizeTotalTax": 0,
          "adjustedShippingTotalTax": 0,
          "agentBasket": true,
          "billingAddress": {
            "address1": "10 Presidential Way",
            "city": "Woburn",
            "countryCode": "US",
            "firstName": "John",
            "fullName": "John M. Smith",
            "id": "abfTEMDZOgi3JPrkHjv9IhoziM",
            "lastName": "Smith",
            "phone": "123450003",
            "postalCode": "01827",
            "salutation": "Mr.",
            "stateCode": "MA"
          },
          "bonusDiscountLineItems": [
            {
              "bonusProducts": [
                {
                  "productDescription": "Bonus Product",
                  "productId": "34984327448",
                  "productName": "Extra Fluffy Bonus Product",
                  "title": "Bonus Product"
                }
              ],
              "couponCode": "BONUS",
              "id": "qhegj345ruhrfkj",
              "maxBonusItems": 1,
              "promotionId": "basds98295jsafi"
            }
          ],
          "channelType": "storefront",
          "couponItems": [
            {
              "code": "5634573",
              "couponItemId": "100-89038",
              "statusCode": "coupon_code_already_in_basket",
              "valid": true
            }
          ],
          "creationDate": "2019-09-05T17:12:56.670Z",
          "currency": "USD",
          "customerInfo": {
            "c_familyStatus": "string",
            "customerId": "abfTEMDZOgi3JPrkHjv9IhoziM",
            "customerName": "John Smith",
            "customerNo": "1000",
            "email": "jsmith@demandware.com"
          },
          "giftCertificateItems": [
            {
              "amount": 0,
              "giftCertificateItemId": "901",
              "message": "Preferred Customer",
              "recipientEmail": "jsmith@demandware.com",
              "recipientName": "John Smith",
              "senderName": "Jane Smith",
              "shipmentId": "678934jsadLHY5"
            }
          ],
          "inventoryReservationExpiry": "2019-09-05T17:12:56.670Z",
          "lastModified": "2019-09-05T17:12:56.670Z",
          "merchandizeTotalTax": 0,
          "orderPriceAdjustments": [
            {
              "appliedDiscount": {
                "amount": 0,
                "percentage": 0,
                "priceBookId": "asdfgh4567",
                "type": "percentage"
              },
              "couponCode": "2345-009",
              "createdBy": "System",
              "creationDate": "2019-09-05T17:12:56.670Z",
              "custom": true,
              "itemText": "string",
              "lastModified": "2019-09-05T17:12:56.670Z",
              "manual": true,
              "price": 0,
              "priceAdjustmentId": "324545673fgjghj",
              "promotionId": "1000-7654",
              "promotionLink": "link to promotion",
              "reasonCode": "PRICE_MATCH"
            }
          ],
          "orderTotal": 0,
          "paymentInstruments": [
            {
              "amount": 0,
              "authorizationStatus": {
                "code": "AUTH",
                "message": "Authorizing",
                "status": 0
              },
              "bankRoutingNumber": "string",
              "maskedGiftCertificateCode": "string",
              "paymentCard": {
                "cardType": "Visa",
                "creditCardExpired": false,
                "creditCardToken": "sadjklfajkgae",
                "expirationMonth": 12,
                "expirationYear": 2019,
                "holder": "John",
                "issueNumber": "389342643978",
                "maskedNumber": "**************53",
                "numberLastDigits": "8753",
                "validFromMonth": 4,
                "validFromYear": 2015
              },
              "paymentInstrumentId": "creditCard",
              "paymentMethodId": "credit"
            }
          ],
          "productItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "bonusDiscountLineItemId": "string",
              "bonusProductLineItem": true,
              "bundledProductItems": [
                {
                  "quantity": 10
                }
              ],
              "gift": true,
              "giftMessage": "string",
              "inventoryId": "string",
              "itemId": "string",
              "itemText": "string",
              "optionItems": [
                {
                  "adjustedTax": 0,
                  "basePrice": 110,
                  "bonusDiscountLineItemId": "dsklgladsjkq349857",
                  "bonusProductLineItem": true,
                  "bundledProductItems": [
                    {
                      "quantity": 10
                    }
                  ],
                  "gift": true,
                  "giftMessage": "Happy Birthday",
                  "inventoryId": "258963",
                  "itemId": "apple-ipod-classic",
                  "itemText": "Apple iPod Classic",
                  "optionId": "34526hjyuGGH56",
                  "optionItems": [
                    {
                      "optionId": "sdiughsdjkfgoqtuy",
                      "optionValueId": "1564897654"
                    }
                  ],
                  "optionValueId": "string",
                  "price": 0,
                  "priceAdjustments": [
                    {
                      "appliedDiscount": {
                        "amount": 0,
                        "percentage": 0,
                        "priceBookId": "34526hjyuGGH56",
                        "type": "percentage"
                      },
                      "couponCode": "109475",
                      "createdBy": "System",
                      "creationDate": "2019-09-05T17:12:56.670Z",
                      "custom": true,
                      "itemText": "",
                      "lastModified": "2019-09-05T17:12:56.670Z",
                      "manual": true,
                      "price": 0,
                      "priceAdjustmentId": "1597563",
                      "promotionId": "963852",
                      "promotionLink": "link to promotion",
                      "reasonCode": "PRICE_MATCH"
                    }
                  ],
                  "priceAfterItemDiscount": 0,
                  "priceAfterOrderDiscount": 0,
                  "productId": "apple-ipod-classic",
                  "productListItem": {
                    "id": "2345245e654utjSSDFfdhh",
                    "priority": 0,
                    "productDetailsLink": {
                      "productDescription": "apple-ipod-classic",
                      "productId": "apple-ipod-classic",
                      "productName": "Apple iPod Classic",
                      "title": "Apple iPod Classic Silver"
                    },
                    "productList": {
                      "description": "My Product List",
                      "name": "Electronics",
                      "public": true,
                      "title": "My Electronics Wish List",
                      "type": "wish_list"
                    },
                    "public": true,
                    "purchasedQuantity": 0,
                    "quantity": 0,
                    "type": "product"
                  },
                  "productName": "Apple iPod Classic",
                  "quantity": 0,
                  "shipmentId": "12345rdsghfjh",
                  "shippingItemId": "47568ghfhjgkg",
                  "tax": 0,
                  "taxBasis": 0,
                  "taxClassId": "STATE",
                  "taxRate": 0
                }
              ],
              "price": 0,
              "priceAdjustments": [
                {
                  "appliedDiscount": {
                    "amount": 0,
                    "percentage": 0,
                    "priceBookId": "string",
                    "type": "percentage"
                  },
                  "couponCode": "sadfghgjw4e56r7",
                  "createdBy": "System",
                  "creationDate": "2019-09-05T17:12:56.672Z",
                  "custom": true,
                  "itemText": "string",
                  "lastModified": "2019-09-05T17:12:56.672Z",
                  "manual": true,
                  "price": 0,
                  "priceAdjustmentId": "asdgfhg5463798453",
                  "promotionId": "100-7345",
                  "promotionLink": "Link to promotion",
                  "reasonCode": "PRICE_MATCH"
                }
              ],
              "priceAfterItemDiscount": 0,
              "priceAfterOrderDiscount": 0,
              "productId": "string",
              "productListItem": {
                "id": "string",
                "priority": 0,
                "productDetailsLink": {
                  "productDescription": "apple-ipod-classic",
                  "productId": "apple-ipod-classic",
                  "productName": "Apple iPod Classic",
                  "title": "Apple iPod Classic Silver"
                },
                "productList": {
                  "description": "My Product List",
                  "name": "Electronics",
                  "public": true,
                  "title": "My Electronics Wish List",
                  "type": "wish_list"
                },
                "public": true,
                "purchasedQuantity": 0,
                "quantity": 0,
                "type": "product"
              },
              "productName": "Apple iPod Classic",
              "quantity": 0,
              "shipmentId": "12345rdsghfjh",
              "shippingItemId": "47568ghfhjgkg",
              "tax": 0,
              "taxBasis": 0,
              "taxClassId": "STATE",
              "taxRate": 0
            }
          ],
          "productSubTotal": 0,
          "productTotal": 0,
          "shipments": [
            {
              "adjustedMerchandizeTotalTax": 0,
              "adjustedShippingTotalTax": 0,
              "gift": true,
              "giftMessage": "Happy Birthday",
              "merchandizeTotalTax": 0,
              "productSubTotal": 0,
              "productTotal": 0,
              "shipmentId": "1200",
              "shipmentNo": "3",
              "shipmentTotal": 0,
              "shippingAddress": {
                "address1": "10 Presidential Way",
                "city": "string",
                "countryCode": "US",
                "firstName": "John",
                "fullName": "John M. Smith",
                "id": "abfTWMDZOgi3JPzkHjv9IhmziI",
                "lastName": "Smith",
                "phone": "123450003",
                "postalCode": "01827",
                "salutation": "Mr.",
                "stateCode": "MA"
              },
              "shippingMethod": {
                "c_storePickupEnabled": true,
                "description": "Ship using FEDEX",
                "externalShippingMethod": "FEDEX",
                "id": "1200",
                "name": "John Smith",
                "price": 0,
                "shippingPromotions": [
                  {
                    "calloutMsg": "Callout Message",
                    "promotionId": "123452768sdfgh",
                    "promotionName": "Special Promotion"
                  }
                ]
              },
              "shippingStatus": "not_shipped",
              "shippingTotal": 0,
              "shippingTotalTax": 0,
              "taxTotal": 0,
              "trackingNumber": "89e980-562489-54ifsdgj"
            }
          ],
          "shippingItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "itemId": "2345245e654utjSSDFfdhh",
              "itemText": "apple-iPod-classic",
              "price": 0,
              "priceAdjustments": [
                {
                  "appliedDiscount": {
                    "amount": 0,
                    "percentage": 0,
                    "priceBookId": "string",
                    "type": "percentage"
                  },
                  "couponCode": "sadfghgjw4e56r7",
                  "createdBy": "System",
                  "creationDate": "2019-09-05T17:12:56.672Z",
                  "custom": true,
                  "itemText": "string",
                  "lastModified": "2019-09-05T17:12:56.672Z",
                  "manual": true,
                  "price": 0,
                  "priceAdjustmentId": "asdgfhg5463798453",
                  "promotionId": "100-7345",
                  "promotionLink": "Link to promotion",
                  "reasonCode": "PRICE_MATCH"
                }
              ],
              "priceAfterItemDiscount": 0,
              "shipmentId": "asghdfjghwertyu",
              "tax": 0,
              "taxBasis": 0,
              "taxClassId": "STATE",
              "taxRate": 0
            }
          ],
          "shippingTotal": 0,
          "shippingTotalTax": 0,
          "sourceCode": "",
          "taxTotal": 0,
          "taxation": "gross"
        }
      ],
      "total": 1
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Return a page list of all the customer's orders. The default page size is 10. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`GET /organizations/{organizationId}/customers/{customerId}/orders`

Operation ID: `getCustomerOrders`. Security: ShopperToken (sfcc.shopper-myaccount.orders, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.orders, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `crossSites` (query, boolean) The flag indicating whether all sites should be searched. This flag is ignored unless a valid User / Agent is present with a trusted agent on behalf (TAOB) token. Without a TAOB token, only the customer's orders placed on the site specified by siteId are returned.
*   `from` (query, string) The start date for the date range filter (ISO 8601 format).
*   `until` (query, string) The end date for the date range filter (ISO 8601 format).
*   `status` (query, string) Filter results by status.
*   `expand` (query, string) This parameter enhances the order result with extra data. By using `expand=oms`, all orders for the current customer are loaded directly from Salesforce Order Management (SOM). The system returns the retrieved SOM order data, along with any orders not yet transferred to SOM. If your instance is not integrated with SOM, the `expand=oms` command is disregarded.  
    Allowed values: `oms`. Example: `oms`.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `limit` (query, integer (int32)) Number of records to retrieve per request. Must be between 1 (minimum) and 50 (maximum). Defaults to 10.  
    Default: `10`. Minimum: 1. Maximum: 50.
*   `offset` (query, integer (int32)) Used to retrieve the results based on a particular resource offset.  
    Default: `0`. Minimum: 0.
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerOrderResult`.
    
    _Example: CustomersOrdersResult_
    
    ```
    {
      "limit": 1,
      "data": [
        {
          "adjustedMerchandizeTotalTax": 0,
          "adjustedShippingTotalTax": 0,
          "billingAddress": {
            "address1": "10 Presidential Way",
            "city": "Woburn",
            "countryCode": "US",
            "firstName": "John",
            "fullName": "John M. Smith",
            "id": "abfTEMDZOgi3JPrkHjv9IhoziM",
            "lastName": "Smith",
            "phone": "123450003",
            "postalCode": "01827",
            "salutation": "Mr.",
            "stateCode": "MA"
          },
          "bonusDiscountLineItems": [
            {
              "bonusProducts": [
                {
                  "productDescription": "Bonus Product",
                  "productId": "34984327448",
                  "productName": "Extra Fluffy Bonus Product",
                  "title": "Bonus Product"
                }
              ],
              "couponCode": "BONUS",
              "id": "qhegj345ruhrfkj",
              "maxBonusItems": 1,
              "promotionId": "basds98295jsafi"
            }
          ],
          "channelType": "storefront",
          "confirmationStatus": "not_confirmed",
          "couponItems": [
            {
              "code": "5634573",
              "couponItemId": "100-89038",
              "statusCode": "coupon_code_already_in_basket",
              "valid": true
            }
          ],
          "creationDate": "2019-09-05T17:12:56.670Z",
          "currency": "USD",
          "customerInfo": {
            "c_familyStatus": "string",
            "customerId": "abfTEMDZOgi3JPrkHjv9IhoziM",
            "customerName": "John Smith",
            "customerNo": "00010009",
            "email": "jsmith@demandware.com"
          },
          "exportStatus": "not_exported",
          "externalOrderStatus": "string",
          "giftCertificateItems": [
            {
              "amount": 0,
              "giftCertificateItemId": "901",
              "message": "Preferred Customer",
              "recipientEmail": "jsmith@demandware.com",
              "recipientName": "John Smith",
              "senderName": "Jane Smith",
              "shipmentId": "678934jsadLHY5"
            }
          ],
          "lastModified": "2019-09-05T17:12:56.670Z",
          "merchandizeTotalTax": 0,
          "orderPriceAdjustments": [
            {
              "appliedDiscount": {
                "amount": 0,
                "percentage": 0,
                "priceBookId": "asdfgh4567",
                "type": "percentage"
              },
              "couponCode": "2345-009",
              "createdBy": "System",
              "creationDate": "2019-09-05T17:12:56.670Z",
              "custom": true,
              "itemText": "string",
              "lastModified": "2019-09-05T17:12:56.670Z",
              "manual": true,
              "price": 0,
              "priceAdjustmentId": "324545673fgjghj",
              "promotionId": "1000-7654",
              "promotionLink": "link to promotion",
              "reasonCode": "PRICE_MATCH"
            }
          ],
          "orderTotal": 0,
          "paymentInstruments": [
            {
              "amount": 0,
              "authorizationStatus": {
                "code": "AUTH",
                "message": "Authorizing",
                "status": 0
              },
              "bankRoutingNumber": "string",
              "maskedGiftCertificateCode": "string",
              "paymentCard": {
                "cardType": "Visa",
                "creditCardExpired": false,
                "creditCardToken": "sadjklfajkgae",
                "expirationMonth": 12,
                "expirationYear": 2019,
                "holder": "John",
                "issueNumber": "389342643978",
                "maskedNumber": "**************53",
                "numberLastDigits": "8753",
                "validFromMonth": 4,
                "validFromYear": 2015
              },
              "paymentInstrumentId": "creditCard",
              "paymentMethodId": "credit"
            }
          ],
          "paymentStatus": "not_paid",
          "productItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "bonusDiscountLineItemId": "string",
              "bonusProductLineItem": true,
              "bundledProductItems": [
                {
                  "quantity": 10
                }
              ],
              "gift": true,
              "giftMessage": "string",
              "inventoryId": "string",
              "itemId": "string",
              "itemText": "string",
              "optionItems": [
                {
                  "adjustedTax": 0,
                  "basePrice": 110,
                  "bonusDiscountLineItemId": "dsklgladsjkq349857",
                  "bonusProductLineItem": true,
                  "bundledProductItems": [
                    {
                      "quantity": 10
                    }
                  ],
                  "gift": true,
                  "giftMessage": "Happy Birthday",
                  "inventoryId": "258963",
                  "itemId": "apple-ipod-classic",
                  "itemText": "Apple iPod Classic",
                  "optionId": "34526hjyuGGH56",
                  "optionItems": [
                    {
                      "optionId": "sdiughsdjkfgoqtuy",
                      "optionValueId": "1564897654"
                    }
                  ],
                  "optionValueId": "string",
                  "price": 0,
                  "priceAdjustments": [
                    {
                      "appliedDiscount": {
                        "amount": 0,
                        "percentage": 0,
                        "priceBookId": "34526hjyuGGH56",
                        "type": "percentage"
                      },
                      "couponCode": "109475",
                      "createdBy": "System",
                      "creationDate": "2019-09-05T17:12:56.670Z",
                      "custom": true,
                      "itemText": "",
                      "lastModified": "2019-09-05T17:12:56.670Z",
                      "manual": true,
                      "price": 0,
                      "priceAdjustmentId": "1597563",
                      "promotionId": "963852",
                      "promotionLink": "link to promotion",
                      "reasonCode": "PRICE_MATCH"
                    }
                  ],
                  "priceAfterItemDiscount": 0,
                  "priceAfterOrderDiscount": 0,
                  "productId": "apple-ipod-classic",
                  "productListItem": {
                    "id": "2345245e654utjSSDFfdhh",
                    "priority": 0,
                    "productDetailsLink": {
                      "productDescription": "apple-ipod-classic",
                      "productId": "apple-ipod-classic",
                      "productName": "Apple iPod Classic",
                      "title": "Apple iPod Classic Silver"
                    },
                    "productList": {
                      "description": "My Product List",
                      "name": "Electronics",
                      "public": true,
                      "title": "My Electronics Wish List",
                      "type": "wish_list"
                    },
                    "public": true,
                    "purchasedQuantity": 0,
                    "quantity": 0,
                    "type": "product"
                  },
                  "productName": "Apple iPod Classic",
                  "quantity": 0,
                  "shipmentId": "12345rdsghfjh",
                  "shippingItemId": "47568ghfhjgkg",
                  "tax": 0,
                  "taxBasis": 0,
                  "taxClassId": "STATE",
                  "taxRate": 0
                }
              ],
              "price": 0,
              "priceAdjustments": [
                {
                  "appliedDiscount": {
                    "amount": 0,
                    "percentage": 0,
                    "priceBookId": "string",
                    "type": "percentage"
                  },
                  "couponCode": "sadfghgjw4e56r7",
                  "createdBy": "System",
                  "creationDate": "2019-09-05T17:12:56.672Z",
                  "custom": true,
                  "itemText": "string",
                  "lastModified": "2019-09-05T17:12:56.672Z",
                  "manual": true,
                  "price": 0,
                  "priceAdjustmentId": "asdgfhg5463798453",
                  "promotionId": "100-7345",
                  "promotionLink": "Link to promotion",
                  "reasonCode": "PRICE_MATCH"
                }
              ],
              "priceAfterItemDiscount": 0,
              "priceAfterOrderDiscount": 0,
              "productId": "string",
              "productListItem": {
                "id": "string",
                "priority": 0,
                "productDetailsLink": {
                  "productDescription": "apple-ipod-classic",
                  "productId": "apple-ipod-classic",
                  "productName": "Apple iPod Classic",
                  "title": "Apple iPod Classic Silver"
                },
                "productList": {
                  "description": "My Product List",
                  "name": "Electronics",
                  "public": true,
                  "title": "My Electronics Wish List",
                  "type": "wish_list"
                },
                "public": true,
                "purchasedQuantity": 0,
                "quantity": 0,
                "type": "product"
              },
              "productName": "Apple iPod Classic",
              "quantity": 0,
              "shipmentId": "12345rdsghfjh",
              "shippingItemId": "47568ghfhjgkg",
              "tax": 0,
              "taxBasis": 0,
              "taxClassId": "STATE",
              "taxRate": 0
            }
          ],
          "productSubTotal": 0,
          "productTotal": 0,
          "shipments": [
            {
              "adjustedMerchandizeTotalTax": 0,
              "adjustedShippingTotalTax": 0,
              "gift": true,
              "giftMessage": "Happy Birthday",
              "merchandizeTotalTax": 0,
              "productSubTotal": 0,
              "productTotal": 0,
              "shipmentId": "1200",
              "shipmentNo": "3",
              "shipmentTotal": 0,
              "shippingAddress": {
                "address1": "10 Presidential Way",
                "city": "string",
                "countryCode": "US",
                "firstName": "John",
                "fullName": "John M. Smith",
                "id": "abfTWMDZOgi3JPzkHjv9IhmziI",
                "lastName": "Smith",
                "phone": "123450003",
                "postalCode": "01827",
                "salutation": "Mr.",
                "stateCode": "MA"
              },
              "shippingMethod": {
                "c_storePickupEnabled": true,
                "description": "Ship using FEDEX",
                "externalShippingMethod": "FEDEX",
                "id": "1200",
                "name": "John Smith",
                "price": 0,
                "shippingPromotions": [
                  {
                    "calloutMsg": "Callout Message",
                    "link": "link to shipping promotions",
                    "promotionId": "123452768sdfgh",
                    "promotionName": "Special Promotion"
                  }
                ]
              },
              "shippingStatus": "not_shipped",
              "shippingTotal": 0,
              "shippingTotalTax": 0,
              "taxTotal": 0,
              "trackingNumber": "89e980-562489-54ifsdgj"
            }
          ],
          "shippingItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "itemId": "2345245e654utjSSDFfdhh",
              "itemText": "apple-iPod-classic",
              "price": 0,
              "priceAdjustments": [
                {
                  "appliedDiscount": {
                    "amount": 0,
                    "percentage": 0,
                    "priceBookId": "string",
                    "type": "percentage"
                  },
                  "couponCode": "sadfghgjw4e56r7",
                  "createdBy": "System",
                  "creationDate": "2019-09-05T17:12:56.672Z",
                  "custom": true,
                  "itemText": "string",
                  "lastModified": "2019-09-05T17:12:56.672Z",
                  "manual": true,
                  "price": 0,
                  "priceAdjustmentId": "asdgfhg5463798453",
                  "promotionId": "100-7345",
                  "promotionLink": "Link to promotion",
                  "reasonCode": "PRICE_MATCH"
                }
              ],
              "priceAfterItemDiscount": 0,
              "shipmentId": "asghdfjghwertyu",
              "tax": 0,
              "taxBasis": 0,
              "taxClassId": "STATE",
              "taxRate": 0
            }
          ],
          "shippingStatus": "not_shipped",
          "shippingTotal": 0,
          "shippingTotalTax": 0,
          "sourceCode": "",
          "status": "created",
          "taxTotal": 0,
          "taxation": "gross"
        }
      ],
      "offset": 0,
      "total": 1
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### PUT Update a customer's password. This endpoint only accepts a registered customer ShopperToken (JWT).

`PUT /organizations/{organizationId}/customers/{customerId}/password`

Operation ID: `updateCustomerPassword`. Security: RegisteredShopperToken (sfcc.shopper-customers.login, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: UpdatePasswordBody_

```
{
  "currentPassword": "01dpass",
  "password": "newpass"
}
```

#### Responses

*   **204** No content
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### POST Add a payment instrument to the customer information. This endpoint only accepts a registered customer ShopperToken (JWT).

`POST /organizations/{organizationId}/customers/{customerId}/payment-instruments`

Operation ID: `createCustomerPaymentInstrument`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.paymentinstruments.rw, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: CustomerPaymentInstrumentBody_

```
{
  "paymentCard": {
    "expirationYear": 2027,
    "expirationMonth": 7,
    "validFromMonth": 8,
    "validFromYear": 2007,
    "issueNumber": "i117",
    "number": "1234567",
    "holder": "John Smith",
    "cardType": "MasterCard"
  },
  "giftCertificateCode": "gift_code7",
  "paymentMethodId": "OCAPI_Payment_Simple",
  "bankRoutingNumber": "bankrouting3776",
  "default": true
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerPaymentInstrument`.
    
    _Example: getCustomerPaymentInstrumentSuccess_
    
    ```
    {
      "bankRoutingNumber": "bankrouting3776",
      "paymentCard": {
        "cardType": "MasterCard",
        "creditCardExpired": false,
        "expirationMonth": 7,
        "expirationYear": 2027,
        "holder": "John Smith",
        "issueNumber": "i117",
        "maskedNumber": "***4567",
        "numberLastDigits": "4567",
        "validFromMonth": 8,
        "validFromYear": 2007
      },
      "paymentMethodId": "OCAPI_Payment_Simple",
      "paymentInstrumentId": "cdOLciWbOsYl6aaadkwcsx9xHH",
      "default": false
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Retrieve a customer's payment instrument by its ID. This endpoint only accepts a registered customer ShopperToken (JWT).

`GET /organizations/{organizationId}/customers/{customerId}/payment-instruments/{paymentInstrumentId}`

Operation ID: `getCustomerPaymentInstrument`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.paymentinstruments, sfcc.shopper-myaccount.paymentinstruments.rw, sfcc.shopper-standard).

#### Parameters

*   `paymentInstrumentId` (path, string, required) The ID of the payment instrument to be retrievedCustomer.  
    Minimum length: 1.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerPaymentInstrument`.
    
    _Example getCustomerPaymentInstrumentSuccess: same as POST /organizations/{organizationId}/customers/{customerId}/payment-instruments 200 response._
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### DELETE Delete a customer's payment instrument. This endpoint only accepts a registered customer ShopperToken (JWT).

`DELETE /organizations/{organizationId}/customers/{customerId}/payment-instruments/{paymentInstrumentId}`

Operation ID: `deleteCustomerPaymentInstrument`. Security: ShopperToken (sfcc.shopper-myaccount.paymentinstruments.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.paymentinstruments.rw, sfcc.shopper-standard).

#### Parameters

*   `paymentInstrumentId` (path, string, required) The ID of the payment instrument to be retrievedCustomer.  
    Minimum length: 1.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **204** No content
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### PATCH Update a customer's payment instrument. This endpoint only accepts a registered customer ShopperToken (JWT).

`PATCH /organizations/{organizationId}/customers/{customerId}/payment-instruments/{paymentInstrumentId}`

Operation ID: `updateCustomerPaymentInstrument`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.paymentinstruments.rw, sfcc.shopper-standard).

#### Parameters

*   `paymentInstrumentId` (path, string, required) The ID of the payment instrument to be retrievedCustomer.  
    Minimum length: 1.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: UpdateCustomerPaymentInstrumentBody_

```
{
  "default": false,
  "paymentCard": {
    "expirationYear": 2028,
    "expirationMonth": 12
  }
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerPaymentInstrument`.
    
    _Example: updateCustomerPaymentInstrumentSuccess_
    
    ```
    {
      "paymentCard": {
        "cardType": "MasterCard",
        "creditCardExpired": false,
        "expirationMonth": 12,
        "expirationYear": 2028,
        "holder": "John Smith",
        "issueNumber": "i117",
        "maskedNumber": "***4567",
        "numberLastDigits": "4567",
        "validFromMonth": 8,
        "validFromYear": 2007
      },
      "paymentMethodId": "OCAPI_Payment_Simple",
      "paymentInstrumentId": "cdOLciWbOsYl6aaadkwcsx9xHH",
      "default": false
    }
    ```
    
*   **400** Either the CustomerId URL parameter does not match the verified customer represented by the JWT token, or the request contains unsupported fields for update.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: invalidCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "CustomerId URL parameter does not match the verified customer represented by the JWT token."
    }
    ```
    
    _Example: updatePaymentInstrumentUnsupportedFields400_
    
    ```
    {
      "title": "Unsupported Fields",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unsupported-fields",
      "detail": "Unsupported fields in the request for updates."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### DELETE Delete a customer's payment method reference. This endpoint only accepts a registered customer ShopperToken (JWT).

`DELETE /organizations/{organizationId}/customers/{customerId}/payment-method-references/{paymentMethodReferenceId}`

Operation ID: `deleteCustomerPaymentMethodReference`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.paymentinstruments.rw).

Deletes a specific payment method reference from a customer's account using the payment method reference ID and account ID. This endpoint requires Salesforce Payments integration.

#### Parameters

*   `paymentMethodReferenceId` (path, string, required) The ID of the payment method reference to delete.  
    Minimum length: 1. Maximum length: 256. Example: `pm_12345678`.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `accountId` (query, string, required) The account ID used to scope payment method references.  
    Minimum length: 1. Maximum length: 256. Example: `acc_987654321`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **204** No content

### POST Set up a new payment method reference for a customer. This endpoint only accepts a registered customer ShopperToken (JWT).

`POST /organizations/{organizationId}/customers/{customerId}/payment-method-references/actions/setup`

Operation ID: `setupCustomerPaymentMethodReference`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.paymentinstruments.rw).

Initiates the setup of a new payment method reference for a customer. Requires Salesforce Payments. Stripe does not require gatewayProperties. Adyen requires gatewayProperties.adyen.paymentMethod; missing that field returns 400.

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `zoneId` (query, string, required) The zone identifier for the payment configuration.
    
    The unique identifier for a Payments zone.
    
      
    Minimum length: 1. Maximum length: 100. Example: `Amer-Zone`.
    
    _Example: ZoneId_
    
    ```
    Amer-Zone
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: PaymentMethodReferenceSetupBodyStripe_ Setup Payment Method Reference (Stripe)

```
{
  "paymentMethodType": "card",
  "gatewayProperties": {
    "stripe": {
      "usage": "on_session"
    }
  }
}
```

_Example: PaymentMethodReferenceSetupBodyAdyen_ Setup Payment Method Reference (Adyen)

```
{
  "gatewayProperties": {
    "adyen": {
      "paymentMethod": {
        "type": "scheme",
        "encryptedCardNumber": "test_4111111111111111",
        "encryptedExpiryMonth": "test_03",
        "encryptedExpiryYear": "test_2030",
        "encryptedSecurityCode": "test_737"
      }
    }
  }
}
```

#### Responses

*   **200** Payment method reference setup initiated successfully.
    
    Media type: `application/json`. Schema: `PaymentMethodReferenceSetupResponse`.
    
    _Example: setupPaymentMethodReferenceSuccess_ Successful payment method reference setup (Stripe)
    
    ```
    {
      "paymentMethodReferenceSetupId": "seti_1Mm8s8LkdIwHu7ix0OXBfTRG",
      "gatewayProperties": {
        "stripe": {
          "clientSecret": "seti_1Mm8s8LkdIwHu7ix0OXBfTRG_secret_NXDICkPqPeiBTAFYUKGBMVdE7"
        }
      }
    }
    ```
    
*   **400** The request is invalid.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: invalidPaymentMethodReferenceSetup400_
    
    ```
    {
      "title": "Bad Request",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/bad-request",
      "detail": "The string length constraint was violated by 'paymentMethodType'. The expected maximum length is '256'.",
      "parameter": "paymentMethodType",
      "expected": "256"
    }
    ```
    
    _Example: invalidPaymentMethodReferenceSetupAdyen400_
    
    ```
    {
      "title": "Bad Request",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/bad-request",
      "detail": "The null value constraint for parameter 'gatewayProperties.adyen.paymentMethod' was violated. Null isn't allowed. Please provide a value.",
      "parameter": "gatewayProperties.adyen.paymentMethod"
    }
    ```
    
    _Example: invalidPaymentZone400_
    
    ```
    {
      "title": "Invalid Payment Zone",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-payment-zone",
      "detail": "The provided payment zone ID 'non_existent_zone' isn't a valid Salesforce Payments zone ID.",
      "zoneId": "non_existent_zone"
    }
    ```
    
*   **401** Authentication failed or the authenticated shopper is not authorized to access the requested customer.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: unauthorizedCustomer401_
    
    ```
    {
      "title": "Unauthorized",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unauthorized",
      "detail": "Invalid token provided."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: customerNotFound404_
    
    ```
    {
      "title": "Customer Not Found",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/customer-not-found",
      "detail": "No customer with ID 'abfTWMDZOgi3JPzkHjv9IhmziI' could be found.",
      "customerId": "abfTWMDZOgi3JPzkHjv9IhmziI"
    }
    ```
    
*   **412** Salesforce Payments is not enabled (instance feature toggles) or is not configured for the requested site (org payments config, site, or zone assignment).
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: salesforcePaymentsEnabledPreconditionFailed412_
    
    ```
    {
      "title": "Salesforce Payments Enabled Precondition Failed",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/salesforce-payments-enabled-precondition-failed",
      "detail": "Salesforce Payments isn't enabled."
    }
    ```
    
    _Example: salesforcePaymentsConfiguredPreconditionFailed412_
    
    ```
    {
      "title": "Salesforce Payments Configured Precondition Failed",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/salesforce-payments-configured-precondition-failed",
      "detail": "Salesforce Payments isn't configured for this site."
    }
    ```
    

### POST Complete payment method reference setup for a customer. This endpoint only accepts a registered customer ShopperToken (JWT).

`POST /organizations/{organizationId}/customers/{customerId}/payment-method-references/actions/complete`

Operation ID: `completeCustomerPaymentMethodReferenceSetup`. Security: RegisteredShopperToken (sfcc.shopper-myaccount.paymentinstruments.rw).

Completes payment method reference setup after provider success.

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `zoneId` (query, string, required) The zone identifier for the payment configuration.
    
    The unique identifier for a Payments zone.
    
      
    Minimum length: 1. Maximum length: 100. Example: `Amer-Zone`.
    
    _Example: ZoneId_
    
    ```
    Amer-Zone
    ```
    
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: PaymentMethodReferenceCompleteBody_ Complete Payment Method Reference setup

```
{
  "paymentMethodReferenceSetupId": "seti_1Mm8s8LkdIwHu7ix0OXBfTRG"
}
```

#### Responses

*   **204** No content
*   **400** The request is invalid.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: invalidPaymentMethodReferenceComplete400_
    
    ```
    {
      "title": "Bad Request",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/bad-request",
      "detail": "The null value constraint for parameter 'paymentMethodReferenceSetupId' was violated. Null isn't allowed. Please provide a value.",
      "parameter": "paymentMethodReferenceSetupId"
    }
    ```
    
*   **401** Authentication failed or the authenticated shopper is not authorized to access the requested customer.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: unauthorizedCustomer401_
    
    ```
    {
      "title": "Unauthorized",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unauthorized",
      "detail": "Invalid token provided."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example customerNotFound404: same as POST /organizations/{organizationId}/customers/{customerId}/payment-method-references/actions/setup 404 response._
    
    _Example: paymentMethodReferenceNotFound404_
    
    ```
    {
      "title": "Payment Method Reference Not Found",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/payment-method-reference-not-found",
      "detail": "No payment method reference with ID 'pm_nonexistent' could be found.",
      "paymentMethodReferenceId": "pm_nonexistent"
    }
    ```
    
*   **412** Salesforce Payments is not enabled (instance feature toggles) or is not configured for the requested site (org payments config, site, or zone assignment).
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example salesforcePaymentsEnabledPreconditionFailed412: same as POST /organizations/{organizationId}/customers/{customerId}/payment-method-references/actions/setup 412 response._
    
    _Example salesforcePaymentsConfiguredPreconditionFailed412: same as POST /organizations/{organizationId}/customers/{customerId}/payment-method-references/actions/setup 412 response._
    

### GET Return all customer product lists. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`GET /organizations/{organizationId}/customers/{customerId}/product-lists`

Operation ID: `getCustomerProductLists`. Security: ShopperToken (sfcc.shopper-myaccount.productlists, sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists, sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerProductListResult`.
    
    _Example: customerProductListResult_
    
    ```
    {
      "limit": 1,
      "data": [
        {
          "coRegistrant": {
            "email": "janedoe@example.com",
            "firstName": "Jane",
            "lastName": "Doe",
            "role": "Bride"
          },
          "creationDate": "2019-10-18T22:06:28.965Z",
          "currentShippingAddressInfo": {
            "addressId": "home_address",
            "title": "home_address, John Murphy, Burlington"
          },
          "customerProductListItems": [
            {
              "id": "30f35c187ea255ccb633c3ba11",
              "priority": 4,
              "productId": "SimpleProduct",
              "public": false,
              "purchasedQuantity": 0,
              "quantity": 2,
              "type": "product"
            }
          ],
          "postEventShippingAddressInfo": {
            "addressId": "home_address",
            "title": "home_address, John Murphy, Burlington"
          },
          "productListShippingAddress": {
            "addressId": "home_address",
            "city": "Burlington",
            "firstName": "John",
            "lastName": "Murphy"
          },
          "name": "OurProductList",
          "registrant": {
            "email": "johndoe@example.com",
            "firstName": "John",
            "lastName": "Doe",
            "role": "Groom"
          },
          "lastModified": "2019-10-18T22:06:28.971Z",
          "description": "a productlist",
          "event": {
            "city": "any city",
            "country": "USA",
            "type": "product_list_event"
          },
          "id": "8b04014a9d6e5dbae542004824",
          "public": false,
          "type": "wish_list"
        }
      ],
      "total": 1
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### POST Create a customer product list. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`POST /organizations/{organizationId}/customers/{customerId}/product-lists`

Operation ID: `createCustomerProductList`. Security: ShopperToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

#### Parameters

*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: PostCustomerProductListBody_

```
{
  "coRegistrant": {
    "email": "janedoe@example.com",
    "firstName": "Jane",
    "lastName": "Doe",
    "role": "Bride"
  },
  "creationDate": "2019-10-18T22:06:28.965Z",
  "description": "our productlist",
  "event": {
    "city": "Washington",
    "country": "US",
    "date": "2019-09-05T17:12:56.670Z",
    "state": "DC",
    "type": "Wedding"
  },
  "id": "bcedkiWbxCM2MaaadkRhB2IBzM",
  "lastModified": "2019-10-18T22:06:28.971Z",
  "name": "OurProductList",
  "public": true,
  "registrant": {
    "email": "johndoe@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "role": "Groom"
  },
  "type": "wish_list"
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerProductList`.
    
    _Example: customerProductList_
    
    ```
    {
      "coRegistrant": {
        "email": "janedoe@example.com",
        "firstName": "Jane",
        "lastName": "Doe",
        "role": "Bride"
      },
      "creationDate": "2019-10-18T22:06:28.965Z",
      "currentShippingAddressInfo": {
        "addressId": "home_address",
        "title": "home_address, John Murphy, Burlington"
      },
      "description": "our productlist",
      "event": {
        "city": "Washington",
        "country": "US",
        "date": "2019-09-05T17:12:56.670Z",
        "state": "DC",
        "type": "Wedding"
      },
      "id": "bcedkiWbxCM2MaaadkRhB2IBzM",
      "lastModified": "2019-10-18T22:06:28.971Z",
      "name": "OurProductList",
      "postEventShippingAddressInfo": {
        "addressId": "home_address",
        "title": "home_address, John Murphy, Burlington"
      },
      "productListShippingAddress": {
        "addressId": "home_address",
        "city": "Burlington",
        "firstName": "John",
        "lastName": "Murphy"
      },
      "public": false,
      "registrant": {
        "email": "johndoe@example.com",
        "firstName": "John",
        "lastName": "Doe",
        "role": "Groom"
      },
      "shippingAddressInfo": {
        "addressId": "me",
        "title": "me, John Doe, Woburn"
      },
      "type": "wish_list"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Return a customer product list for the given customer and the items in the list. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`GET /organizations/{organizationId}/customers/{customerId}/product-lists/{listId}`

Operation ID: `getCustomerProductList`. Security: ShopperToken (sfcc.shopper-myaccount.productlists, sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists, sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

#### Parameters

*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerProductList`.
    
    _Example: getCustomerProductListByListId_
    
    ```
    {
      "coRegistrant": {
        "email": "janedoe@example.com",
        "firstName": "Jane",
        "lastName": "Doe",
        "role": "Bride"
      },
      "creationDate": "2019-10-18T22:06:28.965Z",
      "currentShippingAddressInfo": {
        "addressId": "home_address",
        "title": "home_address, John Murphy, Burlington"
      },
      "customerProductListItems": [
        {
          "id": "30f35c187ea255ccb633c3ba11",
          "priority": 4,
          "productId": "SimpleProduct",
          "public": false,
          "purchasedQuantity": 0,
          "quantity": 2,
          "type": "product"
        }
      ],
      "description": "our productlist",
      "event": {
        "city": "Washington",
        "country": "US",
        "date": "2019-09-05T17:12:56.670Z",
        "state": "DC",
        "type": "Wedding"
      },
      "id": "bcedkiWbxCM2MaaadkRhB2IBzM",
      "lastModified": "2019-10-18T22:06:28.971Z",
      "name": "OurProductList",
      "public": true,
      "registrant": {
        "email": "johndoe@example.com",
        "firstName": "John",
        "lastName": "Doe",
        "role": "Groom"
      },
      "type": "wish_list"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### DELETE deleteCustomerProductList

`DELETE /organizations/{organizationId}/customers/{customerId}/product-lists/{listId}`

Operation ID: `deleteCustomerProductList`. Security: ShopperToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

Delete a customer product list. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

#### Parameters

*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **204** No content
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### PATCH Change a product list. Changeable properties include name, description, and if the list is public. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`PATCH /organizations/{organizationId}/customers/{customerId}/product-lists/{listId}`

Operation ID: `updateCustomerProductList`. Security: ShopperToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

#### Parameters

*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: UpdateCustomerProductListByListIdBody_

```
{
  "description": "Description"
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerProductList`.
    
    _Example: getCustomerProductListByListId_
    
    ```
    {
      "coRegistrant": {
        "email": "janedoe@example.com",
        "firstName": "Jane",
        "lastName": "Doe",
        "role": "Bride"
      },
      "creationDate": "2019-10-18T22:06:28.965Z",
      "currentShippingAddressInfo": {
        "addressId": "home_address",
        "title": "home_address, John Murphy, Burlington"
      },
      "customerProductListItems": [
        {
          "id": "30f35c187ea255ccb633c3ba11",
          "priority": 4,
          "productId": "SimpleProduct",
          "public": false,
          "purchasedQuantity": 0,
          "quantity": 2,
          "type": "product"
        }
      ],
      "description": "Description",
      "event": {
        "city": "Washington",
        "country": "US",
        "date": "2019-09-05T17:12:56.670Z",
        "state": "DC",
        "type": "Wedding"
      },
      "id": "bcedkiWbxCM2MaaadkRhB2IBzM",
      "lastModified": "2019-10-18T22:06:28.971Z",
      "name": "OurProductList",
      "public": true,
      "registrant": {
        "email": "johndoe@example.com",
        "firstName": "John",
        "lastName": "Doe",
        "role": "Groom"
      },
      "type": "wish_list"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### POST Add an item to the customer's product list.

`POST /organizations/{organizationId}/customers/{customerId}/product-lists/{listId}/items`

Operation ID: `createCustomerProductListItem`. Security: ShopperToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

Considered values from the request body are:

*   `type` → The item type to be added to the customer's product. This value is required and must be a valid type. list.
*   `priority` → The priority of the item to be added to the customer's product list.
*   `public` → The flag that determines whether the item to be added to the customer's product list is public.
*   `product_id` → The ID (SKU) of the product related to the item to be added to the customer's product list. Required when item type is `product`, and must be a valid product ID and only used for product item type. Otherwise, a `ProductListProductIdMissingException` or `ProductListProductNotFoundException` is thrown.
*   `quantity` → Only used for product item type. This is the quantity of the item to be added to the customer's product list.

You can also use a custom property of the form `c_<CUSTOM_NAME>`. The custom property must correspond to a custom attribute (`<CUSTOM_NAME>`) that is defined for `ProductListItem`. The value of this property must be valid for the type of custom attribute defined for `ProductListItem`.

#### Parameters

*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: UpdateCustomerProductListItemBody_

```
{
  "id": "1d447daa4d25805fd682bd4ce1",
  "priority": 4,
  "productId": "RedDress1",
  "public": true,
  "purchasedQuantity": 0,
  "quantity": 2,
  "type": "product"
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerProductListItem`.
    
    _Example: updateCustomerProductListItemSuccess_
    
    ```
    {
      "id": "1d447daa4d25805fd682bd4ce1",
      "priority": 4,
      "productId": "RedDress1",
      "public": true,
      "purchasedQuantity": 0,
      "quantity": 2,
      "type": "product"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Return an item of a customer product list and the actual product details such as image, availability, and price. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`GET /organizations/{organizationId}/customers/{customerId}/product-lists/{listId}/items/{itemId}`

Operation ID: `getCustomerProductListItem`. Security: ShopperToken (sfcc.shopper-myaccount.productlists, sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists, sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

#### Parameters

*   `itemId` (path, string, required) The ID of the item.  
    Minimum length: 1.
*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerProductListItem`.
    
    _Example: getCustomerProductListItemSuccess_
    
    ```
    {
      "id": "1d447daa4d25805fd682bd4ce1",
      "priority": 4,
      "productId": "RedDress1",
      "product": {
        "id": "RedDress1",
        "imageGroups": [
          {
            "images": [
              {
                "alt": "ALT master detail",
                "link": "https://example.com/foo/bar/master_detail.jpg",
                "title": "TITLE master detail"
              }
            ],
            "viewType": "detail"
          },
          {
            "images": [
              {
                "alt": "ALT master swatch",
                "link": "https://example.com/foo/bar/master_swatch.jpg",
                "title": "TITLE master swatch"
              }
            ],
            "viewType": "swatch"
          },
          {
            "images": [
              {
                "alt": "ALT master thumbnail",
                "link": "https://example.com/foo/bar/master_thumbnail.jpg",
                "title": "TITLE master thumbnail"
              }
            ],
            "viewType": "thumbnail"
          }
        ],
        "inventories": [
          {
            "ats": 0,
            "backorderable": false,
            "id": "RedDress1Inventory",
            "orderable": false,
            "preorderable": false,
            "stockLevel": 0
          }
        ],
        "minOrderQuantity": 1,
        "price": 99.99,
        "stepQuantity": 1
      },
      "public": true,
      "purchasedQuantity": 0,
      "quantity": 2,
      "type": "product"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### DELETE Remove an item from a customer product list. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`DELETE /organizations/{organizationId}/customers/{customerId}/product-lists/{listId}/items/{itemId}`

Operation ID: `deleteCustomerProductListItem`. Security: ShopperToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

#### Parameters

*   `itemId` (path, string, required) The ID of the item.  
    Minimum length: 1.
*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **204** No content
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### PATCH Update an item in a customer's product list.

`PATCH /organizations/{organizationId}/customers/{customerId}/product-lists/{listId}/items/{itemId}`

Operation ID: `updateCustomerProductListItem`. Security: ShopperToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-myaccount.productlists.rw, sfcc.shopper-standard).

This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken. Considered values from the request body are:

priority: The priority of the customer's product list item. public: The flag that indicates if the customer's product list item is public. quantity: The quantity of the customer's product list item. Onlyl used for product item type. custom properties in the form c\_<CUSTOM\_NAME>: The custom property must correspond to a custom attribute (<CUSTOM\_NAME>) defined for ProductListItem. The value of this property must be valid for the type of custom attribute defined for ProductListItem.

#### Parameters

*   `itemId` (path, string, required) The ID of the item.  
    Minimum length: 1.
*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `customerId` (path, string, required) The customer ID.  
    Minimum length: 1.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: CustomerProductListItemBody_

```
{
  "productId": "RedDress1",
  "id": "1",
  "purchasedQuantity": 0,
  "priority": 3,
  "quantity": 4,
  "public": false,
  "type": "product"
}
```

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `CustomerProductListItem`.
    
    _Example: updateCustomerProductListItemSuccess_
    
    ```
    {
      "id": "1d447daa4d25805fd682bd4ce1",
      "priority": 4,
      "productId": "RedDress1",
      "public": true,
      "purchasedQuantity": 0,
      "quantity": 2,
      "type": "product"
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Retrieve all public product lists as defined by the given search term, for example: email OR first name and last name). This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`GET /organizations/{organizationId}/product-lists`

Operation ID: `getPublicProductListsBySearchTerm`. Security: ShopperToken (sfcc.shopper-productlists, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-productlists, sfcc.shopper-standard).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `email` (query, string) The email address of the customer the product lists belong to.
*   `firstName` (query, string) The first name of the customer the product lists belong to. This field is case sensitive and must be an exact match.
*   `lastName` (query, string) The last name of the customer the product lists belong to. This field is case sensitive and must be an exact match.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `PublicProductListResult`.
    
    _Example: productListsResultExample_
    
    ```
    {
      "limit": 3,
      "data": [
        {
          "description": "our productlist",
          "id": "f4682729817ee215acd3a1a8b4",
          "name": "OurProductList",
          "title": "OurProductList",
          "type": "wish_list"
        },
        {
          "description": "something",
          "id": "b985bea3aaae7702c0b692c65c",
          "name": "OurProductList",
          "title": "OurProductList",
          "type": "wish_list"
        },
        {
          "description": "our productlist",
          "id": "95aa60b8c681ad5431cb4c5bfa",
          "name": "OurProductList",
          "title": "OurProductList",
          "type": "wish_list"
        }
      ],
      "total": 3
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **401** Indicates that the customerId URL parameter does not match the verified customer represented by the JWT token, which is not relevant when using OAuth, or indicates that the provided new address name is already in use for the customer.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: getPublicProductListsBySearchTerm401_
    
    ```
    {
      "title": "Invalid Access Token",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-access-token",
      "detail": "The request is unauthorized, the access token is invalid.",
      "accessToken": "iI6IjEiLCJhbGciOiJIUzI1NiIsInR5cCI6Ik"
    }
    ```
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Retrieve a public product list by ID and the items under that product list. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`GET /organizations/{organizationId}/product-lists/{listId}`

Operation ID: `getPublicProductList`. Security: ShopperToken (sfcc.shopper-productlists, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-productlists, sfcc.shopper-standard).

#### Parameters

*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `PublicProductList`.
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **401** Indicates that the customerId URL parameter does not match the verified customer represented by the JWT token, which is not relevant when using OAuth, or indicates that the provided new address name is already in use for the customer.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getPublicProductListsBySearchTerm401: same as GET /organizations/{organizationId}/product-lists 401 response._
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

### GET Retrieve all items of a public product list.

`GET /organizations/{organizationId}/product-lists/{listId}/items`

Operation ID: `getPublicProductListItems`. Security: ShopperToken (sfcc.shopper-productlists, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-productlists, sfcc.shopper-standard).

The possible expansions are product, images, and availability. For images and availability, the product must be expanded as well. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

#### Parameters

*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `expand` (query, array of string, style: form, explode: false) Expand product details. Valid values are 'product', 'images', 'availability'. For images and availability, the product must also be expanded.  
    Items: Allowed values: `product`, `images`, `availability`.
    
    _Example_
    
    ```
    [
      "product",
      "images",
      "availability"
    ]
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `PublicProductListItemResult`.
    
    _Example: publicProductListItemsResult_
    
    ```
    {
      "data": [
        {
          "id": "item-1",
          "priority": 1,
          "type": "product",
          "product": {
            "id": "apple-ipod-classic",
            "name": "Apple iPod Classic",
            "currency": "USD",
            "price": 199.99,
            "imageGroups": [
              {
                "images": [
                  {
                    "alt": "ALT master detail",
                    "link": "https://example.com/foo/bar/master_detail.jpg",
                    "title": "TITLE master detail"
                  }
                ],
                "viewType": "large"
              }
            ]
          }
        },
        {
          "id": "item-2",
          "priority": 2,
          "type": "product",
          "product": {
            "id": "sony-headphones",
            "name": "Sony Wireless Headphones",
            "currency": "USD",
            "price": 149.99
          }
        }
      ],
      "limit": 2,
      "total": 25
    }
    ```
    
*   **400** Invalid request parameters
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: getPublicProductListItems400_
    
    ```
    {
      "title": "Invalid expand parameter",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-expand-parameter",
      "detail": "An invalid expand parameter 'wishList' was found.",
      "param": "wishList"
    }
    ```
    
*   **404** The specified product list was not found or is not public.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: getPublicProductListItems404_
    
    ```
    {
      "title": "Product List Not Found",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/product-list-not-found",
      "detail": "A product list with ID 'my-wishlist' couldn't be found.",
      "productListId": "my-wishlist"
    }
    ```
    

### GET Retrieve an item from a public product list and the actual product details such as product, image, availability, and price. This endpoint accepts a registered customer ShopperToken (JWT) or a guest customer ShopperToken.

`GET /organizations/{organizationId}/product-lists/{listId}/items/{itemId}`

Operation ID: `getProductListItem`. Security: ShopperToken (sfcc.shopper-productlists, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-productlists, sfcc.shopper-standard).

#### Parameters

*   `itemId` (path, string, required) The ID of the item.  
    Minimum length: 1.
*   `listId` (path, string, required) The ID of the list.  
    Minimum length: 1. Maximum length: 28.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `PublicProductListItem`.
    
    _Example: getCustomerProductListItemSuccess_
    
    ```
    {
      "id": "023513f915fad06573f330fb0d",
      "priority": 0,
      "product": {
        "id": "RedDress1",
        "imageGroups": [
          {
            "images": [
              {
                "alt": "ALT master detail",
                "link": "https://example.com/foo/bar/master_detail.jpg",
                "title": "TITLE master detail"
              }
            ],
            "viewType": "detail"
          },
          {
            "images": [
              {
                "alt": "ALT master swatch",
                "link": "https://example.com/foo/bar/master_swatch.jpg",
                "title": "TITLE master swatch"
              }
            ],
            "viewType": "swatch"
          },
          {
            "images": [
              {
                "alt": "ALT master thumbnail",
                "link": "https://example.com/foo/bar/master_thumbnail.jpg",
                "title": "TITLE master thumbnail"
              }
            ],
            "viewType": "thumbnail"
          }
        ],
        "inventories": [
          {
            "ats": 0,
            "backorderable": false,
            "id": "RedDress1Inventory",
            "orderable": false,
            "preorderable": false,
            "stockLevel": 0
          }
        ],
        "minOrderQuantity": 1,
        "price": 99.99,
        "stepQuantity": 1
      },
      "type": "product"
    }
    ```
    
*   **400** CustomerId URL parameter does not match the verified customer represented by the JWT token.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: registerCustomer400_
    
    ```
    {
      "title": "Invalid Customer",
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-customer",
      "detail": "The customer is invalid."
    }
    ```
    
*   **401** Indicates that the customerId URL parameter does not match the verified customer represented by the JWT token, which is not relevant when using OAuth, or indicates that the provided new address name is already in use for the customer.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getPublicProductListsBySearchTerm401: same as GET /organizations/{organizationId}/product-lists 401 response._
    
*   **404** Requested resource not found.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example getCustomer404: same as GET /organizations/{organizationId}/customers/{customerId} 404 response._
    

## Schemas

### OrganizationId

An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).

Type: `string`.

Pattern: ^f\_ecom\_\[a-z\]{4}\_(prd|stg|dev|s\[0-9\]{2}|\[0-9\]{3})$. Example: `f_ecom_zzxy_prd`.

### SiteId

The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites

Type: `string`.

Minimum length: 1. Maximum length: 32. Example: `RefArch`.

### CustomerRegistration

Document representing the registration information for a customer.

*   `customer` (_object_, required) The customer registration information. The mandatory properties for registration are login, last name and email.
    
    Includes all fields of `Customer`.
    
    _Example_
    
    ```
    {
      "email": "jsmith@test.com",
      "last_name": "Smith",
      "login": "jsmith"
    }
    ```
    
*   `password` (_string_, required) The login password  
    Example: `Abcd!1234`.

### Customer

Person or entity who shops on Commerce Cloud storefronts by creating a shopper account in Commerce Cloud.

*   `addresses` (_array of CustomerAddress_) The customer's addresses.
*   `authType` (_string_) The customer's authorization type (indicates whether the customer is a guest or a registered customer).  
    Allowed values: `guest`, `registered`. Example: `registered`.
*   `birthday` (_string (date)_) The customer's birthday.
*   `companyName` (_string_) The customer's company name.  
    Maximum length: 256. Example: `Acme`.
*   `crmContactId` (_string_) The customer's core contact ID.  
    Maximum length: 18. Example: `003xx000004WhKe`.
*   `creationDate` (_string (date-time)_) Returns the value of attribute 'creationDate'.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `currentPassword` (_string_) The shopper's current password. This is only used when attempting to update a shopper's `loginId` in a PATCH call. This value is never returned in any response for security reasons, but is validated and must match shopper's existing password in order to update `loginId`. Otherwise, an HTTP 400 statusCode is returned and the `loginId` is not updated. This field and functionality is available with B2C Commerce version 24.7.
*   `customerId` (_string_) The customer's number (ID). Both registered and guest customers have an customer ID.  
    Maximum length: 28. Example: `dfuisydifu2342usyf`.
*   `customerNo` (_string_) The customer's number (ID). Only a registered customer has a customer number.  
    Maximum length: 100. Example: `D0000123`.
*   `email` (_string_) The customer's email address.  
    Maximum length: 256. Example: `johnsmith@email.com`.
*   `emailVerified` (_boolean_, read-only) Indicates whether the customer's email address has been verified. Only included for customers who registered after the "Enable Email Verification" site preference under "Storefront Login Preferences" was enabled. This is a read-only field. If included in a PATCH or Register customer request, it's ignored. This field is available with B2C Commerce version 26.6.  
    Example: `true`.
*   `enabled` (_boolean_) A flag indicating whether this customer is enabled and can log in.  
    Example: `true`.
*   `fax` (_string_) The customer's fax number. The length is restricted to 32 characters.  
    Maximum length: 32. Example: `555-555-5555`.
*   `firstName` (_string_) The customer's first name.  
    Maximum length: 256. Example: `John`.
*   `gender` (_integer (int32)_) The customer's gender.  
    Example: `1`.
*   `hasPassword` (_boolean_, read-only) Indicates whether the customer has a password set. A value of `false` means the customer was created via another method (for example, social login or passwordless flow). This is a read-only field. If included in a PATCH or Register customer request, it's ignored. This field is available with B2C Commerce version 26.6.  
    Example: `true`.
*   `hashedLogin` (_string_) Represents the read-only hashed value for the `loginId` used for Einstein events. This field is available with B2C Commerce version 24.9.  
    Example: `123927deac310a3dae382897d9e458bd92ef1d4ea5cdd327a0fcffd8426dfbb5`.
*   `jobTitle` (_string_) The customer's job title.  
    Maximum length: 256. Example: `Supervisor`.
*   `lastLoginTime` (_string (date-time)_) The time when the customer last logged in.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `lastModified` (_string (date-time)_) Returns the value of attribute 'lastModified'.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `lastName` (_string_) The customer's last name.  
    Maximum length: 256. Example: `Smith`.
*   `lastVisitTime` (_string (date-time)_) The time when the customer last visited.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `login` (_string_) The customer's login. In a PATCH call, this field can only be updated by providing a valid `currentPassword` for the shopper. The `loginId` update feature is available with B2C Commerce version 24.7, but is disabled by default. Contact Customer Support to enable this feature.  
    Maximum length: 256. Example: `jsmith`.
*   `note` (_string_) The customer's note.  
    Example: `customer-note`.
*   `paymentInstruments` (_array of CustomerPaymentInstrument_) The customer's payment instruments.
*   `paymentMethodReferences` (_array of CustomerPaymentMethodReference_) Payment method reference information for Salesforce Payments.
*   `phoneBusiness` (_string_) The customer's business phone number.  
    Maximum length: 32. Example: `555-555-5555`.
*   `phoneHome` (_string_) The customer's home phone number.  
    Maximum length: 32. Example: `555-555-5555`.
*   `phoneMobile` (_string_) The customer's mobile phone number.  
    Maximum length: 32. Example: `555-555-5555`.
*   `preferredLocale` (_string_) The customer's preferred locale.  
    Example: `us-en`.
*   `previousLoginTime` (_string (date-time)_) The time when the customer previously logged in.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `previousVisitTime` (_string (date-time)_) The time when the customer last visited the store.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `salutation` (_string_) The salutation to use for the customer.  
    Maximum length: 256. Example: `Mr.`.
*   `secondName` (_string_) The customer's second name.  
    Maximum length: 256. Example: `Smith`.
*   `suffix` (_string_) The customer's suffix (for example, "Jr." or "Sr.").  
    Maximum length: 256. Example: `Jr.`.
*   `title` (_string_) The customer's title (for example, "Mrs" or "Mr").  
    Maximum length: 256. Example: `Mr.`.

### ErrorResponse

*   `title` (_string_, required) A short, human-readable summary of the problem type. It will not change from occurrence to occurrence of the problem, except for purposes of localization  
    Maximum length: 256. Example: `You do not have enough credit`.
*   `type` (_string_, required) A URI reference \[RFC3986\] that identifies the problem type. This specification encourages that, when dereferenced, it provide human-readable documentation for the problem type (e.g., using HTML \[W3C.REC-html5-20141028\]). When this member is not present, its value is assumed to be "about:blank". It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
    Maximum length: 2048. Example: `NotEnoughMoney`.
*   `detail` (_string_, required) A human-readable explanation specific to this occurrence of the problem.  
    Example: `Your current balance is 30, but that costs 50`.
*   `instance` (_string_) A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. It accepts relative URIs; this means that they must be resolved relative to the document's base URI, as per \[RFC3986\], Section 5.  
    Maximum length: 2048. Example: `/account/12345/msgs/abc`.

### ResetPasswordRequest

Document representing a reset password request.

*   `resetToken` (_string_, required) Temporary token used to reset password.  
    Maximum length: 4096. Example: `R1e2s3e4t5T6o7k8e9n0`.
*   `login` (_string_, required) The customer's login.  
    Maximum length: 256. Example: `loginId`.
*   `newPassword` (_string_, required) New password to reset to.  
    Maximum length: 4096. Example: `p@ssword2`.

### ResetPasswordTokenRequest

Document representing a reset password token request.

*   `login` (_string_, required) The customer's login.  
    Maximum length: 256. Example: `loginId`.

### ResetPasswordToken

Document representing reset password token response.

*   `login` (_string_, required) The customer's login.  
    Maximum length: 256. Example: `loginId`.
*   `email` (_string_, required) The customer's email address.  
    Maximum length: 256. Example: `jdoe@customer.com`.
*   `resetToken` (_string_, required) Temporary token generated that will be used to reset password.  
    Maximum length: 4096. Example: `R1e2s3e4t5T6o7k8e9n0`.
*   `expiresInMinutes` (_integer (int32)_, required) Reset token expiry (in minutes).  
    Example: `30`.

### CustomerExternalProfile

The Document representing the External Profile of a Customer.

Includes all fields of `CustomerExtProfileRequest`.

*   `customerId` (_string_, required) The Id of the Customer  
    Minimum length: 1. Example: `1234`.

### CustomerExtProfileRequest

Document representing the External Profile Request.

*   `authenticationProviderId` (_string_, required) The authentication Provider Id  
    Minimum length: 1. Example: `Google`.
*   `email` (_string_) The Email of the customer.  
    Minimum length: 1. Example: `s@gmail.com`.
*   `externalId` (_string_, required) The ID of the customer.  
    Minimum length: 1. Example: `jsmith@gmail.com`.
*   `firstName` (_string_) The First Name of the customer.  
    Minimum length: 1. Example: `John`.
*   `lastName` (_string_) The Last Name of the customer.  
    Minimum length: 1. Example: `Smith`.

### CustomerAddress

Address that is associated with a shopper (billing, shipping, mailing, and so on).

*   `address1` (_string_) The first address.  
    Maximum length: 256. Example: `10 Presidential Way`.
*   `address2` (_string_) The second address.  
    Maximum length: 256. Example: `Apt-616`.
*   `addressId` (_string_, required) The ID of the address as specified by account owner.  
    Maximum length: 256. Example: `Home`.
*   `city` (_string_) The city.  
    Maximum length: 256. Example: `New York`.
*   `companyName` (_string_) The company name.  
    Maximum length: 256. Example: `Acme Inc`.
*   `countryCode` (_string_, required) The two-letter ISO 3166-1 (Alpha-2) country code.  
    Maximum length: 2. Pattern: ^(\[A-Z\]\[A-Z\])$. Example: `US`.
*   `creationDate` (_string (date-time)_) Returns the value of attribute 'creationDate'.  
    Example: `9999-12-31T17:12:56.670Z`.
*   `firstName` (_string_) The first name.  
    Maximum length: 256. Example: `John`.
*   `fullName` (_string_) The full name.  
    Maximum length: 256. Example: `John Smith`.
*   `jobTitle` (_string_) The job title.  
    Maximum length: 256. Example: `Supervisor`.
*   `lastModified` (_string (date-time)_) Returns the value of attribute 'lastModified'.  
    Example: `9999-12-31T17:12:56.670Z`.
*   `lastName` (_string_, required) The last name.  
    Maximum length: 256. Example: `Smith`.
*   `phone` (_string_) The phone number.  
    Maximum length: 32. Example: `555-555-5555`.
*   `postBox` (_string_) The post box.  
    Maximum length: 256. Example: `12345`.
*   `postalCode` (_string_) The postal code.  
    Maximum length: 256. Example: `N5`.
*   `preferred` (_boolean_) The preferred attribute.  
    Example: `true`.
*   `salutation` (_string_) The salutation.  
    Maximum length: 256. Example: `Sir`.
*   `secondName` (_string_) The second name.  
    Maximum length: 256. Example: `Smith`.
*   `stateCode` (_string_) The state code.  
    Maximum length: 256. Example: `UT`.
*   `suffix` (_string_) The suffix.  
    Maximum length: 256. Example: `Sr.`.
*   `suite` (_string_) The suite.  
    Maximum length: 32. Example: `100`.
*   `title` (_string_) The title.  
    Maximum length: 256. Example: `Supervisor`.

### BasketsResult

Result document containing an array of baskets.

*   `baskets` (_array of object_) The list of baskets for a customer.
    
    Includes all fields of `Basket`.
    
*   `total` (_integer (int32)_, required) The total number of baskets.  
    Example: `10`.

### CustomerOrderResult

Result document containing an array of customer orders.

Includes all fields of `PaginatedResultBase`.

*   `data` (_array of Order_) The array of customer order documents.

### PasswordChangeRequest

Document representing a password change request.

*   `currentPassword` (_string_, required) The customer's current password.  
    Maximum length: 4096. Example: `p@ssword1`.
*   `password` (_string_, required) The customer's new password.  
    Maximum length: 4096. Example: `p@ssword2`.

### CustomerPaymentInstrumentRequest

Document representing a customer payment instrument request.

*   `bankRoutingNumber` (_string_) The bank routing number.  
    Maximum length: 256. Example: `AB123`.
*   `giftCertificateCode` (_string_) The gift certificate code.  
    Maximum length: 256. Example: `gift-code`.
*   `paymentBankAccount` (_object_) The payment bank account request data.
    
    Includes all fields of `PaymentBankAccountRequest`.
    
*   `paymentCard` (_object_) The customer payment card.
    
    Includes all fields of `CustomerPaymentCardRequest`.
    
*   `paymentMethodId` (_string_) The payment method ID. Optional if a customer payment instrument ID is specified.  
    Maximum length: 256. Example: `Credit Card`.
*   `default` (_boolean_) The default payment instrument.  
    Example: `true`.

### CustomerPaymentInstrument

Method for customers to pay for the goods purchased on an ecommerce site. Payment methods include - credit card, debit card, bank account, and gift card.

*   `bankRoutingNumber` (_string_) The bank routing number.  
    Maximum length: 256. Example: `KDSJHKS`.
*   `creationDate` (_string (date-time)_) Returns the value of attribute 'creationDate'.  
    Example: `253402214400`.
*   `lastModified` (_string (date-time)_) Returns the value of attribute 'lastModified'.  
    Example: `253402214400`.
*   `maskedGiftCertificateCode` (_string_) The masked gift certificate code.  
    Example: `gift-code`.
*   `paymentCard` (_object_) The payment card.
    
    Includes all fields of `PaymentCard`.
    
*   `paymentInstrumentId` (_string_) The payment instrument ID.  
    Example: `Personal`.
*   `paymentMethodId` (_string_) The payment method ID. Optional if a customer payment instrument ID is specified.  
    Maximum length: 256. Example: `Personal`.
*   `default` (_boolean_) The default payment instrument.  
    Example: `true`.

### CustomerPaymentInstrumentUpdateRequest

Document representing a customer payment instrument update request. Only allows updating the default flag and card expiration date.

*   `default` (_boolean_) The default payment instrument.  
    Example: `true`.
*   `paymentCard` (_object_) The payment card expiration information.
    *   `expirationMonth` (_integer (int32)_) The month when the payment card expires.  
        Minimum: 1. Maximum: 12. Example: `12`.
    *   `expirationYear` (_integer (int32)_) The year when the payment card expires.  
        Example: `2028`.

### PaymentMethodReferenceSetupRequest

Request to set up a new payment method reference. Stripe does not require gatewayProperties. Adyen requires gatewayProperties.adyen.paymentMethod at runtime (400 if missing).

*   `paymentMethodType` (_string_) Payment Method Type  
    Maximum length: 256. Example: `card`.
*   `gatewayProperties` (_object_) Properties specific to the payment gateway
    *   `stripe` (_object_)
        
        ## Stripe-specific properties.
        
    *   `adyen` (_object_)
        
        ## Adyen-specific properties.
        

### PaymentMethodReferenceSetupResponse

Response from setting up a new payment method reference.

*   `paymentMethodReferenceSetupId` (_string_, required) The provider-specific identifier for the payment method reference setup (e.g., Stripe Setup Intent ID, Adyen pspReference).  
    Maximum length: 256. Example: `seti_1Mm8s8LkdIwHu7ix0OXBfTRG`.
*   `gatewayProperties` (_object_) Properties specific to the payment gateway
    *   `stripe` (_object_)
        
        ## Stripe-specific properties.
        
    *   `adyen` (_object_)
        
        ## Adyen-specific properties.
        

### PaymentMethodReferenceCompleteRequest

Request to complete payment method reference setup after provider success.

*   `paymentMethodReferenceSetupId` (_string_, required) Provider setup identifier (for example Stripe SetupIntent ID or Adyen pspReference).  
    Minimum length: 1. Maximum length: 256. Example: `seti_1Mm8s8LkdIwHu7ix0OXBfTRG`.

### CustomerProductListResult

Document representing a customer product lists result.

Includes all fields of `ResultBase`.

*   `data` (_array of CustomerProductList_, required) The customer product lists.

### CustomerProductList

Document representing a customer product list.

*   `coRegistrant` (_object_) The coregistrant of this product list.
    
    Includes all fields of `CustomerProductListRegistrant`.
    
*   `creationDate` (_string (date-time)_) Returns the value of attribute 'creationDate'.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `currentShippingAddressInfo` (_object_) The resource link to the current shipping address of this customer product list.
    
    Includes all fields of `CustomerAddressInfo`.
    
*   `customerProductListItems` (_array of CustomerProductListItem_) The list of customer product list items.
*   `description` (_string_) The description of this product list.  
    Example: `My Product List`.
*   `event` (_object_) The event of this product list.
    
    Includes all fields of `ProductListEvent`.
    
*   `id` (_string_) The ID of this product list.  
    Minimum length: 1. Example: `MyList`.
*   `lastModified` (_string (date-time)_) Returns the value of attribute 'lastModified'.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `name` (_string_) The name of this product list.  
    Example: `Danny's Product List`.
*   `postEventShippingAddressInfo` (_object_) The resource link to the post event shipping address of this customer product list.
    
    Includes all fields of `CustomerAddressInfo`.
    
*   `productListShippingAddress` (_object_) The abbreviated shipping address of this product list representing what an anonymous user can see.
    
    Includes all fields of `ProductListShippingAddress`.
    
*   `public` (_boolean_) Indicates whether the owner made this product list available for access by other customers.  
    Example: `true`.
*   `registrant` (_object_) The registrant of this product list.
    
    Includes all fields of `CustomerProductListRegistrant`.
    
*   `shippingAddressInfo` (_object_) The resource link to the shipping address of this customer product list.
    
    Includes all fields of `CustomerAddressInfo`.
    
*   `type` (_string_) The type of the product list.  
    Allowed values: `wish_list`, `gift_registry`, `shopping_list`, `custom_1`, `custom_2`, `custom_3`. Example: `wish_list`.

### CustomerProductListItem

Document representing a customer product list item.

*   `id` (_string_) The ID of this product list item.  
    Example: `Main Product`.
*   `priority` (_integer (int32)_, required) The priority of the item.  
    Example: `1`.
*   `product` (_object_) The product item.
    
    Includes all fields of `Product`.
    
*   `productId` (_object_) The ID of the product.  
    Example: `Toaster`.
    
    Includes all fields of `ProductId`.
    
    Example: `Toaster`.
    
*   `public` (_boolean_, required) Is this product list item available for access by other customers?  
    Example: `true`.
*   `purchasedQuantity` (_number (double)_) The quantity of products already purchased.  
    Example: `1`.
*   `quantity` (_number (double)_, required) The quantity of this product list item.  
    Minimum: 0. Example: `2`.
*   `type` (_string_) The type of the item.  
    Allowed values: `product`, `gift_certificate`. Example: `product`.

### PublicProductListResult

Result document containing an array of public product list links.

Includes all fields of `ResultBase`.

*   `data` (_array of PublicProductListInfo_, required) The array of product list link documents.

### PublicProductList

Document representing a customer product list.

*   `coRegistrant` (_object_) The coRegistrant of this product list.
    
    Includes all fields of `ProductListRegistrant`.
    
*   `creationDate` (_string (date-time)_) Returns the value of attribute 'creationDate'.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `description` (_string_) The description of this product list.  
    Example: `Super Product List`.
*   `event` (_object_) The event of this product list.
    
    Includes all fields of `ProductListEvent`.
    
*   `id` (_string_, required) The id of this product list.  
    Minimum length: 1. Example: `873465834`.
*   `lastModified` (_string (date-time)_) Returns the value of attribute 'lastModified'.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `name` (_string_) The name of this product list.  
    Example: `My Product List`.
*   `productListItems` (_array of PublicProductListItem_) The product list items
*   `productListShippingAddress` (_object_) The abbreviated shipping address of this product list representing what anonymous users see.
    
    Includes all fields of `ProductListShippingAddress`.
    
*   `public` (_boolean_, required) Indicates whether the owner made this product list available for access by other customers.  
    Example: `true`.
*   `registrant` (_object_) The registrant of this product list.
    
    Includes all fields of `ProductListRegistrant`.
    
*   `type` (_string_, required) The type of the product list.  
    Allowed values: `wish_list`, `gift_registry`, `shopping_list`, `custom_1`, `custom_2`, `custom_3`. Example: `gift_registry`.

### PublicProductListItemResult

Results containing an array of public product list items.

Includes all fields of `ResultBase`.

*   `data` (_array of PublicProductListItem_) The array of public product list items.

### PublicProductListItem

Document representing a product list item.

*   `id` (_string_, required) The ID of this product list item.  
    Example: `8745345`.
*   `priority` (_integer (int32)_, required) The priority of the item.  
    Example: `2`.
*   `product` (_object_) The product item.
    
    Includes all fields of `Product`.
    
*   `type` (_string_, required) The type of the item.  
    Allowed values: `product`, `gift_certificate`. Example: `product`.

### CustomerPaymentMethodReference

*   `type` (_string_, read-only) The payment method type. It is read only.  
    Allowed values: `card`, `sepa_debit`. Example: `card`.
*   `id` (_string_, read-only) The gateway ID for the payment method. It is read only.  
    Maximum length: 256. Example: `pm_1234567890`.
*   `last4` (_string_, read-only) The last four digits of the payment method number. It is read only.  
    Maximum length: 4. Example: `4242`.
*   `accountId` (_string_, read-only) Account identifier  
    Minimum length: 1. Maximum length: 100. Example: `acct_1RegszI5I22eU0I3`.
*   `brand` (_string_, read-only) Card brand when the payment method type is `card`.  
    Minimum length: 1. Maximum length: 256. Example: `visa`.
*   `expiryMonth` (_integer (int32)_, read-only) Card expiry month when the payment method type is `card`.  
    Minimum: 1. Maximum: 12. Example: `12`.
*   `expiryYear` (_integer (int32)_, read-only) Card expiry year when the payment method type is `card`.  
    Minimum: 1000. Maximum: 9999. Example: `2028`.
*   `accountHolderName` (_string_, read-only) SEPA account holder name when the payment method type is `sepa_debit`.  
    Minimum length: 1. Maximum length: 256. Example: `Jane Doe`.

### Basket

Document representing a basket.

*   `adjustedMerchandizeTotalTax` (_number (double)_) The total tax on products in the shipment, including item-level price adjustments but not including service charges such as shipping. If the Discount Taxation preference is set to Tax Products and Shipping Only Based on Adjusted Price, this amount also includes prorated order-level price adjustments. It is read only.  
    Example: `4.95`.
*   `adjustedShippingTotalTax` (_number (double)_) The total tax on shipping charges in the shipment, including shipping price adjustments. It is read only.  
    Example: `0.3`.
*   `agentBasket` (_boolean_) Is the basket created by an agent? It is read only.  
    Example: `true`.
*   `basketId` (_string_) The unique identifier for the basket. It is read only.  
    Example: `e78aa5646a8efebdd9cdd38be7`.
*   `billingAddress` (_object_) The billing address.
    
    Includes all fields of `OrderAddress`.
    
*   `bonusDiscountLineItems` (_array of BonusDiscountLineItem_) The bonus discount line items.
*   `channelType` (_string_) The sales channel. It is read only.  
    Allowed values: `storefront`, `callcenter`, `marketplace`, `dss`, `store`, `pinterest`, `twitter`, `facebookads`, `subscriptions`, `onlinereservation`, `customerservicecenter`, `instagramcommerce`, `tiktok`, `snapchat`, `google`, `whatsapp`, `youtube`. Example: `storefront`.
*   `couponItems` (_array of CouponItem_) The coupon items.
*   `creationDate` (_string (date-time)_) The timestamp when the basket was created. It is read only.  
    Example: `2015-05-19T15:23:18.000Z`.
*   `currency` (_CurrencyCode_)
*   `customerInfo` (_object_) The customer information, if the customer is logged in.
    
    Includes all fields of `CustomerInfo`.
    
*   `giftCertificateItems` (_array of GiftCertificateItem_) The gift certificate line items.
*   `groupedTaxItems` (_array of GroupedTaxItem_) Tax values that are grouped and summed based on the tax rate. The tax totals of the line items with the same tax rate are grouped together and summed up. This does not affect the calculation in any way. It is read only.
*   `inventoryReservationExpiry` (_string (date-time)_) The expiration datetime of the inventory reservation. It is read only.  
    Example: `2015-05-19T15:30:18.000Z`.
*   `lastModified` (_string (date-time)_) The timestamp when the basket was last modified. It is read only.  
    Example: `2015-05-19T15:25:18.000Z`.
*   `merchandizeTotalTax` (_number (double)_) The total products tax in the purchase currency. Merchandise total price represents the sum of the product prices before services (such as shipping) or adjustments from promotions have been added. It is read only.  
    Example: `4.95`.
*   `orderPriceAdjustments` (_array of PriceAdjustment_) The order-level price adjustments.
*   `orderTotal` (_number (double)_) The total price, including products, shipping and tax. It is read only.  
    Example: `110.24`.
*   `paymentInstruments` (_array of OrderPaymentInstrument_) The payment instruments list.
*   `productItems` (_array of BasketProductItem_) The product items.
*   `productSubTotal` (_number (double)_) The total price of all products including item-level adjustments, but not including order-level adjustments or shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `99`.
*   `productTotal` (_number (double)_) The total price of all products including adjustments, but not including shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `88`.
*   `shipments` (_array of Shipment_) The shipments.
*   `shippingItems` (_array of ShippingItem_) The shipping items.
*   `shippingTotal` (_number (double)_) The total price of all shipping charges, including shipping adjustments. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `5.99`.
*   `shippingTotalTax` (_number (double)_) The total tax on all shipping charges, not including shipping adjustments. It is read only.  
    Example: `0.3`.
*   `sourceCode` (_string_) The source code assigned to the basket. It is read only.  
    Example: `OUTDOOR1`.
*   `taxTotal` (_number (double)_) The total tax amount. It is read only.  
    Example: `5.25`.
*   `taxation` (_string_) The taxation policy (gross or net). It is read only.  
    Allowed values: `gross`, `net`. Example: `net`.
*   `taxRoundedAtGroup` (_boolean_) If the tax is rounded at the group level, this is set to true. If the tax is rounded at the item or unit level, it is set to false.  
    Example: `true`.
*   `temporaryBasket` (_boolean_) If the created basket is a temporary basket, this is set to true. Otherwise, it is set to false.  
    Example: `true`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### PaginatedResultBase

Schema defining generic pageable result. Each response schema of a resource requiring pagination should extend this schema. If you use this extend this schema directly, it needs to be defined what data is returned. Allowed names for the data field is `data`.

Includes all fields of `ResultBase`.

*   `offset` (_Offset_, required)

### Order

Document representing an order.

*   `adjustedMerchandizeTotalTax` (_number (double)_) The total tax on products in the order, including price adjustments, but not including service charges such as shipping. It is read only.  
    Example: `1.5`.
*   `adjustedShippingTotalTax` (_number (double)_) The total tax on shipping charges in the order, including shipping price adjustments. It is read only.  
    Example: `0.3`.
*   `billingAddress` (_object_) The billing address.
    
    Includes all fields of `OrderAddress`.
    
*   `bonusDiscountLineItems` (_array of BonusDiscountLineItem_) The bonus discount line items.
*   `channelType` (_string_) The sales channel. It is read only.  
    Allowed values: `storefront`, `callcenter`, `marketplace`, `dss`, `store`, `pinterest`, `twitter`, `facebookads`, `subscriptions`, `onlinereservation`, `customerservicecenter`, `instagramcommerce`, `tiktok`, `snapchat`, `google`, `whatsapp`, `youtube`. Example: `storefront`.
*   `confirmationStatus` (_string_) The confirmation status.  
    Allowed values: `not_confirmed`, `confirmed`. Example: `confirmed`.
*   `couponItems` (_array of CouponItem_) The coupon items. It is read only.
*   `createdBy` (_string_) This value depends on how the order was created. If a shopper created the order, this value is Customer. If a job created the order, this value is System. Otherwise, this value is the name of the user who created the order. It is read only.  
    Example: `Customer`.
*   `creationDate` (_string (date-time)_) The timestamp when the order was created. It is read only.  
    Example: `2015-05-19T15:23:18.000Z`.
*   `currency` (_object_) The ISO 4217 mnemonic code of the currency. It is read only.
    
    Includes all fields of `CurrencyCode`.
    
*   `customerInfo` (_object_) The customer information for guest or logged-in customers. It is read only.
    
    Includes all fields of `CustomerInfo`.
    
*   `customerName` (_string_) The customer name. It is read only.  
    Example: `Max Mustermann`.
*   `exportStatus` (_string_) The export status of the order.  
    Allowed values: `not_exported`, `exported`, `ready`, `failed`. Example: `exported`.
*   `externalOrderStatus` (_string_) The external status of the order.  
    Example: `Submitted`.
*   `giftCertificateItems` (_array of GiftCertificateItem_) The gift certificate line items. It is read only.
*   `globalPartyId` (_string_) The Customer 360 Global Party ID associated with the shopper. It is read only.  
    Example: `GP_1234`.
*   `lastModified` (_string (date-time)_) The timestamp when the order was last modified. It is read only.  
    Example: `2021-02-25T09:58:08.715Z`.
*   `merchandizeTotalTax` (_number (double)_) The total products tax in the purchase currency. Merchandise total prices represent the sum of product prices not including shipping or adjustments. It is read only.  
    Example: `1.5`.
*   `orderNo` (_object_) The order number.  
    Example: `00000410`.
    
    Includes all fields of `OrderNo`.
    
    Example: `00000410`.
    
*   `orderPriceAdjustments` (_array of PriceAdjustment_) The order-level price adjustments. It is read only.
*   `orderToken` (_string_) The order token used to secure the lookup of an order on base of the plain order number. The order token contains only URL safe characters. It is read only.
*   `orderTotal` (_number (double)_) The total price, including products, shipping, and tax. It is read only.  
    Example: `110.24`.
*   `orderViewCode` (_string_) The order view code used to secure the order lookup of an order using Order Lookup API. The order view code contains only URL safe characters. Warning : Order view code must not be exposed in the URL and must only be displayed to the shopper or sent as an email. Order view code must not be logged in the code. It is read only.
*   `paymentInstruments` (_array of OrderPaymentInstrument_) The payment instruments list.
*   `paymentStatus` (_string_) The payment status.  
    Allowed values: `not_paid`, `part_paid`, `paid`. Example: `paid`.
*   `productItems` (_array of OrderProductItem_) The product items. It is read only.
*   `productSubTotal` (_number (double)_) The total price of all products including item-level adjustments, but not including order-level adjustments or shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `99`.
*   `productTotal` (_number (double)_) The total price of all products in the shipment including item-level adjustments and prorated order-level adjustments, but not including shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `99`.
*   `taxRoundedAtGroup` (_boolean_) If the tax is rounded at the group level, this is set to true. If the tax is rounded at the item or unit level, it is set to false. It is read only.  
    Example: `true`.
*   `shipments` (_array of Shipment_) The shipments. It is read only.
*   `shippingItems` (_array of ShippingItem_) The shipping items. It is read only.
*   `shippingStatus` (_string_) The shipping status.  
    Allowed values: `not_shipped`, `part_shipped`, `shipped`. Example: `shipped`.
*   `shippingTotal` (_number (double)_) The total price of all shipping charges, including shipping adjustments. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `5.99`.
*   `shippingTotalTax` (_number (double)_) The total tax on all shipping charges, not including shipping adjustments. It is read only.  
    Example: `0.3`.
*   `siteId` (_object_) The order's site. It is read only.  
    Example: `ShoppingSite`.
    
    Includes all fields of `SiteId`.
    
    Example: `ShoppingSite`.
    
*   `omsData` (_object_) Information retrieved from Order Management (OMS) for the order.
    
    Includes all fields of `OmsData`.
    
*   `sourceCode` (_string_) The source code assigned to the basket from which this order was created. It is read only.  
    Example: `OUTDOOR1`.
*   `status` (_string_) The status.  
    Allowed values: `created`, `new`, `completed`, `cancelled`, `replaced`, `failed`. Example: `created`.
*   `taxTotal` (_number (double)_) The total tax amount. It is read only.  
    Example: `5.25`.
*   `taxation` (_string_) The taxation policy (gross or net). It is read only.  
    Allowed values: `gross`, `net`. Example: `net`.
*   `groupedTaxItems` (_array of GroupedTaxItem_) Tax values that are grouped and summed based on the tax rate. The tax totals of the line items with the same tax rate are grouped together and summed up. This does not affect the calculation in any way. It is read only.
*   `guest` (_boolean_) The registration status of the customer. It is read only.  
    Example: `true`.

### PaymentBankAccountRequest

Document representing a payment bank account request.

*   `driversLicense` (_string_, required) The driver’s license.  
    Maximum length: 256. Example: `84736485`.
*   `driversLicenseStateCode` (_string_, required) The driver’s license state code.  
    Maximum length: 256. Example: `UT`.
*   `holder` (_string_, required) The holder of the bank account.  
    Maximum length: 256. Example: `John Smith`.
*   `number` (_string_, required) The payment bank account number.  
    Maximum length: 256. Example: `9796976`.

### CustomerPaymentCardRequest

Document representing a customer payment card request.

*   `cardType` (_string_, required) The payment card type (for example, "Visa").  
    Maximum length: 256. Example: `Visa`.
*   `creditCardToken` (_string_) A credit card token. If a credit card is tokenized, the token can be used to look up the credit card data at the token store.  
    Example: `hk2jh293484`.
*   `expirationMonth` (_integer (int32)_, required) The month the payment card expires.  
    Example: `11`.
*   `expirationYear` (_integer (int32)_, required) The year the payment card expires.  
    Example: `9999`.
*   `holder` (_string_, required) The payment card holder.  
    Maximum length: 256. Example: `John Smith`.
*   `issueNumber` (_string_, required) The payment card issue number.  
    Maximum length: 256. Example: `92743927`.
*   `number` (_string_, required) The payment card number.  
    Maximum length: 4000. Example: `4454852652415965`.
*   `validFromMonth` (_integer (int32)_, required) The month the payment card valid is from.  
    Minimum: 1. Maximum: 12. Example: `11`.
*   `validFromYear` (_integer (int32)_, required) The year the payment card is valid from.  
    Example: `23`.

### PaymentCard

Document representing a payment card.

*   `cardType` (_string_) The payment card type.  
    Maximum length: 256. Example: `Visa`.
*   `creditCardExpired` (_boolean_) A flag indicating if the credit card is expired. It is read only.  
    Example: `true`.
*   `creditCardToken` (_string_) A credit card token. If a credit card is tokenized, the token can be used to look up the credit card data in the token store.  
    Example: `E67TY8GQ27X`.
*   `expirationMonth` (_integer (int32)_) The month when the payment card expires.  
    Example: `3`.
*   `expirationYear` (_integer (int32)_) The year when the payment card expires.  
    Example: `2025`.
*   `holder` (_string_) The payment card holder.  
    Maximum length: 256. Example: `Max Mustermann`.
*   `issueNumber` (_string_) The payment card issue number.  
    Maximum length: 256. Example: `2`.
*   `maskedNumber` (_string_) The masked payment card number.  
    Maximum length: 4000. Example: `*********4422`.
*   `numberLastDigits` (_string_) The last digits of the payment card number. It is read only.  
    Maximum length: 4000. Example: `4422`.
*   `validFromMonth` (_integer (int32)_) The month the payment card is valid from.  
    Minimum: 1. Maximum: 12. Example: `5`.
*   `validFromYear` (_integer (int32)_) The year the payment card is valid from.  
    Example: `2015`.

### ResultBase

Schema defining generic list result. Each response schema of a resource requiring a list response should extend this schema. Additionally it needs to be defined what data is returned.

*   `limit` (_integer (int32)_, required) Maximum records to retrieve per request. The limit with its constraints (minimum, maximum, default) is defined by the request parameter `limit` of the endpoint returning this schema.  
    Example: `10`.
*   `total` (_Total_, required)

### CustomerProductListRegistrant

Document representing a customer product list registrant.

*   `email` (_string_, required) The email of the registrant.  
    Example: `jsmith@mail.com`.
*   `firstName` (_string_, required) The first name of the registrant.  
    Example: `John`.
*   `lastName` (_string_, required) The last name of the registrant.  
    Example: `Smith`.
*   `role` (_string_, required) The role of the registrant.  
    Example: `Friend`.

### CustomerAddressInfo

Result document of product list addresses.

*   `addressId` (_string_, required) The ID of the address.  
    Maximum length: 256. Example: `Home`.
*   `title` (_string_, required) The link title.  
    Example: `title`.

### ProductListEvent

Document representing a product list event.

*   `city` (_string_) The city where the event takes place.  
    Example: `New York`.
*   `country` (_string_) The country where the event takes place.  
    Example: `USA`.
*   `date` (_string (date-time)_) The date when the event takes place.  
    Example: `253402214400`.
*   `state` (_string_) The federal state where the event takes place.  
    Example: `UT`.
*   `type` (_string_, required) Type of the event to celebrate.  
    Example: `wedding`.

### ProductListShippingAddress

Document representing a product list shipping address.

*   `addressId` (_string_, required) The ID of this address.  
    Minimum length: 1. Example: `Home`.
*   `city` (_string_) The city of this address.  
    Example: `New York`.
*   `firstName` (_string_) The first name of this address.  
    Example: `John`.
*   `lastName` (_string_) The last name of this address.  
    Example: `Smith`.

### Product

Any product that is sold, shown alone, and does not have variations such as different sizes or colors. A product has no reliance on any other product for inheritance. _A product has a SKU and can have a product option, which has a different SKU_.

*   `brand` (_string_) The product's brand.  
    Example: `Apple`.
*   `bundledProducts` (_array of BundledProduct_) The array of all bundled products of this product.
*   `currency` (_CurrencyCode_)
*   `ean` (_string_) The European Article Number of the product.  
    Example: `8essdf9w3`.
*   `fetchDate` (_integer (int32)_)  
    Example: `5`.
*   `id` (_ProductId_, required)
*   `imageGroups` (_array of ImageGroup_) The array of product image groups.
*   `inventories` (_array of Inventory_) The array of product inventories explicitly requested via the 'inventory\_ids' query parameter. This property is only returned in context of the 'availability' expansion.
*   `inventory` (_object_) The site default inventory information. This property is only returned in context of the 'availability' expansion.
    
    Includes all fields of `Inventory`.
    
*   `longDescription` (_string_) The localized product's long description.  
    Example: `Awesome long description of product`.
*   `manufacturerName` (_string_) The product's manufacturer name.  
    Example: `Apple`.
*   `manufacturerSku` (_string_) The product's manufacturer SKU.  
    Example: `2ND8834`.
*   `master` (_object_) The master product information, only for types: master, variation group, and variant.
    
    Includes all fields of `Master`.
    
*   `minOrderQuantity` (_number (double)_) The minimum order quantity for this product.  
    Example: `2`.
*   `name` (_string_) The localized product name.  
    Example: `Apple IPod Classic`.
*   `options` (_array of Option_) The array of product options, only for type option. This array can be empty.
*   `pageDescription` (_string_) The localized product's page description.  
    Example: `Really good Product`.
*   `pageKeywords` (_string_) The localized product's page description.  
    Example: `Ipod, Music Player`.
*   `pageTitle` (_string_) The localized product's page title.  
    Example: `Apple IPod Classic`.
*   `pageMetaTags` (_array of PageMetaTag_) Page Meta tags associated with the given product.
*   `price` (_number (double)_) The sales price of the product. In case of complex products, like master or set, this is the minimum price of related child products.  
    Example: `59.99`.
*   `pricePerUnit` (_number (double)_) The price per unit if defined for the product  
    Example: `19.99`.
*   `pricePerUnitMax` (_number (double)_) The max price per unit typically for a master product's variant.  
    Example: `29.99`.
*   `priceMax` (_number (double)_) The maximum sales of related child products in complex products like master or set.  
    Example: `69.99`.
*   `priceRanges` (_array of PriceRange_) Array of one or more price range objects representing one or more Pricebooks in context for the site.
*   `prices` (_object_) The prices map with pricebook IDs and their values.
    
    Additional properties: `number (double)`.
    
*   `primaryCategoryId` (_string_) The ID of the products primary category.  
    Example: `electronics`.
*   `primaryCategory` (_object_) The primary category of the product, including its full ancestor breadcrumb path (root to leaf, root category node excluded). Only present when the primary\_category expand is requested.
    *   `id` (_string_) The ID of the primary category.  
        Minimum length: 1. Maximum length: 256. Example: `electronics-digital-media-players`.
    *   `name` (_string_) The localized name of the primary category.  
        Minimum length: 1. Maximum length: 256. Example: `iPod & MP3 Players`.
    *   `slug` (_string_) SEO path persisted for the primary category. This property is omitted when no category URL mapping exists for the requested locale.  
        Minimum length: 1. Maximum length: 256. Example: `electronics/ipod-mp3-players`.
    *   `parentCategoryTree` (_array of object_) The list of ancestor categories from root to the primary category (root category node excluded).
        *   `id` (_string_) The ID of the ancestor category.  
            Minimum length: 1. Maximum length: 256. Example: `electronics`.
        *   `name` (_string_) The name of the ancestor category.  
            Minimum length: 1. Maximum length: 256. Example: `Electronics`.
        *   `slug` (_string_) SEO path persisted for the primary category. This property is omitted when no category URL mapping exists for the requested locale.  
            Minimum length: 1. Maximum length: 256. Example: `electronics/ipod-mp3-players`.
*   `productLinks` (_array of ProductLink_) The array of source and target product links information.
*   `productPromotions` (_array of ProductPromotion_) An array of active customer product promotions for this product, sorted by promotion priority using SORT\_BY\_EXCLUSIVITY ordering (exclusivity → rank → promotion class → discount type → best discount → ID). This array can be empty. Coupon promotions are not returned in this array. See [PromotionPlan.SORT\_BY\_EXCLUSIVITY](https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/scriptapi/html/index.html?target=class_dw_campaign_PromotionPlan.html) for more details.
*   `recommendations` (_array of Recommendation_) Returns a list of recommendations.
*   `setProducts` (_array of Product_) The array of set products of this product.
*   `shortDescription` (_string_) The localized product short description.  
    Example: `Awesome Product`.
*   `slug` (_string_) The SEO URL slug for the product. Only present when the slug expand is requested and the slug feature is enabled.  
    Maximum length: 256. Example: `modern-dress-shirt/74974310M.html`.
*   `slugUrl` (_string_) The complete link to this product's storefront page.  
    Example: `https://www.example.com/on/store/Sites-MySite/default/Product-Show?pid=MyProduct`.
*   `stepQuantity` (_number (double)_) The steps in which the order amount of the product can be increased.  
    Example: `2`.
*   `tieredPrices` (_array of ProductPriceTable_) The document represents list of tiered prices if the product is a variant
*   `type` (_object_) The product type information. Can be one or more of the following values: item, master, variation\_group, variant, bundle, and set.
    
    Includes all fields of `ProductType`.
    
*   `unit` (_string_) The sales unit of the product.  
    Example: `lbs`.
*   `upc` (_string_) The Universal Product Code (UPC).  
    Example: `JSDU876`.
*   `validFrom` (_string (date-time)_) The time a product is valid from.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `validTo` (_string (date-time)_) The time a product is valid to.  
    Example: `9999-12-31T23:59:59.0Z`.
*   `variants` (_array of Variant_) The array of actual variants. Only for master, variation group, and variant types. This array can be empty.
*   `variationAttributes` (_array of VariationAttribute_) Sorted array of variation attributes information. Only for master, variation group, and variant types. This array can be empty.
*   `variationGroups` (_array of VariationGroup_) The array of actual variation groups. Only for master, variation group, and variant types. This array can be empty.
*   `variationValues` (_object_) The actual variation attribute ID - value pairs. Only for variant and variation group types.
    
    Additional properties: `string`.
    
*   `shippingMethods` (_array of ShippingMethod_) The array of applicable shipping methods for this product. This array can be empty. This property is only returned in context of the 'shipping\_methods' expansion.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### ProductId

The id (SKU) of the product.

Type: `string`.

Minimum length: 1. Maximum length: 100. Example: `apple-ipod-classic`.

### PublicProductListInfo

Document representing a link to a public product list.

*   `description` (_string_) The description of this product list.  
    Example: `Super Awesome ProductList`.
*   `id` (_string_, required) The ID of the product-list document.  
    Example: `3958739435`.
*   `name` (_string_) The name of this product list.  
    Example: `My Product List`.
*   `title` (_string_, required) The link title.  
    Example: `Product List Title`.
*   `type` (_string_, required) The type of the product list.  
    Allowed values: `wish_list`, `gift_registry`, `shopping_list`, `custom_1`, `custom_2`, `custom_3`. Example: `custom_1`.

### ProductListRegistrant

A `ProductListRegistrant` is typically associated with an event-related product list, such as a gift registry. It holds information about a person associated with the event, such as a bride or groom.

*   `firstName` (_string_, required) The first name of the registrant.  
    Example: `John`.
*   `lastName` (_string_, required) The last name of the registrant.  
    Example: `Smith`.
*   `role` (_string_, required) The role of the registrant.  
    Example: `CEO`.

### OrderAddress

Document representing an order address.

*   `address1` (_string_) The first address line.  
    Example: `45 Main Rd.`.
*   `address2` (_string_) The second address line.  
    Example: `Apartment 204`.
*   `city` (_string_) The city.  
    Example: `Boston`.
*   `companyName` (_string_) The company name.  
    Example: `Salesforce`.
*   `countryCode` (_CountryCode_)
*   `firstName` (_string_) The first name.  
    Example: `Max`.
*   `fullName` (_string_) The full name.  
    Example: `Max Mustermann`.
*   `id` (_string_) The ID of the address.  
    Example: `me`.
*   `jobTitle` (_string_) The job title.  
    Example: `Software Engineer`.
*   `lastName` (_string_) The last name.  
    Example: `Mustermann`.
*   `phone` (_string_) The phone number.  
    Example: `6175555555`.
*   `postBox` (_string_) The post office box.  
    Example: `PO BOX 109`.
*   `postalCode` (_string_) The postal code.  
    Example: `05408`.
*   `salutation` (_string_) The salutation.  
    Example: `Mr`.
*   `secondName` (_string_) The second name.
*   `stateCode` (_string_) The state code.  
    Example: `MA`.
*   `suffix` (_string_) The suffix.  
    Example: `Sr`.
*   `suite` (_string_) The suite.  
    Example: `24A`.
*   `title` (_string_) The title.  
    Example: `Dr.`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### BonusDiscountLineItem

Document representing a bonus discount line item.

*   `bonusProducts` (_array of ProductDetailsLink_) The bonus products the customer can choose from.
*   `couponCode` (_string_) The coupon code that triggered the promotion, if applicable.  
    Example: `5ties`.
*   `id` (_string_) The ID of the line item. It is read only.  
    Example: `91f4dd8bfa0653d58b7783b04f`.
*   `maxBonusItems` (_integer (int32)_) The maximum number of bonus items the user can select for this promotion.
*   `promotionId` (_string_) The ID of the promotion that triggered the creation of the line item.  
    Example: `Buy1Get2`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### CouponItem

Document representing a coupon item.

*   `code` (_string_, required) The coupon code.  
    Maximum length: 256. Example: `5ties`.
*   `couponItemId` (_object_) The coupon item ID. It is read only.
    
    Includes all fields of `CouponItemId`.
    
*   `statusCode` (_string_) The status of the coupon item. It is read only.  
    Allowed values: `coupon_code_already_in_basket`, `coupon_code_already_redeemed`, `coupon_code_unknown`, `coupon_disabled`, `redemption_limit_exceeded`, `customer_redemption_limit_exceeded`, `timeframe_redemption_limit_exceeded`, `no_active_promotion`, `coupon_already_in_basket`, `no_applicable_promotion`, `applied`, `adhoc`. Example: `no_applicable_promotion`.
*   `valid` (_boolean_) A flag indicating whether the coupon item is valid. A coupon line item is valid if the status code is "applied" or "no\_applicable\_promotion". It is read only.  
    Example: `true`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### CurrencyCode

A three letter uppercase currency code conforming to the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard, or the string `N/A` indicating that a currency is not applicable.

Type: `string`.

Pattern: ^(\[A-Z\]\[A-Z\]\[A-Z\]|N/A)$. Example: `USD`.

### CustomerInfo

The customer information for guest or logged-in customers.

*   `customerId` (_string_) The customer ID. It is read only.  
    Maximum length: 100. Example: `abMKqMaNYOBMnNdDNzyC5oNTi5`.
*   `customerName` (_string_) The customer name.  
    Example: `Max Mustermann`.
*   `customerNo` (_string_) The customer number.  
    Maximum length: 100. Example: `0002352`.
*   `email` (_string_, required) The customer's email address.  
    Example: `no-reply@salesforce.com`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### GiftCertificateItem

A gift certificate item.

*   `amount` (_number (double)_, required) The gift certificate item amount.  
    Example: `20`.
*   `giftCertificateItemId` (_object_) The item ID. It is read only.
    
    Includes all fields of `GiftCertificateItemId`.
    
*   `message` (_string_) The gift certificate message.  
    Maximum length: 4000. Example: `Birthday present.`.
*   `recipientEmail` (_string_, required) The recipient email.  
    Minimum length: 1. Example: `no-reply@salesforce.com`.
*   `recipientName` (_string_) The recipient's name.  
    Example: `Daniel Mustermann`.
*   `senderName` (_string_) The sender's name.  
    Example: `Max Mustermann`.
*   `shipmentId` (_string_) The ID of the shipment this item belongs to.  
    Example: `me`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### GroupedTaxItem

Document representing the grouped tax item.

*   `taxRate` (_number (double)_) The tax rate. It is read only.  
    Example: `0.1`.
*   `taxValue` (_number (double)_) The summed up tax total for the tax rate. It is read only.  
    Example: `10.03`.

### PriceAdjustment

Document representing a price adjustment within a basket or order. Price adjustments can be assigned at the order, product, or shipping level.

*   `appliedDiscount` (_object_) Details describing the discount this price adjustment is based on. For adjustments not based on a discount, this value is null.
    
    Includes all fields of `Discount`.
    
*   `couponCode` (_string_) The coupon code of the coupon this price adjustment is based on. For adjustments not based on a coupon, this value is null. It is read only.  
    Example: `5ties`.
*   `createdBy` (_string_) The user who created the price adjustment. It is read only.  
    Example: `Support`.
*   `creationDate` (_string (date-time)_) The timestamp when the price adjustment was created. It is read only.  
    Example: `2015-05-19T15:23:18.000Z`.
*   `custom` (_boolean_) A flag indicating whether this price adjustment was created by custom logic. This flag is set to true unless the price adjustment was created by the promotion engine.  
    Example: `true`.
*   `itemText` (_string_) The text describing the item.
*   `lastModified` (_string (date-time)_) The timestamp when the price adjustment was last modified. It is read only.  
    Example: `2021-02-25T09:58:08.715Z`.
*   `manual` (_boolean_) A flag indicating whether this price adjustment was created by a manual process. If the price adjustment was created by the promotion engine, this value is always false.  
    Example: `true`.
*   `price` (_number (double)_) The adjustment price. It is read only.  
    Example: `120.88`.
*   `priceAdjustmentId` (_object_) The price adjustment ID. It is read only.
    
    Includes all fields of `PriceAdjustmentId`.
    
*   `promotionId` (_string_) The ID of the related promotion. Custom price adjustments can be assigned any promotion ID so long it is not used by a price adjustment belonging to the same item, and is not used by a promotion defined in the promotion engine. If not specified, a promotion ID is generated.
*   `reasonCode` (_string_) The reason for the price adjustment.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### OrderPaymentInstrument

Document representing an order payment instrument.

*   `amount` (_number (double)_) The payment transaction amount.  
    Example: `130.88`.
*   `authorizationStatus` (_object_) The authorization status of the payment transaction. It is read only.
    
    Includes all fields of `Status`.
    
*   `bankRoutingNumber` (_string_) The bank routing number.  
    Maximum length: 256. Example: `12030000`.
*   `maskedGiftCertificateCode` (_string_) The gift certificate code with the last 4 characters not masked.  
    Example: `******Gzzy`.
*   `paymentCard` (_object_) The payment card.
    
    Includes all fields of `PaymentCard`.
    
*   `giftCard` (_object_) The gift card.
    
    Includes all fields of `GiftCardResponse`.
    
*   `paymentInstrumentId` (_object_) The payment instrument ID. It is read only.
    
    Includes all fields of `PaymentInstrumentId`.
    
*   `paymentMethodId` (_string_) The payment method ID. It is read only.  
    Maximum length: 256. Example: `CREDIT_CARD`.
*   `paymentReference` (_object_) Payment reference information for various payment service providers, only when Salesforce Payments is enabled.
    *   `paymentReferenceId` (_string_) Payment reference identifier. Can be payment intent ID for Stripe, PSP reference for Adyen, PayPal order ID for PayPal, or similar identifier for other payment providers.  
        Maximum length: 256. Example: `pi_3N4B2vF0wDjebNCp1234567`.
    *   `gateway` (_string_) The payment gateway used to process the payment.  
        Allowed values: `stripe`, `paypal`, `adyen`. Example: `stripe`.
    *   `gatewayProperties` (_object_) The payment gateway specific properties.
        *   `stripe` (_object_)
            
            ## Stripe specific properties.
            
            *   setupFutureUsage: Indicates that you intend to make future payments with this payment method.
                *   **on\_session**: The payment method is intended to be used for a future payment on the same website session.
                *   **off\_session**: The payment method is intended to be used for a future payment on a different website session.
            *   **null**: The payment method is not intended to be used for a future payment.
            *   clientSecret: Secret for Stripe client-side payment confirmation. Don't store, log, or expose the client secret to anyone other than the customer, and only use it on pages where TLS is enabled.
                *   type: string
                *   maxLength: 256
                *   example: "pi\_1J4K5L2eZvKYlo2CyZ8K5L6M\_secret\_abc123"
        *   `paypal` (_object_)
            
            ## PayPal specific properties.
            
        *   `adyen` (_object_)
            
            ## Adyen specific properties.
            
            *   adyenError: Error information returned by Adyen if the payment fails. Null on success.
            *   adyenPaymentIntent: The Adyen payment intent object containing payment details and required actions.
                *   resultCode: The result of the payment request (for example, "REDIRECT\_SHOPPER", "AUTHORISED", "PENDING", "REFUSED").
                *   accountID: The Adyen merchant account ID.
                *   adyenPaymentIntentAction: The action object for payment methods requiring additional shopper interaction.
                    *   url: The URL for completing the payment (redirect or 3DS authentication).
                    *   type: The action type (for example, "redirect", "threeDS2", "voucher").
                    *   method: The HTTP method for the action (for example, "GET", "POST").
            *   successful: A boolean indicating whether the Adyen operation is successful.

### BasketProductItem

Document representing a basket product item.

Includes all fields of `ProductItem`.

### Shipment

Document representing a shipment.

*   `adjustedMerchandizeTotalTax` (_number (double)_) The total tax on products in the shipment, including item-level price adjustments but not including service charges such as shipping. If the Discount Taxation preference is set to Tax Products and Shipping Only Based on Adjusted Price, this amount also includes prorated order-level price adjustments. It is read only.  
    Example: `4.95`.
*   `adjustedShippingTotalTax` (_number (double)_) The total tax on shipping charges in the shipment, including shipping price adjustments. It is read only.  
    Example: `0.3`.
*   `gift` (_boolean_) A flag indicating whether the shipment is a gift. It is read only.  
    Example: `true`.
*   `giftMessage` (_string_) The gift message.  
    Example: `Happy Birthday`.
*   `merchandizeTotalTax` (_number (double)_) The total tax on products in the shipment, not including price adjustments or service charges such as shipping. It is read only.  
    Example: `4.95`.
*   `productSubTotal` (_number (double)_) The total price of all products in the shipment, including item-level adjustments, but not including order-level adjustments or shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `99`.
*   `productTotal` (_number (double)_) The total price of all products in the shipment including item-level adjustments and prorated order-level adjustments, but not including shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `99`.
*   `shipmentId` (_object_) The order-specific ID of the shipment. The default value is 'me'.  
    Default: `me`.
    
    Includes all fields of `ShipmentId`.
    
    Default: `me`.
    
*   `shipmentNo` (_string_) The shipment number of this shipment. This number is automatically generated. It is read only.
*   `shipmentTotal` (_number (double)_) The total price of all products in the shipment including item-level adjustments, shipping charges, and tax. It is read only.  
    Example: `39.99`.
*   `shippingAddress` (_object_) The shipping address.
    
    Includes all fields of `OrderAddress`.
    
*   `shippingMethod` (_ShippingMethod_)
*   `shippingStatus` (_string_) The shipping status of the shipment.  
    Allowed values: `not_shipped`, `shipped`. Example: `shipped`.
*   `shippingTotal` (_number (double)_) The total price of all shipping charges in the shipment, including shipping adjustments. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `5.99`.
*   `shippingTotalTax` (_number (double)_) The total tax on shipping charges in the shipment, not including shipping price adjustments. It is read only.  
    Example: `0.3`.
*   `taxTotal` (_number (double)_) The total tax on the shipment, including item-level price adjustments and service charges such as shipping. If the Discount Taxation preference is set to Tax Products and Shipping Only Based on Adjusted Price, this amount also includes prorated order-level price adjustments. It is read only.  
    Example: `1.8`.
*   `trackingNumber` (_string_) The tracking number of the shipment.  
    Example: `1Z204E380338943508`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### ShippingItem

Document representing a shipping item.

*   `adjustedTax` (_number (double)_) The tax for the shipping item, including price adjustments. It is read only.  
    Example: `19`.
*   `basePrice` (_number (double)_) The base price of the shipping item, which is the unit price not including adjustments. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `50`.
*   `itemId` (_string_) The shipping item ID. Use it to identify this shipping item when updating its quantity or creating a custom price adjustment for it. It is read only.  
    Example: `430ef5aad3a24de59378458434`.
*   `itemText` (_string_) The text describing the shipping item.  
    Example: `Shipping`.
*   `price` (_number (double)_) The price of the line item before applying any adjustments. If the line item is based on net pricing then the net price is returned. If the line item is based on gross pricing then the gross price is returned. It is read only.
*   `priceAdjustments` (_array of PriceAdjustment_) The price adjustments.
*   `priceAfterItemDiscount` (_number (double)_) The price of the shipping item including item-level adjustments, but not including order-level adjustments or shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.
*   `shipmentId` (_object_) The identifier of the shipment to which this item belongs.
    
    Includes all fields of `ShipmentId`.
    
*   `tax` (_number (double)_) The tax on the product item, not including adjustments. It is read only.  
    Example: `0.19`.
*   `taxBasis` (_number (double)_) The price used to calculate the tax for this shipping item. It is read only.
*   `taxClassId` (_string_) The tax class ID for the product item, or null if no tax class ID is associated with the product item. It is read only.
*   `taxRate` (_number (double)_) The tax rate applicable to this product line item. For a 10% tax rate, the value is 0.1. It is read only.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### Offset

The zero-based index of the first hit/data to include in the result.

Type: `integer (int32)`.

Default: `0`. Minimum: 0. Example: `0`.

### OrderNo

The order number

Type: `string`.

Minimum length: 1. Maximum length: 50. Example: `00000410`.

### OrderProductItem

Document representing an order product item.

Includes all fields of `ProductItem`.

*   `omsData` (_object_) Product information retrieved from Order Management (OMS). Only available in the context of an order.
    
    Includes all fields of `OmsProductData`.
    

### OmsData

Additional information retrieved from Order Management (OMS) See [https://developer.salesforce.com/docs/atlas.en-us.order\_management\_developer\_guide.meta/order\_management\_developer\_guide/sforce\_api\_objects\_ordersummary.htm](https://developer.salesforce.com/docs/atlas.en-us.order_management_developer_guide.meta/order_management_developer_guide/sforce_api_objects_ordersummary.htm) for more information.

*   `status` (_string_) Current status of the order  
    Example: `shipped`.
*   `shipments` (_array of OmsShipment_) List of shipments associated with the order

### Total

The total number of hits that match the search's criteria. This can be greater than the number of results returned as search results are pagenated.

Type: `integer (int32)`.

Default: `0`. Minimum: 0. Example: `10`.

### BundledProduct

A bundle of products that can be bought together (all or nothing). Each product in the bundle can itself be bought independently, but this is outside of the context of the bundle. A bundle is a purchasing convenience. _Product bundle has a SKU and price._

*   `id` (_string_, required)  
    Example: `823476`.
*   `product` (_object_, required) The product being bundled.
    
    Includes all fields of `Product`.
    
*   `quantity` (_number (double)_, required) For the product being bundled, the quantity added to the bundle.  
    Example: `5`.

### ImageGroup

Document representing an image group containing a list of images for a particular view type and an optional variation value.

*   `images` (_array of Image_, required) The images of the image group.
*   `variationAttributes` (_array of VariationAttribute_) Returns a list of variation attributes applying to this image group.
*   `viewType` (_string_, required) The image view type.  
    Example: `hi-res`.

### Inventory

Document representing inventory information of the current product for a particular inventory list.

*   `ats` (_number (double)_) The Available To Sell (ATS) of the product. If it is infinity, the return value is 999999. The value can be overwritten by the OCAPI setting 'product.inventory.ats.max\_threshold'.  
    Example: `15`.
*   `backorderable` (_boolean_) A flag indicating whether the product is backorderable.  
    Example: `true`.
*   `id` (_InventoryId_, required)
*   `inStockDate` (_string (date-time)_) A flag indicating the date when the product will be in stock.  
    Example: `9999-12-31T00:00:00.0Z`.
*   `orderable` (_boolean_) A flag indicating whether at least one of the products is available to sell.  
    Example: `true`.
*   `preorderable` (_boolean_) A flag indicating whether the product is preorderable.  
    Example: `false`.
*   `stockLevel` (_number (double)_) The stock level of the product. If it is infinity, the return value is 999999. The value can be overwritten by the OCAPI setting 'product.inventory.stock\_level.max\_threshold'.  
    Example: `10`.

### Master

The master product is a representation of a group of variant products. This is a non-buyable entity, provides inheritable attributes for its product variants, and is used for navigation. _Doesn't have a SKU._

*   `masterId` (_object_, required) The ID (SKU) of the master product.
    
    Includes all fields of `ProductId`.
    
*   `orderable` (_boolean_) A flag indicating whether at least one of the variants can be ordered.  
    Example: `true`.
*   `price` (_object_) The minimum sales price of the related variants.
    
    Includes all fields of `Price`.
    
*   `priceMax` (_object_) The maximum sales price of the related variants.
    
    Includes all fields of `Price`.
    
*   `prices` (_object_) List of sale prices.
    
    Additional properties: `number (double)`.
    

### Option

Product options enable you to sell configurable products that have optional accessories, upgrades, or additional services. Options are always purchased with a product and can't be purchased separately. _Product Option has a SKU and a price associated with it._

*   `description` (_string_) The localized description of the option.  
    Example: `Get this Option`.
*   `id` (_object_, required) The ID of the option.  
    Example: `Warranty`.
    
    Includes all fields of `ProductId`.
    
    Example: `Warranty`.
    
*   `image` (_string_) The URL to the option image.  
    Example: `https://www.exampleimage.com/images/optionImage.jpg`.
*   `name` (_string_) The localized name of the option.  
    Example: `Warranty`.
*   `values` (_array of OptionValue_) The array of option values. This array can be empty.

### PageMetaTag

Document representing a Page Meta Tag object.

*   `id` (_string_) The ID of the Page Meta Tag.  
    Maximum length: 100. Example: `title`.
*   `value` (_string_) Locale-specific value of the Page Meta Tag, evaluated by resolving the rule set for the given Business Manager ID.  
    Example: `Buy the Long Sleeve Covered Placket Blouse for USD 61.99.`.
*   `type` (_string_)
    
    The kind of Page Meta Tag, indicating how the storefront should render the value. Documented values are `name`, `property`, `title`, and `jsonld`:
    
    *   `name` — render as `<meta name="...">`.
    *   `property` — render as `<meta property="...">` (e.g. Open Graph tags).
    *   `title` — render as the HTML `<title>` element.
    *   `jsonld` — JSON-LD structured data, intended for rendering inside `<script type="application/ld+json">`. The field may be absent when the kind cannot be determined. Clients should treat unknown values as opaque so additional kinds can be introduced without breaking the contract.
    
      
    Maximum length: 64. Example: `name`.

### PriceRange

Document representing price ranges for a product which happens to be a master product (per Pricebook)

*   `maxPrice` (_object_) Maximum price for the given pricebook (usually for a master Product would be the price for the Variant which has the highest price out of all Variants in that pricebook)
    
    Includes all fields of `Price`.
    
*   `minPrice` (_object_) Minimum price for the given pricebook (usually for a master Product would be the price for the Variant which has the least price out of all Variants in that pricebook)
    
    Includes all fields of `Price`.
    
*   `pricebook` (_string_) The active pricebook from which the min and the max prices are calculated. The pricebook is based on the site context of the request as defined in ECOM.  
    Example: `usd-list-pricebook`.

### ProductLink

Document representing a link between two products. It contains the ID of the source and target products, the type of product link, and the URLs to retrieve product data.

*   `sourceProductId` (_object_, required) The semantic ID of the product this product link is coming from.  
    Example: `824756924`.
    
    Includes all fields of `ProductId`.
    
    Example: `824756924`.
    
*   `sourceProductLink` (_string_, required) The URL addressing the product this product link is coming from.  
    Example: `Link`.
*   `targetProductId` (_object_, required) The semantic ID of the product this product link is pointing to.  
    Example: `2TR93459`.
    
    Includes all fields of `ProductId`.
    
    Example: `2TR93459`.
    
*   `targetProductLink` (_string_, required) The URL addressing the product this product link is pointing to.  
    Example: `Link`.
*   `type` (_string_, required) The type of product link.  
    Allowed values: `cross_sell`, `replacement`, `up_sell`, `accessory`, `newer_version`, `alt_orderunit`, `spare_part`, `other`. Example: `up_sell`.

### ProductPromotion

Document representing a product promotion.

*   `calloutMsg` (_string_, required) The localized call-out message of the promotion.  
    Example: `Fantastic promotion`.
*   `promotionId` (_string_, required) The unique ID of the promotion.  
    Example: `summerSale`.
*   `promotionalPrice` (_object_, required) The promotional price for this product.
    
    Includes all fields of `Price`.
    

### Recommendation

Document representing a product recommendation.

*   `calloutMsg` (_string_) The localized callout message of the recommendation.  
    Example: `Absolutely recommended`.
*   `image` (_Image_)
*   `longDescription` (_string_) The localized long description of the recommendation.  
    Example: `Really good detailed product description`.
*   `name` (_string_) The localized name of the recommendation.  
    Example: `Apple Ipod Shuffle`.
*   `recommendationType` (_RecommendationType_, required)
*   `recommendedItemId` (_string_) The recommended item ID of the recommendation.  
    Example: `apple-ipod-shuffle`.
*   `shortDescription` (_string_) The localized short description of the recommendation.  
    Example: `Product description`.

### ProductPriceTable

Tiered Price Level Object

*   `price` (_object_) Price for the product for the specified tier for the specified pricebook
    
    Includes all fields of `Price`.
    
*   `pricebook` (_string_) The active pricebook for which this price is defined  
    Example: `usd-list-pricebook`.
*   `quantity` (_number (double)_) Quantity tier for which the price is defined.  
    Example: `1`.

### ProductType

Document representing a product type.

*   `bundle` (_boolean_) A flag indicating whether the product is a bundle.  
    Example: `true`.
*   `item` (_boolean_) A flag indicating whether the product is a standard item.  
    Example: `false`.
*   `master` (_boolean_) A flag indicating whether the product is a master.  
    Example: `true`.
*   `option` (_boolean_) A flag indicating whether the product is an option.  
    Example: `false`.
*   `set` (_boolean_) A flag indicating whether the product is a set.  
    Example: `true`.
*   `variant` (_boolean_) A flag indicating whether the product is a variant.  
    Example: `false`.
*   `variationGroup` (_boolean_) A flag indicating whether the product is a variation group.  
    Example: `false`.

### Variant

A product which is a variation within a master product that describes different colors, sizes, or other variation attributes. _Has a SKU._

*   `orderable` (_boolean_) A flag indicating whether the variant is orderable.  
    Example: `true`.
*   `price` (_object_) The sales price of the variant.
    
    Includes all fields of `Price`.
    
*   `productId` (_object_, required) The ID (SKU) of the variant.  
    Example: `8W4756834`.
    
    Includes all fields of `ProductId`.
    
    Example: `8W4756834`.
    
*   `tieredPrices` (_array of ProductPriceTable_) List of tiered prices if the product is a variant
*   `variationValues` (_object_) The actual variation attribute ID - value pairs.
    
    Additional properties: `string`.
    

### VariationAttribute

Document representing a variation attribute.

*   `id` (_string_, required) The ID of the variation attribute.  
    Minimum length: 1. Example: `color`.
*   `name` (_string_) The localized display name of the variation attribute.  
    Example: `Color`.
*   `values` (_array of VariationAttributeValue_) The sorted array of variation values. This array can be empty.

### VariationGroup

Representation of a group of variant products by an attribute. This is a non-buyable entity, provides inheritable attributes for its product variants, and is used for navigation. _Doesn't have a SKU._

*   `orderable` (_boolean_, required) A flag indicating whether the variation group is orderable.  
    Example: `false`.
*   `price` (_object_, required) The sales price of the variation group.
    
    Includes all fields of `Price`.
    
*   `productId` (_object_, required) The ID (SKU) of the variation group.  
    Example: `49345VG`.
    
    Includes all fields of `ProductId`.
    
    Example: `49345VG`.
    
*   `variationValues` (_object_, required) The actual variation attribute ID - value pairs.
    
    Additional properties: `string`.
    

### ShippingMethod

Document representing a shipping method.

*   `description` (_string_) The localized description of the shipping method.  
    Example: `Order received within 7-10 business days`.
*   `externalShippingMethod` (_string_) The external shipping method.
*   `id` (_string_, required) The shipping method ID.  
    Maximum length: 256. Example: `001`.
*   `name` (_string_) The localized name of the shipping method.  
    Example: `Ground`.
*   `price` (_number (double)_) The shipping cost total, including shipment level costs, product level fix, and surcharge costs. It is read only.  
    Example: `15`.
*   `shippingPromotions` (_array of ShippingPromotion_) The array of active customer shipping promotions for this shipping method. This array can be empty.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### CountryCode

A two letter uppercase country code conforming to the [ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) alpha-2 standard.

Type: `string`.

Pattern: ^\[A-Z\]\[A-Z\]$. Example: `US`.

### ProductDetailsLink

Document representing a link to the resource for product details.

*   `productDescription` (_string_) The description of the product.  
    Example: `Nintendo DS revolutionizes handheld gameplay.`.
*   `productId` (_ProductId_, required)
*   `productName` (_string_) The name of the product.  
    Example: `Nintendo DS Game Console`.
*   `title` (_string_) The link title.  
    Example: `Nintendo DS Game Console`.

### CouponItemId

The coupon item ID

Type: `string`.

Minimum length: 1. Example: `d4c9c0141e9c74c150225580f3`.

### GiftCertificateItemId

Type: `string`.

Minimum length: 1. Example: `629dea6e7b61e58da629b57b21`.

### Discount

Document representing a discount.

*   `amount` (_number (double)_) The discount amount for discount types that define specific discount amounts. It is read only.  
    Example: `130.88`.
*   `percentage` (_number (double)_) The discount percent for discount types that define percentage discounts. It is read only.  
    Example: `0.19`.
*   `priceBookId` (_string_) The price book ID that is used with some types. It is read only.  
    Example: `usd-sale-prices`.
*   `type` (_string_, required) The type of discount. It is read only.  
    Allowed values: `percentage`, `fixed_price`, `amount`, `free`, `price_book_price`, `bonus`, `total_fixed_price`, `bonus_choice`, `percentage_off_options`. Example: `fixed_price`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### PriceAdjustmentId

Type: `string`.

Example: `ba248424e3eee797f062161f8b`.

### Status

Document representing an object status.

*   `code` (_string_) The status code.
*   `message` (_string_) The status message.
*   `status` (_integer (int32)_) The status. For more information on the status values see Status.OK and Status.ERROR.

### GiftCardResponse

Document representing a gift card response.

*   `brand` (_string_) The gift card brand.  
    Maximum length: 256. Example: `givex`.
*   `maskedCardNumber` (_string_) The masked gift card number.  
    Maximum length: 40. Example: `*********4422`.
*   `expirationMonth` (_integer (int32)_) The month when the gift card expires.  
    Example: `1`.
*   `expirationYear` (_integer (int32)_) The year when the gift card expires.  
    Example: `2030`.

### PaymentInstrumentId

The payment instrument ID

Type: `string`.

Example: `ba248424e3eee797f062162f8b`.

### ProductItem

Document representing a product item.

*   `adjustedTax` (_number (double)_) The tax on the line item, including any adjustments. It is read only.  
    Example: `19`.
*   `basePrice` (_number (double)_) The base price of the line item, which is the unit price not including adjustments. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `130`.
*   `bonusDiscountLineItemId` (_string_) The ID of the bonus discount line item this bonus product relates to. It is read only.
*   `bonusProductLineItem` (_boolean_) A flag indicating whether the product item is a bonus.  
    Example: `true`.
*   `bundledProductItems` (_array of ProductItem_) The bundled product items.
*   `gift` (_boolean_) Returns true if the item is a gift. It is read only.  
    Example: `true`.
*   `giftMessage` (_string_) The gift message.  
    Example: `Happy Birthday`.
*   `inventoryId` (_string_) The inventory list ID associated with this item.  
    Maximum length: 256. Example: `inventory`.
*   `itemId` (_object_) The product item ID. Use it to identify this item when updating its quantity or creating a custom price adjustment for it. It is read only.
    
    Includes all fields of `ItemId`.
    
*   `itemText` (_string_) The text describing the item.
*   `optionItems` (_array of OptionItem_) The option items.
*   `price` (_number (double)_) The price of the line item before applying any adjustments. If the line item is based on net pricing then the net price is returned. If the line item is based on gross pricing then the gross price is returned. It is read only.
*   `priceAdjustments` (_array of PriceAdjustment_) The price adjustments.
*   `priceAfterItemDiscount` (_number (double)_) The price of the product line item including item-level adjustments, but not including order-level adjustments or shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `20.99`.
*   `priceAfterOrderDiscount` (_number (double)_) The price of the product line item including item-level adjustments and prorated order-level adjustments, but not including shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `15.5`.
*   `productId` (_string_) The ID of the product.  
    Maximum length: 100. Example: `nintendo-ds-console`.
*   `productListItem` (_object_) If this product line item was added from a product list, this value is a reference to the corresponding product list item.
    
    Includes all fields of `ProductListItemReference`.
    
*   `productName` (_string_) The name of the product.  
    Example: `Nintendo DS Game Console`.
*   `qualifyingProductItemId` (_string_) Returns the id of the ProductLineItem that qualified the basket for this bonus product. This method is only applicable if the product line item is a bonus product line item, and if the promotion is a product promotion with number of qualifying products granting a bonus-product discount. If these conditions aren't met, the method returns null. If there are multiple product line items that triggered this bonus product, this method returns the last one by position within the order.  
    Maximum length: 28.
*   `quantity` (_number (double)_) The quantity of the products represented by this item.  
    Minimum: 0. Example: `1`.
*   `shipmentId` (_string_) The ID of the shipment this item belongs to.  
    Example: `me`.
*   `shippingItemId` (_string_) If the product line item has a related shipping item, this value is its ID. A related shipping item represents a surcharge applied to individual products using a particular shipping method. It is read only.  
    Example: `006490dcc338feeafc71c964bf`.
*   `tax` (_number (double)_) The tax for the product item, not including price adjustments. It is read only.  
    Example: `0.3`.
*   `taxBasis` (_number (double)_) The price used to calculate the tax for this product item. It is read only.  
    Example: `30`.
*   `taxClassId` (_string_) The tax class ID for the product item, or null if no tax class ID is associated with the product item. It is read only.
*   `taxRate` (_number (double)_) The tax rate, which is the decimal tax rate to be applied to the product represented by this item. It is read only.  
    Example: `0.9`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### ShipmentId

The identifier of the shipment

Type: `string`.

Minimum length: 1. Example: `me`.

### OmsProductData

Additional information retrieved from Order Management (OMS) See [https://developer.salesforce.com/docs/atlas.en-us.order\_management\_developer\_guide.meta/order\_management\_developer\_guide/sforce\_api\_objects\_orderitemsummary.htm](https://developer.salesforce.com/docs/atlas.en-us.order_management_developer_guide.meta/order_management_developer_guide/sforce_api_objects_orderitemsummary.htm) for more information. Only available in context of an order.

*   `status` (_string_) Order Management (OMS) status  
    Allowed values: `ordered`, `returned`, `canceled`, `paid`, `reshipped`, `fulfilled`, `partially_fulfilled`, `allocated`, `partially_allocated`, `return_initiated`. Example: `ordered`.
*   `quantityAvailableToCancel` (_number (double)_) The quantity that can be cancelled.  
    Example: `2`.

### OmsShipment

Shipment information from Salesforce Order Management created during fulfillment process. See [https://developer.salesforce.com/docs/atlas.en-us.230.0.order\_management\_developer\_guide.meta/order\_management\_developer\_guide/sforce\_api\_objects\_fulfillmentorder.htm](https://developer.salesforce.com/docs/atlas.en-us.230.0.order_management_developer_guide.meta/order_management_developer_guide/sforce_api_objects_fulfillmentorder.htm) for more information.

*   `id` (_string_) Unique identifier for the shipment  
    Example: `0OBVF000000003F4AQ`.
*   `status` (_string_) Current status of the shipment  
    Example: `shipped`.
*   `provider` (_string_) Shipping provider name  
    Example: `UPS`.
*   `trackingNumber` (_string_) Tracking number for the shipment  
    Example: `123456789`.
*   `trackingUrl` (_string_) URL to track the shipment  
    Example: `https://www.ups.com/track?loc=en_US&tracknum=123456789`.
*   `expectedDeliveryDate` (_string (date-time)_) Expected delivery date and time  
    Example: `2025-11-12T20:00:00.000+0000`.
*   `actualDeliveryDate` (_string (date-time)_) Actual delivery date and time (null if not yet delivered)  
    Example: `2025-11-12T20:00:00.000+0000`.
*   `shipmentItems` (_array of OmsShipmentItem_) Items included in this shipment

### Image

Product image

*   `alt` (_string_) The localized alternative text of the image.  
    Example: `Apple iPod Shuffle, large`.
*   `disBaseLink` (_string_) Base URL for the Dynamic Image Service (DIS) address. This is only shown if the image is stored on the server and DIS is enabled.  
    Example: `https://example.com/images/large/ipod-shuffle-silver.jpg`.
*   `link` (_string_, required) The URL of the actual image.  
    Minimum length: 1. Example: `https://example.com/on/demandware.static/-/Sites-electronics-catalog/default/dwc2/images/large/ipod-shuffle.jpg`.
*   `title` (_string_) The localized title of the image.  
    Example: `Apple iPod Shuffle`.

### InventoryId

The inventory ID.

Type: `string`.

Minimum length: 1. Maximum length: 256. Example: `Site1InventoryList`.

### Price

Document representing a price for a product

Type: `number (double)`.

Example: `12.99`.

### OptionValue

Document representing an option value.

*   `default` (_boolean_) A flag indicating whether this option value is the default one.  
    Example: `true`.
*   `id` (_object_, required) The ID of the option value.  
    Example: `5YR`.
    
    Includes all fields of `ProductId`.
    
    Example: `5YR`.
    
*   `name` (_string_) The localized name of the option value.  
    Example: `5 Year Warranty`.
*   `price` (_object_) The effective price of the option value.
    
    Includes all fields of `Price`.
    

### RecommendationType

Document representing a recommendation type.

*   `displayValue` (_string_, required) The localized display value of the recommendation type.  
    Example: `UpSell`.
*   `value` (_integer (int32)_, required) The value of the recommendation type.  
    Example: `2`.

### VariationAttributeValue

Document representing a variation attribute value.

*   `description` (_string_) The localized description of the variation value.  
    Example: `Color of the product`.
*   `image` (_object_) The first product image for the configured viewtype and this variation value.
    
    Includes all fields of `Image`.
    
*   `imageSwatch` (_object_) The first product image for the configured viewtype and this variation value (typically the swatch image).
    
    Includes all fields of `Image`.
    
*   `name` (_string_) The localized display name of the variation value.  
    Example: `Red`.
*   `orderable` (_boolean_) A flag indicating whether at least one variant with this variation attribute value is available to sell.  
    Example: `true`.
*   `value` (_string_, required) The actual variation value.  
    Minimum length: 1. Example: `red`.

### ShippingPromotion

Document representing a shipping promotion.

*   `calloutMsg` (_string_) The localized callout message of the promotion.  
    Example: `$30 Fixed Shipping Amount Above 150`.
*   `promotionId` (_string_) The unique ID of the promotion.  
    Example: `$30FixedShippingAmountAbove150`.
*   `promotionName` (_string_) The localized promotion name.  
    Example: `$30 Fixed Shipping Amount Above 150`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### ItemId

The item id.

Type: `string`.

Example: `430ef5aad3a24de59378458434`.

### OptionItem

An option item represents an optional purchase related to a product item, and is always associated with that parent product item. An option item can have different values from which to select. For example, a refrigerator item can have an option item representing an extended warranty, with a set of option item values representing different warranty lengths. When a shopper purchases the warranty option item together with the parent refrigerator item, they select one of the available warranty option item values.

*   `adjustedTax` (_number (double)_) The tax on the line item, including any adjustments. It is read only.  
    Example: `19`.
*   `basePrice` (_number (double)_) The base price of the line item, which is the unit price not including adjustments. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `50`.
*   `bonusDiscountLineItemId` (_string_) The ID of the bonus discount line item this bonus product relates to. It is read only.  
    Example: `ba248414e3eee797f062162f8b`.
*   `bonusProductLineItem` (_boolean_) A flag indicating whether the product item is a bonus. It is read only.  
    Example: `false`.
*   `bundledProductItems` (_array of ProductItem_) The bundled product items.
*   `gift` (_boolean_) Returns true if the item is a gift. It is read only.  
    Example: `false`.
*   `giftMessage` (_string_) The gift message.  
    Example: `Happy Birthday`.
*   `inventoryId` (_string_) The inventory list ID associated with this item. It is read only.  
    Maximum length: 256. Example: `inventory`.
*   `itemId` (_object_) The product item ID. Use it to identify this item when updating its quantity or creating a custom price adjustment for it. It is read only.
    
    Includes all fields of `ItemId`.
    
*   `itemText` (_string_) The text describing the item.  
    Example: `The item text.`.
*   `optionId` (_string_, required) The ID of the option. It is read only.  
    Maximum length: 256. Example: `consoleWarranty`.
*   `optionItems` (_array of OptionItem_) The option items.
*   `optionValueId` (_string_, required) The ID of the option value. It is read only.  
    Maximum length: 256. Example: `000`.
*   `price` (_number (double)_) The price of the line item before applying any adjustments. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `150.99`.
*   `priceAdjustments` (_array of PriceAdjustment_) The price adjustments.
*   `priceAfterItemDiscount` (_number (double)_) The price of the product line item including item-level adjustments, but not including order-level adjustments or shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `50.99`.
*   `priceAfterOrderDiscount` (_number (double)_) The price of the product line item including item-level adjustments and prorated order-level adjustments, but not including shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `40.5`.
*   `productId` (_ProductId_)
*   `productListItem` (_object_) If this product line item was added from a product list, this value is a reference to the corresponding product list item.
    
    Includes all fields of `ProductListItemReference`.
    
*   `productName` (_string_) The name of the product.  
    Example: `Nintendo DS Game Console`.
*   `quantity` (_number (double)_) The ordered quantity of the products represented by this item.  
    Minimum: 0. Example: `1`.
*   `shipmentId` (_string_) The ID of the shipment this item belongs to.  
    Example: `me`.
*   `shippingItemId` (_string_) If the product line item has a related shipping item, this value is its ID. A related shipping item represents a surcharge applied to individual products using a particular shipping method. It is read only.  
    Example: `006490dcc338feeafc71c964bf`.
*   `tax` (_number (double)_) The tax on the line item before applying any adjustments. It is read only.  
    Example: `0`.
*   `taxBasis` (_number (double)_) The amount used to calculate the tax for this item. It is read only.  
    Example: `50`.
*   `taxClassId` (_string_) The tax class ID for the product item, or null if no tax class ID is associated with the product item. It is read only.
*   `taxRate` (_number (double)_) The tax rate, which is the decimal tax rate to be applied to the product represented by this item. It is read only.  
    Example: `0.19`.

Additional properties: `any`.

Additional Property Support

This type supports additional properties passed along with the defined properties of this API. To indicate that the properties were defined and expected to be handled as additional properties, they are expected to be prefixed with a `c_`. The type will reject any property that does not fit this pattern, only allowing additional properties beginning with the known prefix.

Example: `c_trackingId`.

### ProductListItemReference

Document representing product list item details.

*   `id` (_object_, required) The ID of the product list item. It is read only.
    
    Includes all fields of `ItemId`.
    
*   `priority` (_integer (int32)_) The priority of the product list item.  
    Example: `1`.
*   `productDetailsLink` (_ProductDetailsLink_)
*   `productList` (_object_) A reference to the associated product list. It is read only.
    
    Includes all fields of `ProductListLink`.
    
*   `public` (_boolean_)  
    Example: `false`.
*   `purchasedQuantity` (_number (double)_) The total quantity of this item purchased from the product list.  
    Example: `0`.
*   `quantity` (_number (double)_) The number of products or gift certificates that get shipped when purchasing this product list item.  
    Minimum: 0. Example: `1`.
*   `type` (_string_) Specifies whether the item is a product or a gift certificate.  
    Allowed values: `product`, `gift_certificate`. Example: `product`.

### OmsShipmentItem

Individual item within a shipment

*   `id` (_string_) Unique identifier for the shipment item  
    Example: `0OBVF000006603F4AQ`.
*   `productItemId` (_string_) Reference to the product item in the order  
    Example: `10uVF0000002fGnYAI`.
*   `quantity` (_number (double)_) Quantity of product items with the referenced productItemId in this shipment  
    Example: `2`.

### ProductListLink

Document representing a link to a product list.

*   `description` (_string_) The description of this product list.
*   `name` (_string_) The name of this product list.
*   `public` (_boolean_) A flag indicating whether the owner made this product list available for access by other customers. It is read only.  
    Example: `true`.
*   `title` (_string_) The link title.
*   `type` (_string_) The type of the product list.  
    Allowed values: `wish_list`, `gift_registry`, `shopping_list`, `custom_1`, `custom_2`, `custom_3`. Example: `shopping_list`.