---
schema_version: "1"
id: 578462e6c6c44d27c89526fca2536f3ca7634b39bb11aa1aab8373825d779763
title: Shop Customers (deprecated)
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/b2c-commerce/references/generated-api-specs/ocapi-shop-customers.md
canonical_url: https://developer.salesforce.com/docs/commerce/b2c-commerce/references/ocapi-shop-customers
source_site: developer.salesforce.com
content_type: documentation
content_hash: f7b9740fd6dd259e70364b0e392018e48229bd70e519d1eae465429b767871b2
products:
  - B2C Commerce
  - Salesforce APIs
---
Shop Customers (deprecated)

# Shop Customers (deprecated)

The Shop API endpoints enable developers to build full shopper-experience applications such as storefronts. They are designed for high-scale usage, and include a number of areas such as Baskets & Orders, Customers, Products and Pricing. Shop API endpoints are typically read-only APIs, with the exception of baskets and orders.

**Version:** 25.6

## Servers

*   `https://{host}/s/{siteId}/dw/shop/v25_6`

Protocols: https.

## Security

*   `customers_auth` (basic) User authentication either for a registered or a guest customer (selectable in request body). Access via Base64 encoded customer:password string as 'Authorization: Basic' header.
*   `oauth2_application` (oauth2) Authentication flow with client ID and password with account manager.
    *   OAuth flow application (tokenUrl: https://account.demandware.com:443/dwsso/oauth2/access\_token)
    *   Scope x-info: Scopes are NOT supported. This is just a dummy, because the 'scopes' field is required.
*   `client_id` (apiKey) Add client ID for application identification. Alternative as 'client\_id' query parameter.
    *   API key in header: x-dw-client-id

## Operations

### POST Register customer

`POST /customers`

Operation ID: `Register customer`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Registers a customer.

You must specify the login credentials, last name, and email address. This method ignores all other data, which can only be set for an existing customer. To set other values, make calls after the customer is created.

When using OAuth, don't include the password in the request. In this case, including the password throws an `InvalidPasswordException` .

When using JWT, the password is required.

Also returns the hashedLoginId for Einstein use cases.

Note: If customers are created using OCAPI call then any updated to the customer records should be done through OCAPI calls as well. The customer records created with Script API call should not be updated with OCAPI calls as the email validation is handled differently in these calls and may result in InvalidEmailException.

This endpoint may return the following faults:

*   400 - CustomerAlreadyRegisteredException - Indicates that the resource is called with JWT representing a registered customer.
*   400 - InvalidLoginException - Indicates that login doesn't match acceptance criteria.
*   400 - InvalidPasswordException - Indicates that password doesn't match acceptance criteria.
*   400 - LoginAlreadyInUseException - Indicates that the given login is already used.
*   400 - MissingEmailException - Indicates that request document does not contain email.
*   400 - MissingLastNameException - Indicates that request document does not contain last\_name.
*   400 - MissingLoginException - Indicates that request document does not contain login.
*   400 - MissingPasswordException - Indicates that password was not provided in JWT scenario.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_registration`.

#### Responses

*   **400** `CustomerAlreadyRegisteredException` - Indicates that the resource is called with JWT representing a registered customer. or `InvalidLoginException` - Indicates that login doesn't match acceptance criteria. or `InvalidPasswordException` - Indicates that password doesn't match acceptance criteria. or `LoginAlreadyInUseException` - Indicates that the given login is already used. or `MissingEmailException` - Indicates that request document does not contain email. or `MissingLastNameException` - Indicates that request document does not contain last\_name. or `MissingLoginException` - Indicates that request document does not contain login. or `MissingPasswordException` - Indicates that password was not provided in JWT scenario.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer`.
    

### POST Get or refresh customer JWT (JSON Web Token)

`POST /customers/auth`

Operation ID: `Get or refresh customer JWT (JSON Web Token)`. Tags: customers. Security: client\_id.

Obtains a new JWT (JSON Web Token) for a guest or registered customer. Tokens are returned as a HTTP Authorization:Bearer response header entry. These kinds of request are supported, as specified by the `type` :

*   Type _guest_ \- creates a new guest (non-authenticated) customer and returns a token for the customer.
    
*   Type _credentials_ \- authenticates credentials passed in the HTTP Authorization:Basic request header, returning a token for a successfully authenticated customer, otherwise it throws an AuthenticationFailedException.
    
*   Type _session_ \- authenticates the customer (anonymous or registered) based on the _dwsid_ and _dwsecuretoken_ cookies. It returns a token for a successfully authenticated customer, otherwise it throws an AuthenticationFailedException.
    
*   Type _refresh_ \- examines the token passed in the HTTP Authorization:Bearer request header and when valid returns a new token with an updated expiry time.
    

For a request of type _credentials_ :

*   Updates profile attributes for the customer (for example, "last-visited").
    
*   Handles the maximum number of failed login attempts.
    

For a request of type _session_ :

*   The session and corresponding _dwsecuretoken_ must be active and valid. An expired session can't be used. The _dwsecuretoken_ cookie must have been used for at least one previous HTTPS request with the same _dwsid_ cookie.
    
*   Does not touch profile attributes for the registered customer (for example, "last-visited"), since this is not a real login.
    
*   Returns different tokens for multiple requests with the same session id. Means, there should be only one call per session.
    

About JWT

The token contains 3 sections:

*   the _header_ section (specifies token type and algorithm used)
    
*   the _payload_ section (contains customer information, client id, issue and expiration time)
    
*   finally the _signature_ section records the token signature.
    

A token is created and returned to the client whenever a registered customer logs in (type "credentials") or a guest customer requests it (type "guest"). The token is returned in the response header as `Authorization: Bearer --token--` The client has to include the token in the request header as `Authorization: Bearer --token--` in any follow up request. The server declines any follow up requests without a token or which cannot be verified based on the token signature or expiration time. A token nearing its expiration time should be exchanged for a new one (type "refresh"). See "API Usage > JWT" for more details on using JWT as an authentication mechanism.

This endpoint may return the following faults:

*   400 - AuthorizationBasicMissingException - Indicates that no HTTP Authorization:Basic header was provided.
*   401 - AuthenticationFailedException - Indicates in case of type _credentials_ the username is unknown or the password does not match. In case of type _session_ the session is not active anymore or the _dwsecuretoken_ value is invalid. In both cases the customer is disabled or locked.

#### Parameters

*   `Authorization` (header, string)
    *   Authorization:Basic for type `credentials`
        
    *   Authorization:Bearer for type `refresh`
        

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `auth_request`.

#### Responses

*   **400** `AuthorizationBasicMissingException` - Indicates that no HTTP Authorization:Basic header was provided.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **401** `AuthenticationFailedException` - Indicates in case of type _credentials_ the username is unknown or the password does not match. In case of type _session_ the session is not active anymore or the _dwsecuretoken_ value is invalid. In both cases the customer is disabled or locked.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer`.
    

### DELETE Invalidate an existing customer JWT (JSON Web Token)

`DELETE /customers/auth`

Operation ID: `Invalidate an existing customer JWT (JSON Web Token)`. Tags: customers. Security: client\_id; customers\_auth.

Invalidates the JWT provided in the header.

#### Parameters

*   `Authorization` (header, string) the JWT

#### Responses

*   **204**

### POST Authorize Trusted System Client

`POST /customers/auth/trustedsystem`

Operation ID: `Authorize Trusted System Client`. Tags: customers. Security: oauth2\_application; client\_id.

Obtain the JWTs for registered customers whose credentials are stored using a third party system.

*   Accepts `login_id` and `client_id`
    
*   Returns a customer object in the response body, and the JWT generated against the `client_id` in the response header. In addition, the returned response will include the hashedLoginId field for Einstein use.
    

This endpoint may return the following faults:

*   401 - AuthenticationFailedException -

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `trusted_system_auth_request`.

#### Responses

*   **401** `AuthenticationFailedException` -
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer`.
    

### GET Get customerExtProfile

`GET /customers/ext_profile`

Operation ID: `Get customerExtProfile`. Tags: customers. Security: oauth2\_application; client\_id.

Gets the customerExtProfile based on the passed in query parameters of external\_id and authentication\_provider\_id

This endpoint may return the following faults:

*   400 - MissingAuthenticationProviderException - Indicates that authentication\_provider\_id is not provided.
*   400 - MissingExternalIDException - Indicates that External\_id is not provided.

#### Parameters

*   `external_id` (query, string, required)  
    Minimum length: 1.
*   `authentication_provider_id` (query, string, required)  
    Minimum length: 1.

#### Responses

*   **400** `MissingAuthenticationProviderException` - Indicates that authentication\_provider\_id is not provided. or `MissingExternalIDException` - Indicates that External\_id is not provided.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customers_ext_profile`.
    

### POST Register customerExtProfile

`POST /customers/ext_profile`

Operation ID: `Register customerExtProfile`. Tags: customers. Security: customers\_auth; client\_id.

Register a customerExtProfile. The mandatory data are the external\_id and authentication\_provider\_id.

While using JWT the guest JWT needs to be used.

This will not be supporting hooks

This endpoint may return the following faults:

*   400 - CustomerAlreadyRegisteredException - Indicates that the resource is called with JWT representing a registered customer and not a guest JWT.
*   400 - CustomerExtProfileAlreadyExistException - Indicates that the customer external profile already exists.
*   400 - InvalidCustomerExtProfileException - Indicates that customerExtProfileCreation failed.
*   400 - InvalidEmailException - Indicates that the email sent in through the request document is not valid.
*   400 - InvalidLoginException - Indicates that login doesn't match acceptance criteria.
*   400 - LoginAlreadyInUseException - Indicates that the given login already exists.
*   400 - MissingAuthenticationProviderException - Indicates that request document does not contain authentication\_provider\_id.
*   400 - MissingExternalIDException - Indicates that request document does not contain External\_id.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customers_ext_profile`.

#### Responses

*   **400** `CustomerAlreadyRegisteredException` - Indicates that the resource is called with JWT representing a registered customer and not a guest JWT. or `CustomerExtProfileAlreadyExistException` - Indicates that the customer external profile already exists. or `InvalidCustomerExtProfileException` - Indicates that customerExtProfileCreation failed. or `InvalidEmailException` - Indicates that the email sent in through the request document is not valid. or `InvalidLoginException` - Indicates that login doesn't match acceptance criteria. or `LoginAlreadyInUseException` - Indicates that the given login already exists. or `MissingAuthenticationProviderException` - Indicates that request document does not contain authentication\_provider\_id. or `MissingExternalIDException` - Indicates that request document does not contain External\_id.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customers_ext_profile`.
    

### POST Reset Password Token

`POST /customers/password/actions/create_reset_token`

Operation ID: `Reset Password Token`. Tags: customers. Security: oauth2\_application; client\_id.

Returns a reset password token for the passed in customer's login that will be used with the customers/reset\_password endpoint to change the customer's password.

This differs from the customers/password\_reset endpoint as it does not require or allow before or after hook processing.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customer with the given login id is unknown.
*   400 - MissingLoginException - Indicates that login id is missing from the request.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `reset_password_token_request`.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customer with the given login id is unknown. or `MissingLoginException` - Indicates that login id is missing from the request.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `reset_password_token_result`.
    

### POST Reset Customer Password

`POST /customers/password/actions/reset`

Operation ID: `Reset Customer Password`. Tags: customers. Security: oauth2\_application; client\_id.

Changes the customer's password to the new password value in the call using the reset password token that was returned from the customers/reset\_password\_token endpoint.

This differs from the customers/password\_reset endpoint as it does not require or allow before or after hook processing.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates there was a problem with the passed in values.
*   400 - InvalidPasswordException - Indicates that the rest password failed.
*   400 - MissingLoginException - Indicates that login id is missing from the request.
*   400 - MissingResetTokenException - Indicates that reset\_token is missing from the request..

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `reset_password_request`.

#### Responses

*   **204**
*   **400** `InvalidCustomerException` - Indicates there was a problem with the passed in values. or `InvalidPasswordException` - Indicates that the rest password failed. or `MissingLoginException` - Indicates that login id is missing from the request. or `MissingResetTokenException` - Indicates that reset\_token is missing from the request..
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### POST Starts a password reset process

`POST /customers/password_reset`

Operation ID: `Starts a password reset process`. Tags: customers. Security: client\_id.

First the beforePOST hook is called. After that the validation of the customer information provided in the the password reset document is performed. Then a password reset token is generated and together with the resolved customer is passed to a afterPOST hook. The customer resolution is based on the password reset request type. Both hooks are performed in a single transaction. Currently the resolution can be done by email or login. In case of an email the password reset hook is only executed if one and only one customer has been identified for that email. In the case that more than one customers have been identified for the provided email the resource does nothing.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `password_reset`.

#### Responses

*   **204**

### GET Get a Customer

`GET /customers/{customer_id}`

Operation ID: `Get a Customer`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Gets a customer.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - If customerId URL parameter does not match the verified customer represented by the JWT (not relevant when using OAuth).
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown.

#### Parameters

*   `customer_id` (path, string, required) The customer id  
    Minimum length: 1.
*   `expand` (query, array of string) The expand parameter. A comma separated list with the allowed values ( _addresses, paymentinstruments_ ).

#### Responses

*   **400** `InvalidCustomerException` - If customerId URL parameter does not match the verified customer represented by the JWT (not relevant when using OAuth).
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer`.
    

### PATCH Update a Customer

`PATCH /customers/{customer_id}`

Operation ID: `Update a Customer`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Updates a customer. This endpoint can't update login credentials.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - If customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   400 - InvalidEmailException - Indicates that the provided email is not valid.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown.

#### Parameters

*   `customer_id` (path, string, required) the customer id  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer`.

#### Responses

*   **400** `InvalidCustomerException` - If customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth. or `InvalidEmailException` - Indicates that the provided email is not valid.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer`.
    

### GET Get all customer addresses

`GET /customers/{customer_id}/addresses`

Operation ID: `Get all customer addresses`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Returns a sorted pageable list of all customer addresses in the address book. The default page size is 10 customer addresses. The addresses are sorted so that the preferred address is always sorted first. The remaining addresses are sorted alphabetically by ID.

When the customer cannot be found `CustomerNotFoundException` is thrown in a case of an agent but an empty result list is returned in a case of JWT.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - If customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.

#### Parameters

*   `customer_id` (path, string, required) The customer uuid  
    Minimum length: 1.
*   `start` (query, integer (int32)) The result set index to return the first instance for. Default value is 0.  
    Minimum: 0. Maximum: 999.
*   `count` (query, integer (int32)) The maximum number of instances per request. Default value is 25.  
    Minimum: 1. Maximum: 200.

#### Responses

*   **400** `InvalidCustomerException` - If customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_address_result`.
    

### POST Create customer address

`POST /customers/{customer_id}/addresses`

Operation ID: `Create customer address`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Creates a new address with the given name for the given customer.

This endpoint may return the following faults:

*   400 - AddressIdAlreadyInUseException - Indicates that the provided address name is already used for the customer.
*   400 - InvalidCustomerAddressIdException - Indicates that address name is not provided or it's blank.
*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer to create the address for  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_address`.

#### Responses

*   **400** `AddressIdAlreadyInUseException` - Indicates that the provided address name is already used for the customer. or `InvalidCustomerAddressIdException` - Indicates that address name is not provided or it's blank. or `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_address`.
    

### GET Get customer address

`GET /customers/{customer_id}/addresses/{address_name}`

Operation ID: `Get customer address`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Retrieves a customer's address by address name.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerAddressNotFoundException - Indicates that the address with the given name in unknown for the customer with the given customer id.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer to retrieve the address for  
    Minimum length: 1.
*   `address_name` (path, string, required) the name of the address to retrieve  
    Minimum length: 1. Maximum length: 256.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerAddressNotFoundException` - Indicates that the address with the given name in unknown for the customer with the given customer id. or `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_address`.
    

### DELETE Delete customer address

`DELETE /customers/{customer_id}/addresses/{address_name}`

Operation ID: `Delete customer address`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Deletes a customer's address by address name.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerAddressNotFoundException - Indicates that the address with the given name in unknown for the customer with the given customer id.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer to delete the address for  
    Minimum length: 1.
*   `address_name` (path, string, required) the name of the address to delete  
    Minimum length: 1. Maximum length: 256.

#### Responses

*   **204**
*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerAddressNotFoundException` - Indicates that the address with the given name in unknown for the customer with the given customer id. or `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update customer address

`PATCH /customers/{customer_id}/addresses/{address_name}`

Operation ID: `Update customer address`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Updates a customer's address by address name.

This endpoint may return the following faults:

*   400 - AddressIdAlreadyInUseException - Indicates that the provided new address name is already used for the customer.
*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerAddressNotFoundException - Indicates that the address with the given name in unknown for the customer with the given customer id.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer to update the address for  
    Minimum length: 1.
*   `address_name` (path, string, required) the name of the address to update  
    Minimum length: 1. Maximum length: 256.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_address`.

#### Responses

*   **400** `AddressIdAlreadyInUseException` - Indicates that the provided new address name is already used for the customer. or `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerAddressNotFoundException` - Indicates that the address with the given name in unknown for the customer with the given customer id. or `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_address`.
    

### POST Get an agent on behalf of customer token

`POST /customers/{customer_id}/auth`

Operation ID: `Get an agent on behalf of customer token`. Tags: customers. Security: customers\_auth; oauth2\_application.

Obtains a new agent on behalf token for a registered customer. Token is returned as a HTTP Authorization:Bearer response header entry.

A token is created and returned to the client whenever an agent with `Create_Order_On_Behalf_Of` permission calls the resource for a registered customer.

The token is returned in the response header as `Authorization: Bearer --token--` .

The client has to include the token in the request header as `Authorization: Bearer --token--`

in any follow up request, the agent will do on behalf of the customer.

About the order on behalf token

The token contains 3 sections:

*   the _header_ section (specifies token type and algorithm used)
    
*   the _payload_ section (contains customer information, client id, issue and expiration time)
    
*   finally the _signature_ section records the token signature.
    

A token nearing its expiration time should be exchanged for a new one by calling this resource once more.

#### Parameters

*   `customer_id` (path, string, required) specifies the customer to act on behalf of  
    Minimum length: 1.

#### Responses

*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer`.
    

### GET Get customer basket

`GET /customers/{customer_id}/baskets`

Operation ID: `Get customer basket`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Gets the baskets of a customer. From v24.1 onwards, the fetched baskets will also include the customer's temporary baskets.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - if customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer to retrieve the baskets for  
    Minimum length: 1.

#### Responses

*   **400** `InvalidCustomerException` - if customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `baskets_result`.
    

### GET Get orders of customer

`GET /customers/{customer_id}/orders`

Operation ID: `Get orders of customer`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Returns a pageable list of all customer's orders. The default page size is 10.

The sum of the values of the start and count parameters should not be more than 10000.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   400 - InvalidOrderStatusException - Thrown if specified status is unknown.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.

#### Parameters

*   `customer_id` (path, string, required) the customer uuid  
    Minimum length: 1.
*   `start` (query, integer (int32)) the result set index to return the first instance for; default value is 0  
    Minimum: 0.
*   `count` (query, integer (int32)) the maximum number of instances per request; default value is 10  
    Minimum: 1. Maximum: 200.
*   `cross-sites` (query, boolean) the flag whether all sites should be searched; ignored in case of JWT; default value is `false`
*   `from` (query, string) The from date specifying the date time range to filter orders (inclusive, null allowed, ISO8601 date time format: yyyy-MM-dd'T'HH:mmZ).
*   `until` (query, string) The until date specifying the date time range to filter orders (inclusive, null allowed, ISO8601 date time format: yyyy-MM-dd'T'HH:mmZ).
*   `status` (query, string) The order status of the orders to be retrieved. Status included: created, new, open, completed, cancelled, replaced, failed.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth. or `InvalidOrderStatusException` - Thrown if specified status is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_order_result`.
    

### PUT Update a customer's password.

`PUT /customers/{customer_id}/password`

Operation ID: `Update a customer's password.`. Tags: customers. Security: customers\_auth; client\_id.

Updates a customer's password. The default implementation updates the password in the resource.  
Versions prior to 21.3 updated the password in the afterPUT hook, which was incompatible with the Mercury API. Starting in version 21.3, the afterPUT\_v2 hook replaces the afterPUT hook.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - If customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown.

#### Parameters

*   `customer_id` (path, string, required) the customer id  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `password_change_request`.

#### Responses

*   **204**
*   **400** `InvalidCustomerException` - If customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### POST Starts a password reset process for given customer

`POST /customers/{customer_id}/password_reset`

Operation ID: `Starts a password reset process for given customer`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Starts a password reset process. The user must be an agent logged in on behalf of a customer.

Generates a password reset token and passes it with the specified customer as the path parameter to the dw.ocapi.shop.customer.password\_reset.afterPOST hook. The hook can use the provided reset token to perform actions such as sending a reset email.

This endpoint may return the following faults:

*   404 - CustomerNotFoundException - Indicates that the customer specified was not found.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer  
    Minimum length: 1.

#### Responses

*   **204**
*   **404** `CustomerNotFoundException` - Indicates that the customer specified was not found.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### GET Get customer payment instruments

`GET /customers/{customer_id}/payment_instruments`

Operation ID: `Get customer payment instruments`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Gets customer payment instruments for an customer. Can be limited to a specific payment method by providing query parameter `payment_method_id` .

When the customer cannot be found `CustomerNotFoundException` is thrown in a case of an agent but an empty result list is returned in a case of JWT.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer to retrieve the payment instruments for  
    Minimum length: 1.
*   `payment_method_id` (query, string) the id of the payment method, if null - all payment instruments are retrieved

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_payment_instrument_result`.
    

### POST Add payment instrument for customer

`POST /customers/{customer_id}/payment_instruments`

Operation ID: `Add payment instrument for customer`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Adds a payment instrument to a customer. Note that it can't update the read-only `credit_card_token` on a `payment_card` record.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_payment_instrument_request`.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_payment_instrument`.
    

### GET Get customer payment instrument

`GET /customers/{customer_id}/payment_instruments/{payment_instrument_id}`

Operation ID: `Get customer payment instrument`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Retrieves a customer's payment instrument by its id.

This endpoint may return the following faults:

*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - PaymentInstrumentNotFoundException - Indicates that the payment instrument with the given id is unknown for the customer with the given customer id.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer to retrieve the payment instrument for  
    Minimum length: 1.
*   `payment_instrument_id` (path, string, required) the id of the payment instrument to be retrievedCustomer  
    Minimum length: 1.

#### Responses

*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `PaymentInstrumentNotFoundException` - Indicates that the payment instrument with the given id is unknown for the customer with the given customer id.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_payment_instrument`.
    

### DELETE Delete customer payment instrument

`DELETE /customers/{customer_id}/payment_instruments/{payment_instrument_id}`

Operation ID: `Delete customer payment instrument`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Deletes a customer's payment instrument.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.

#### Parameters

*   `customer_id` (path, string, required) the id of the customer to delete the payment instrument for  
    Minimum length: 1.
*   `payment_instrument_id` (path, string, required) the id of the payment instrument to be deleted  
    Minimum length: 1.

#### Responses

*   **204**
*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### GET Get customer product lists

`GET /customers/{customer_id}/product_lists`

Operation ID: `Get customer product lists`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Returns all customer product lists in a paginated manner.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.

#### Parameters

*   `customer_id` (path, string, required)
    
    *   The customer id.
    
      
    Minimum length: 1.
*   `expand` (query, array of string)
    *   The possible expansions - product, images, availability. For images and availability the product has to be expanded as well.
*   `start` (query, integer (int32))
    
    *   The start of the product List
    
      
    Minimum: 0.
*   `count` (query, integer (int32))
    
    *   The count returned per page
    
      
    Minimum: 1. Maximum: 200.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_result`.
    

### POST Create customer product list

`POST /customers/{customer_id}/product_lists`

Operation ID: `Create customer product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Creates a customer product list.

This endpoint may return the following faults:

*   400 - InvalidAddressLinkException - Indicates that the id of the given address link does not reference an address of the current customer.
*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   400 - InvalidProductListTypeException - Indicates that there was no or an invalid type given for the to be created product list.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.

#### Parameters

*   `customer_id` (path, string, required) The customer id.  
    Minimum length: 1.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_product_list`.

#### Responses

*   **400** `InvalidAddressLinkException` - Indicates that the id of the given address link does not reference an address of the current customer. or `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth. or `InvalidProductListTypeException` - Indicates that there was no or an invalid type given for the to be created product list.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list`.
    

### GET Get customer product list

`GET /customers/{customer_id}/product_lists/{list_id}`

Operation ID: `Get customer product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Returns a customer product list of the given customer.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The customer id.  
    Minimum length: 1.
*   `list_id` (path, string, required) The product list id.  
    Minimum length: 1. Maximum length: 28.
*   `expand` (query, array of string) The possible expansions - product, images, availability. For images and availability the product has to be expanded as well.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list`.
    

### DELETE Delete customer product list

`DELETE /customers/{customer_id}/product_lists/{list_id}`

Operation ID: `Delete customer product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Deletes a customer product list.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The customer id.  
    Minimum length: 1.
*   `list_id` (path, string, required) The product list id.  
    Minimum length: 1. Maximum length: 28.

#### Responses

*   **204**
*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Change customer product list

`PATCH /customers/{customer_id}/product_lists/{list_id}`

Operation ID: `Change customer product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Changes a product list. Changeable properties are the name, description and if the list is public.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The customer id.  
    Minimum length: 1.
*   `list_id` (path, string, required) The product list id.  
    Minimum length: 1. Maximum length: 28.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_product_list`.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list`.
    

### GET Get items of customer's product list

`GET /customers/{customer_id}/product_lists/{list_id}/items`

Operation ID: `Get items of customer's product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Returns a pageable list of all items of a customer's product list. The default page size is 10.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the customer to retrieve the product list items for.  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list.  
    Minimum length: 1. Maximum length: 28.
*   `expand` (query, array of string) The possible expansions - product, images, availability. For images and availability the product has to be expanded as well.
*   `start` (query, integer (int32)) The result set index to return the first instance for; default value is 0.  
    Minimum: 0.
*   `count` (query, integer (int32)) The maximum number of instances per request; default value is 10.  
    Minimum: 1. Maximum: 200.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_item_result`.
    

### POST Add item to customer's product list

`POST /customers/{customer_id}/product_lists/{list_id}/items`

Operation ID: `Add item to customer's product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Adds an item to the customer's product list. Considered values from the request body are:

*   **type** : a valid type, mandatory. This is the type of the item to be added to the customer's product list.
    
*   **priority** : This is the priority of the item to be added to the customer's product list.
    
*   **public** : This is the flag whether the item to be added to the customer's product list is public.
    
*   **product\_id** : a valid product id, used for `product` item type only. This is the id (sku) of the product related to the item to be added to the customer's product list. It is mandatory for `product` item type and it must be a valid product id, otherwise `ProductListProductIdMissingException` or `ProductListProductNotFoundException` will be thrown.
    
*   **quantity** : used for `product` item type only. This is the quantity of the item to be added to the customer's product list.
    
*   **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.
    

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   400 - ProductListDuplicateGiftCertificateException - Indicates that the customer product list already has gift certificate item.
*   400 - ProductListItemTypeMissingException - Indicates that type property in request body is not provided.
*   400 - ProductListProductIdMissingException - Indicates that product property in request body is not provided.
*   400 - ProductListProductNotFoundException - Indicates that the product with the provided id is unknown.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the customer - owner of the product list.  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list  
    Minimum length: 1. Maximum length: 28.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_product_list_item`.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth. or `ProductListDuplicateGiftCertificateException` - Indicates that the customer product list already has gift certificate item. or `ProductListItemTypeMissingException` - Indicates that type property in request body is not provided. or `ProductListProductIdMissingException` - Indicates that product property in request body is not provided. or `ProductListProductNotFoundException` - Indicates that the product with the provided id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_item`.
    

### GET Get an item of a customer product list

`GET /customers/{customer_id}/product_lists/{list_id}/items/{item_id}`

Operation ID: `Get an item of a customer product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Returns an item of a customer product list.

This endpoint may return the following faults:

*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListItemNotFoundException - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the customer to retrieve the product list items for.  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list.  
    Minimum length: 1. Maximum length: 28.
*   `item_id` (path, string, required) The id of the product list item to retrieve.  
    Minimum length: 1. Maximum length: 28.
*   `expand` (query, array of string) The possible expansions - product, images, availability. For images and availability the product has to be expanded as well.

#### Responses

*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListItemNotFoundException` - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_item`.
    

### DELETE Remove item from customer's product list

`DELETE /customers/{customer_id}/product_lists/{list_id}/items/{item_id}`

Operation ID: `Remove item from customer's product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Removes an item from a customer product list.

This endpoint may return the following faults:

*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListItemNotFoundException - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the owner of the product list  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list.  
    Minimum length: 1. Maximum length: 28.
*   `item_id` (path, string, required) The id of the product list item to delete.  
    Minimum length: 1. Maximum length: 28.

#### Responses

*   **204**
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListItemNotFoundException` - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    

### PATCH Update customer's product list item

`PATCH /customers/{customer_id}/product_lists/{list_id}/items/{item_id}`

Operation ID: `Update customer's product list item`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Updates an item of a customer's product list. Considered values from the request body are:

*   **priority** : This is the priority of the customer's product list item.
    
*   **public** : This is the flag whether the customer's product list item is public.
    
*   **quantity** : used for `product` item type only. This is the quantity of the customer's product list item.
    
*   **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.
    

This endpoint may return the following faults:

*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListItemNotFoundException - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the owner of the product list.  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list.  
    Minimum length: 1. Maximum length: 28.
*   `item_id` (path, string, required) The id of the product list item to update.  
    Minimum length: 1. Maximum length: 28.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_product_list_item`.

#### Responses

*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListItemNotFoundException` - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_item`.
    

### GET Get the purchases of a customer product list item

`GET /customers/{customer_id}/product_lists/{list_id}/items/{item_id}/purchases`

Operation ID: `Get the purchases of a customer product list item`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Returns a list of all purchases of an item from a customer's product list.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListItemNotFoundException - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the customer to retrieve the product list item purchases for.  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list.  
    Minimum length: 1. Maximum length: 28.
*   `item_id` (path, string, required) The id of the product list item to retrieve from.  
    Minimum length: 1. Maximum length: 28.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListItemNotFoundException` - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_item_purchase_result`.
    

### POST Add a purchase to an item on a customer product list

`POST /customers/{customer_id}/product_lists/{list_id}/items/{item_id}/purchases`

Operation ID: `Add a purchase to an item on a customer product list`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Adds a purchase to an item in the customer's product list. Considered values from the request body are:

*   **purchaser\_name** : name of the purchaser, mandatory. This is the full name of the purchaser of this product list item.
    
*   **quantity** : amount purchased, mandatory. This is the quantity of the items purchased from the product list.
    
*   **custom properties in the form c\_ < CUSTOM\_NAME >** : the custom property must correspond to a custom attribute ( < CUSTOM\_NAME > ) defined for ProductListItemPurchase. The value of this property must be valid for the type of custom attribute defined for ProductListItemPurchase.
    

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListItemNotFoundException - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the customer - owner of the product list.  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list.  
    Minimum length: 1. Maximum length: 28.
*   `item_id` (path, string, required) The id of the product list item where to add the purchase.  
    Minimum length: 1. Maximum length: 28.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_product_list_item_purchase`.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListItemNotFoundException` - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_item_purchase`.
    

### GET Get a purchase of a customer product list item

`GET /customers/{customer_id}/product_lists/{list_id}/items/{item_id}/purchases/{purchase_id}`

Operation ID: `Get a purchase of a customer product list item`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Returns a purchase of an item from a customer's product list.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListItemNotFoundException - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list.
*   404 - ProductListItemPurchaseNotFoundException - Indicates that the product list item purchase with the given purchase id is unknown for the site, customer, product list, and item.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the customer to retrieve the product list items for.  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list.  
    Minimum length: 1. Maximum length: 28.
*   `item_id` (path, string, required) The id of the product list item to retrieve.  
    Minimum length: 1. Maximum length: 28.
*   `purchase_id` (path, string, required) The id of the product list item purchase to retrieve.  
    Minimum length: 1. Maximum length: 28.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListItemNotFoundException` - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list. or `ProductListItemPurchaseNotFoundException` - Indicates that the product list item purchase with the given purchase id is unknown for the site, customer, product list, and item. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_item_purchase`.
    

### PATCH Update a purchase of a customer product list item

`PATCH /customers/{customer_id}/product_lists/{list_id}/items/{item_id}/purchases/{purchase_id}`

Operation ID: `Update a purchase of a customer product list item`. Tags: customers. Security: customers\_auth; oauth2\_application; client\_id.

Updates a purchase of an item from a customer's product list. Considered values from the request body are:

*   **custom properties in the form c\_ < CUSTOM\_NAME >** : the custom property must correspond to a custom attribute ( < CUSTOM\_NAME > ) defined for ProductListItemPurchase. The value of this property must be valid for the type of custom attribute defined for ProductListItemPurchase.
    

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - CustomerNotFoundException - Indicates that the customer with the given customer id is unknown for the site.
*   404 - ProductListItemNotFoundException - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list.
*   404 - ProductListItemPurchaseNotFoundException - Indicates that the product list item purchase with the given purchase id is unknown for the site, customer, product list, and item.
*   404 - ProductListNotFoundException - Indicates that the product list with the given list id is unknown for the site and the customer.

#### Parameters

*   `customer_id` (path, string, required) The id of the customer to retrieve the product list item purchases for.  
    Minimum length: 1.
*   `list_id` (path, string, required) The id of the product list.  
    Minimum length: 1. Maximum length: 28.
*   `item_id` (path, string, required) The id of the product list item to retrieve.  
    Minimum length: 1. Maximum length: 28.
*   `purchase_id` (path, string, required) The id of the product list item purchase to retrieve.  
    Minimum length: 1. Maximum length: 28.

#### Request body (required)

Media type: `application/json, text/xml`. Schema: `customer_product_list_item_purchase`.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customerId URL parameter does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `CustomerNotFoundException` - Indicates that the customer with the given customer id is unknown for the site. or `ProductListItemNotFoundException` - Indicates that the product list item with the given item id is unknown for the site, the customer and the product list. or `ProductListItemPurchaseNotFoundException` - Indicates that the product list item purchase with the given purchase id is unknown for the site, customer, product list, and item. or `ProductListNotFoundException` - Indicates that the product list with the given list id is unknown for the site and the customer.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `customer_product_list_item_purchase`.
    

## Schemas

### customer\_registration

Document representing the registration information for a customer.

*   `customer` (_customer_, required) The customer registration information. The mandatory properties for registration are login, last name and email.
*   `password` (_string_) The password to authorize.  
    Maximum length: 4096.

_Example_

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

### fault

Document representing a fault message that is returned whenever the HTTP status code is greater than or equal to 400 (which indicates an error).

*   `arguments` (_object_)
    
    A map that provides fault arguments.
    
    Data can be used to provide error messages on the client side.
    
    Additional properties: `object`.
    
*   `cause` (_cause_)
*   `display_message_pattern` (_string_) The localized display message pattern, if the request parameter display\_locale was given
*   `message` (_string_) The message text of the java exception.
*   `stack_trace` (_string_)
*   `type` (_string_) The name of the java exception.

### customer

Document representing a customer.

*   `addresses` (_array of customer\_address_) The customer's addresses.
*   `auth_type` (_string_) The customer's authorization type (indicates if the customer is a guest or a registered customer).  
    Allowed values: `guest`, `registered`.
*   `birthday` (_string (date)_) The customer's birthday.
*   `company_name` (_string_) The customer's company name.  
    Maximum length: 256.
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `customer_id` (_string_, read-only) The customer's number (id). Both registered and guest customers have a customer id.  
    Maximum length: 28.
*   `customer_no` (_string_) The customer's number (id). Only a registered customer has a customer number.  
    Maximum length: 100.
*   `email` (_string (email)_) The customer's email address.  
    Maximum length: 256.
*   `enabled` (_boolean_) A flag indicating whether this customer is is enabled and can log in.
*   `fax` (_string_) The customer's fax number. The length is restricted to 32 characters.  
    Maximum length: 32.
*   `first_name` (_string_) The customer's first name.  
    Maximum length: 256.
*   `gender` (_integer (int32)_) The customer's gender.  
    Allowed values: `1`, `2`. Value meanings: `1`: Male; `2`: Female.
*   `hashed_login` (_string_) The customer's hashed LoginId which is used for activity tracking for logged in customers in conjunction with visitId. This field is READ-ONLY
*   `job_title` (_string_) The customer's job title.  
    Maximum length: 256.
*   `last_login_time` (_string (date-time)_, read-only) The time when the customer last logged in.
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `last_name` (_string_) The customer's last name.  
    Maximum length: 256.
*   `last_visit_time` (_string (date-time)_, read-only) The time when the customer last visited.
*   `login` (_string_) The customer's login.  
    Maximum length: 256.
*   `note` (_string_) The customer's note.
*   `payment_instruments` (_array of customer\_payment\_instrument_) The customer's payment instruments.
*   `phone_business` (_string_) The customer's business phone number.  
    Maximum length: 32.
*   `phone_home` (_string_) The customer's home phone number.  
    Maximum length: 32.
*   `phone_mobile` (_string_) The customer's mobile phone number.  
    Maximum length: 32.
*   `preferred_locale` (_string_, read-only) The customer's preferred locale.
*   `previous_login_time` (_string (date-time)_) The time when the customer logged in previously.
*   `previous_visit_time` (_string (date-time)_)
    
    The time when the customer last visited the store.
    
    ```
         visit.
    ```
    
*   `salutation` (_string_) The salutation to use for the customer.  
    Maximum length: 256.
*   `second_name` (_string_) The customer's second name.  
    Maximum length: 256.
*   `suffix` (_string_) The customer's suffix (for example, "Jr." or "Sr.").  
    Maximum length: 256.
*   `title` (_string_) The customer's title (for example, "Mrs" or "Mr").  
    Maximum length: 256.
*   `visit_id` (_string_) The customer's visitId. This field is READ-ONLY

_Example_

```
{
  "adresses": [
    {
      "address1": "10 Presidential Way",
      "address_id": "me",
      "city": "Woburn",
      "country_code": "US",
      "first_name": "John",
      "full_name": "John M. Smith",
      "last_name": "Smith",
      "postal_code": "01827",
      "salutation": "Mr.",
      "state_code": "MA"
    }
  ],
  "auth_type": "registered",
  "creation_date": "2015-08-20T11:30:36.000Z",
  "customer_id": "abfTWMDZOgi3JPzkHjv9IhmziI",
  "customer_no": "999",
  "email": "jsmith@salesforce.com",
  "first_name": "John",
  "gender": 1,
  "last_name": "Smith",
  "payment_instruments": [
    {
      "payment_bank_account": {
        "_type": "payment_bank_account"
      },
      "payment_card": {
        "card_type": "Visa",
        "credit_card_expired": false,
        "expiration_month": 2,
        "expiration_year": 2022,
        "holder": "John Smith",
        "masked_number": "***********ber2",
        "number_last_digits": "ber2"
      },
      "payment_instrument_id": "beybQiWcyatEEaaadniwhKxxFl",
      "payment_method_id": "CREDIT_CARD",
      "uuid": "beybQiWcyatEEaaadniwhKxxFl"
    }
  ],
  "phone_business": "234560003",
  "phone_home": "123450003",
  "phone_mobile": "345670003",
  "c_origin": "webshop"
}
```

### auth\_request

Document representing the authentication request type.

*   `type` (_string_, required) Type of authentication request: guest, login (credentials), refresh or session.  
    Allowed values: `guest`, `credentials`, `refresh`, `session`.

_Example_

```
{
  "type": "credentials"
}
```

### trusted\_system\_auth\_request

*   `client_id` (_string_, required) The client id of the shopping application to be encoded in the customer JWT. This is not the same as the OAuth Client ID used to authenticate the API call. The OAuth Client ID is the trusted/private one; this is the untrusted/public one.  
    Pattern: ^(?!\\s\*$).+.
*   `login` (_string_, required) The customer's login.  
    Pattern: ^(?!\\s\*$).+.

_Example_

```
{
  "client_id": "abdtkZzH6sqInJGIHNR1yUw90A",
  "login": "guest@email.com"
}
```

### customers\_ext\_profile

*   `authentication_provider_id` (_string_) This is a mandatory parameter  
    Maximum length: 256.
*   `creation_date` (_string (date-time)_)
*   `customer_id` (_string_)  
    Maximum length: 28.
*   `email` (_string_)  
    Maximum length: 256.
*   `external_id` (_string_) Mandatory parameter  
    Maximum length: 256.
*   `first_name` (_string_)  
    Maximum length: 256.
*   `last_modified` (_string (date-time)_)
*   `last_name` (_string_)  
    Maximum length: 256.

_Example_

```
{
  "authentication_provider_id": "Google",
  "creation_date": "2020-07-09T05:27:55.563Z",
  "customer_id": "bfqcN48dn2y4EaV9Qj5bNpVJVj",
  "email": "testCustomer@test.com",
  "external_id": "testCustomer@test.com",
  "first_name": "John",
  "last_modified": "2020-07-09T05:27:55.563Z",
  "last_name": "Doe"
}
```

### reset\_password\_token\_request

*   `login` (_string_) The login id of the customer.  
    Maximum length: 256.

### reset\_password\_token\_result

*   `email` (_string_) The email address of the customer.
*   `expires_in_minutes` (_integer (int32)_) The password reset token expire time in minutes.
*   `login` (_string_) The login id of the customer.  
    Maximum length: 256.
*   `reset_token` (_string_) The password reset token for the customer.

_Example_

```
{
  "email": "jsmith@nonexist.com",
  "expires_in_minutes": 30,
  "login": "jsmith@nonexist.com",
  "reset_token": "01a13f8e3997cf722d98fac92a05bff09c00b8568b2d98"
}
```

### reset\_password\_request

*   `login` (_string_) The login id of the customer.  
    Maximum length: 256.
*   `new_password` (_string_, required) The new password for the customer.  
    Maximum length: 4096.
*   `reset_token` (_string_) The password reset token for the customer.

_Example_

```
{
  "login": "jsmith@nonexist.com",
  "new_password": "NewPassw0rd!",
  "reset_token": "1e95f1032d7f863226e05bc10385bc841885fbb18654fe"
}
```

### password\_reset

Document representing a password reset request.

*   `identification` (_string_) The customer's login or the customer's email depending on the type value.
*   `type` (_string_) The type of customer identification.  
    Allowed values: `email`, `login`.

_Example_

```
{
  "identification": "jsmith@nonexist.com",
  "type": "email"
}
```

### customer\_address\_result

Result document containing an array of customer addresses.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of customer\_address_) The array of customer address documents.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 1,
  "data": [
    {
      "address1": "10 Free Way",
      "address_id": "private",
      "city": "Woburn",
      "country_code": "US",
      "first_name": "James",
      "full_name": "James Last",
      "last_name": "Last",
      "postal_code": "01827",
      "salutation": "Mr.",
      "state_code": "MA"
    }
  ],
  "next": "https://example.com/dw/shop/{version}/customers/abdlkQCKV1aEqUQoeFOwAOeD4U/addresses?count=1&start=1",
  "start": 0,
  "total": 2
}
```

### customer\_address

Document representing a customer address.

*   `address1` (_string_) The first address.  
    Maximum length: 256.
*   `address2` (_string_) The second address.  
    Maximum length: 256.
*   `address_id` (_string_) The id of the address as specified by account owner.  
    Maximum length: 256.
*   `city` (_string_) The city.  
    Maximum length: 256.
*   `company_name` (_string_) The company name.  
    Maximum length: 256.
*   `country_code` (_string_) The two-letter ISO 3166-1 (Alpha-2) country code.  
    Allowed values: `CA`, `DE`, `US`. Value meanings: `CA`: Canada; `DE`: Germany; `US`: United States. Maximum length: 2.
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `first_name` (_string_) The first name.  
    Maximum length: 256.
*   `full_name` (_string_) The full name.  
    Maximum length: 256.
*   `job_title` (_string_) The job title.  
    Maximum length: 256.
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `last_name` (_string_) The last name.  
    Maximum length: 256.
*   `phone` (_string_) The phone number.  
    Maximum length: 32.
*   `post_box` (_string_) The post box.  
    Maximum length: 256.
*   `postal_code` (_string_) The postal code.  
    Maximum length: 256.
*   `preferred` (_boolean_) The preferred attribute.
*   `salutation` (_string_) The salutation.  
    Maximum length: 256.
*   `second_name` (_string_) The second name.  
    Maximum length: 256.
*   `state_code` (_string_) The state code.  
    Maximum length: 256.
*   `suffix` (_string_) The suffix.  
    Maximum length: 256.
*   `suite` (_string_) The suite.  
    Maximum length: 32.
*   `title` (_string_) The title.  
    Maximum length: 256.

_Example_

```
{
  "address1": "5 Wall St",
  "address2": "24 Presidential Way",
  "address_id": "home_address",
  "city": "Burlington",
  "company_name": "Salesforce B2C Commerce",
  "country_code": "US",
  "first_name": "John",
  "full_name": "John Jim Murphy",
  "job_title": "Developer",
  "last_name": "Murphy",
  "phone": "408-555-1212",
  "post_box": "12a",
  "postal_code": "01805",
  "preferred": false,
  "salutation": "Mr.",
  "second_name": "Jim",
  "state_code": "MA",
  "title": "Dr."
}
```

### baskets\_result

Result document containing an array of baskets.

*   `baskets` (_array of basket_) The list of baskets for a customer.
*   `total` (_integer (int32)_) The total number of baskets.

_Example_

```
{
  "baskets": [
    {
      "basket_id": "bccO1aOjgEnuIaaadk7pYO2rFE"
    },
    {
      "basket_id": "bcs5vaOjgEQ9Uaaadk9zQIrXE6"
    }
  ],
  "total": 2
}
```

### customer\_order\_result

Result document containing an array of customer orders.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of order_) The array of customer order documents.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `select` (_string_) The fields that you want to select.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 1,
  "data": [
    {
      "adjusted_merchandize_total_tax": 5,
      "adjusted_shipping_total_tax": 0,
      "customer_info": {
        "customer_id": "bczhcasxVFpLdxtF05OIPEb25u",
        "customer_name": "John Smith",
        "email": "customer@sample.com"
      },
      "order_no": "00001228",
      "product_sub_total": 16.49,
      "product_total": 16.49,
      "shipping_total": 0.01,
      "shipping_total_tax": 0,
      "status": "created",
      "tax_total": 5,
      "taxation": "net"
    }
  ],
  "next": "https://example.com/dw/shop/{version}/customers/bczhcasxVFpLdxtF05OIPEb25u/orders?count=1&start=1",
  "start": 0,
  "total": 3
}
```

### password\_change\_request

Document representing a password change request.

*   `current_password` (_string_, required) The customer's current password.  
    Maximum length: 4096.
*   `password` (_string_, required) The customer's new password.  
    Maximum length: 4096.

_Example_

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

### customer\_payment\_instrument\_result

Document representing a customer payment instrument result. The payment data contained is masked where needed for security purposes.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of customer\_payment\_instrument_) The customer payment instruments list.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 2,
  "data": [
    {
      "payment_bank_account": {
        "_type": "payment_bank_account"
      },
      "payment_card": {
        "card_type": "Visa",
        "credit_card_expired": false,
        "expiration_month": 2,
        "expiration_year": 2022,
        "holder": "John Doe",
        "masked_number": "***********1111",
        "number_last_digits": "1111"
      },
      "payment_instrument_id": "cdlPgiWbN6LM2aaadkcia6MgbA",
      "payment_method_id": "CREDIT_CARD",
      "c_strValue": "custom value 2"
    },
    {
      "bank_routing_number": "bankrouting3446",
      "gift_certificate_code_masked": "*****code",
      "payment_bank_account": {
        "drivers_license_last_digits": "e111",
        "drivers_license_state_code": "MA",
        "holder": "Joe Doe",
        "masked_drivers_license": "**********e111",
        "masked_number": "**********t111",
        "number_last_digits": "t111"
      },
      "payment_card": {
        "credit_card_expired": false
      },
      "payment_instrument_id": "cdTsgiWbN6DFEaaadkbia6MgbA",
      "payment_method_id": "OCAPI_Payment_Simple",
      "c_strValue": "custom value 1"
    }
  ],
  "total": 2
}
```

### customer\_payment\_instrument\_request

Document representing a customer payment instrument request.

*   `bank_routing_number` (_string_) The bank routing number.  
    Maximum length: 256.
*   `gift_certificate_code` (_string_) The gift certificate code.  
    Maximum length: 256.
*   `payment_bank_account` (_payment\_bank\_account\_request_) The payment bank account request data.
*   `payment_card` (_customer\_payment\_card\_request_) The customer payment card.
*   `payment_method_id` (_string_) The payment method id. Optional if a customer payment instrument id is specified.  
    Maximum length: 256.

_Example_

```
{
  "bank_routing_number": "bankrouting3776",
  "gift_certificate_code": "gift_code7",
  "payment_card": {
    "card_type": "MasterCard",
    "expiration_month": 7,
    "expiration_year": 2027,
    "holder": "Joe Doe",
    "issue_number": "i117",
    "number": "1234567",
    "valid_from_month": 8,
    "valid_from_year": 2007
  },
  "payment_method_id": "OCAPI_Payment_Simple",
  "c_strValue": "custom value 7"
}
```

### customer\_payment\_instrument

Document representing a customer payment instrument.

*   `bank_routing_number` (_string_) The bank routing number.  
    Maximum length: 256.
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `masked_gift_certificate_code` (_string_) The masked gift certificate code.
*   `payment_bank_account` (_payment\_bank\_account_) The payment bank account.
*   `payment_card` (_payment\_card_) The payment card.
*   `payment_instrument_id` (_string_) The payment instrument ID.
*   `payment_method_id` (_string_) The payment method id. Optional if a customer payment instrument id is specified.  
    Maximum length: 256.

_Example_

```
{
  "bank_routing_number": "bankrouting3776",
  "gift_certificate_code_masked": "******ode7",
  "payment_bank_account": {
    "_type": "payment_bank_account"
  },
  "payment_card": {
    "card_type": "MasterCard",
    "credit_card_expired": false,
    "expiration_month": 7,
    "expiration_year": 2027,
    "holder": "Joe Doe",
    "issue_number": "i117",
    "masked_number": "***4567",
    "number_last_digits": "4567",
    "valid_from_month": 8,
    "valid_from_year": 2007
  },
  "payment_instrument_id": "cdOLciWbOsYl6aaadkwcsx9xHH",
  "payment_method_id": "OCAPI_Payment_Simple",
  "c_strValue": "custom value 7"
}
```

### customer\_product\_list\_result

Document representing a customer product lists result.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of customer\_product\_list_) The customer product lists.
*   `next` (_string_)
*   `previous` (_string_)
*   `start` (_integer (int32)_)  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 2,
  "data": [
    {
      "creation_date": "2020-07-29T22:30:43.000Z",
      "event": {
        "_type": "product_list_event"
      },
      "id": "0000073597bbf8c7604dce8f2c",
      "items_link": {
        "link": "https://example.com/s/SiteGenesis/dw/shop/{version}/customers/acXvoeW9o2g9SSiaHDHjnm7Pvc/product_lists/0000073597bbf8c7604dce8f2c/items?start=0&count=2",
        "title": "0 items"
      },
      "last_modified": "2020-07-29T22:30:44.000Z",
      "public": false,
      "type": "wish_list"
    },
    {
      "creation_date": "2020-07-29T22:30:42.000Z",
      "event": {
        "_type": "product_list_event"
      },
      "id": "0000407a34e39368119d1db05c",
      "items_link": {
        "link": "https://example.com/s/SiteGenesis/dw/shop/{version}/customers/acXvoeW9o2g9SSiaHDHjnm7Pvc/product_lists/0000407a34e39368119d1db05c/items?start=0&count=2",
        "title": "0 items"
      },
      "last_modified": "2020-07-29T22:30:44.000Z",
      "public": false,
      "type": "wish_list"
    }
  ],
  "next": "https://localhost/s/SiteGenesis/dw/shop/{version}/customers/acXvoeW9o2g9SSiaHDHjnm7Pvc/product_lists?start=2&count=2",
  "start": 0,
  "total": 4
}
```

### customer\_product\_list

Document representing a customer product List.

*   `co_registrant` (_customer\_product\_list\_registrant_) The coRegistrant of this product list.
*   `creation_date` (_string (date-time)_) Returns the value of attribute 'creationDate'.
*   `current_shipping_address_link` (_customer\_address\_link_) The resource link to the current shipping address of this customer product list.
*   `customer_product_list_items` (_array of customer\_product\_list\_item_) The list of customer product list items.
*   `description` (_string_) The description of this product list.
*   `event` (_product\_list\_event_) The event of this product list.
*   `id` (_string_) The id of this product list.  
    Minimum length: 1.
*   `items_link` (_customer\_product\_list\_item\_link_) The resource link to the items of this customer product list.
*   `last_modified` (_string (date-time)_) Returns the value of attribute 'lastModified'.
*   `name` (_string_) The name of this product list.
*   `post_event_shipping_address_link` (_customer\_address\_link_) The resource link to the post event shipping address of this customer product list.
*   `product_list_shipping_address` (_product\_list\_shipping\_address_) The abbreviated shipping address of this product list representing what anonymous user can see.
*   `public` (_boolean_) Indicates whether the owner made this product list available for access by other customers.
*   `registrant` (_customer\_product\_list\_registrant_) The registrant of this product list.
*   `shipping_address_link` (_customer\_address\_link_) The resource link to the shipping address of this customer product list.
*   `type` (_string_) The type of the product list.  
    Allowed values: `wish_list`, `gift_registry`, `shopping_list`, `custom_1`, `custom_2`, `custom_3`.

_Example_

```
{
  "co_registrant": {
    "email": "janedoe@example.com",
    "first_name": "Jane",
    "last_name": "Doe",
    "role": "Bride"
  },
  "description": "our productlist",
  "event": {
    "city": "Washington",
    "country": "US",
    "date": "2015-07-30T00:00Z",
    "state": "DC",
    "type": "Wedding"
  },
  "id": "bb151cd88655b081acc1fa85c6",
  "items_link": {
    "link": "https://example.com/dw/shop/{version}/customers/abKvXV2tYXMZPTdDwPXgx031cd/product_lists/bb151cd88655b081acc1fa85c6/items",
    "title": "0 items"
  },
  "name": "OurProductList",
  "public": false,
  "registrant": {
    "email": "johndoe@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "role": "Groom"
  },
  "type": "wish_list"
}
```

### customer\_product\_list\_item\_result

Document representing a customer product list items result.

*   `count` (_integer (int32)_)
*   `data` (_array of customer\_product\_list\_item_) The customer product list items.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_)

_Example_

```
{
  "count": 2,
  "data": [
    {
      "id": "ebe04a8c6be5c01a5dac9e50ac",
      "priority": 4,
      "product_details_link": {
        "link": "https://example.com/dw/shop/{version}/products/008884303989",
        "title": "Platinum Blue Stripes Easy Care Fitted Shirt"
      },
      "product_id": "008884303989",
      "public": true,
      "purchased_quantity": 0,
      "quantity": 2,
      "type": "product"
    },
    {
      "id": "f33bfc1a99e64c79ddfbb49b19",
      "priority": 2,
      "public": false,
      "purchased_quantity": 0,
      "type": "gift_certificate"
    }
  ],
  "start": 0,
  "total": 2
}
```

### customer\_product\_list\_item

Document representing a customer product list item.

*   `id` (_string_) The id of this product list item.
*   `priority` (_integer (int32)_) The priority of the item.
*   `product` (_product_) The product item
*   `product_details_link` (_product\_simple\_link_) A link to the product.
*   `product_id` (_string_) The id of the product.
*   `public` (_boolean_) Is this product list item available for access by other customers?
*   `purchased_quantity` (_number (double)_) The quantity of products already purchased.
*   `quantity` (_number (double)_) The quantity of this product list item.  
    Minimum: 0.
*   `type` (_string_) The type of the item.  
    Allowed values: `product`, `gift_certificate`.

_Example_

```
{
  "id": "1d447daa4d25805fd682bd4ce1",
  "priority": 4,
  "product_details_link": {
    "link": "https://example.com/dw/shop/{version}/products/008884303989",
    "title": "Platinum Blue Stripes Easy Care Fitted Shirt"
  },
  "product_id": "008884303989",
  "public": true,
  "purchased_quantity": 0,
  "quantity": 2,
  "type": "product"
}
```

### customer\_product\_list\_item\_purchase\_result

Document representing a customer product list purchases result.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of customer\_product\_list\_item\_purchase_) The customer product list item purchases.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 1,
  "data": [
    {
      "id": "2cebc21d3698a82efae72acff0",
      "product_list_item_id": "416ce013b346c908bee07d62e0",
      "purchase_name": "Jane Doe",
      "quantity": 1
    }
  ],
  "total": 1
}
```

### customer\_product\_list\_item\_purchase

Document representing a customer product list item purchase.

*   `id` (_string_) The id of this purchase.
*   `order_no` (_string_) The order number of this purchase.
*   `product_list_item_id` (_string_) The id of the product list item this purchase relates to.
*   `purchaser_name` (_string_) The name of the purchaser.
*   `quantity` (_number (double)_) The quantity of this product list item purchased.  
    Minimum: 0.

_Example_

```
{
  "id": "dcdb9e4d1f930a2d3a32310ec5",
  "product_list_item_id": "842ea014e952ded367c74a6c56",
  "purchaser_name": "first last",
  "quantity": 1
}
```

### cause

*   `cause` (_cause_)
*   `message` (_string_)
*   `type` (_string_)

### basket

Document representing a basket.

The following flashes are used to indicate the invalidity of a basket:

*   InvalidProductItem - a product item (or bundled product item) refers to a product which no longer exists, is offline, or the product is no longer assigned to a site catalog.
    
*   InvalidOptionItem - indicates that an option item refers to an option id or option value which no longer exists.
    
*   OptionItemWithoutPrice - indicates an option item without a price.
    
*   InvalidCouponCode (until 17.2) - indicates a coupon item became invalid, for example because its redemption limit is reached.
    
*   ProductItemNotAvailable - indicates too little available inventory to support the item quantity.
    
*   ProductItemWithoutPrice - indicates that the item has no price.
    
*   CustomerEmailRequired (until 17.2) - indicates the need to specify a customer email.
    
*   ShippingAddressRequired - indicates the need to specify a shipping address.
    
*   BillingAddressRequired - indicates the need to specify a billing address.
    
*   ShippingMethodRequired - indicates the need to specify a shipping method.
    
*   ShippingMethodNotApplicable - indicates that the currently specified shipping method is not applicable for the given addresses or product items.
    
*   PaymentMethodRequired - indicates the need to specify a payment method.
    
*   PaymentMethodNotApplicable - the currently specified payment method is not applicable for the given addresses or product items.
    
*   OrderTotalNotSet - the basket calculation could not be completed for some reason.
    
*   ProductItemAdjustedPriceLessThanZero - a price adjustment reduces an item price to a value below zero and should be corrected.
    

*   `adjusted_merchandize_total_tax` (_number (double)_)
    
    The products tax after discounts applying in purchase currency.
    
    Adjusted merchandize prices represent the sum of product prices before services such as shipping have been added, but after adjustment from promotions have been added.
    
*   `adjusted_shipping_total_tax` (_number (double)_) The tax of all shipping line items of the line item container after shipping adjustments have been applied.
*   `agent_basket` (_boolean_) Is the basket created by an agent?
*   `basket_id` (_string_) The unique identifier for the basket.
*   `billing_address` (_order\_address_) The billing address. This property is part of basket checkout information only.
*   `bonus_discount_line_items` (_array of bonus\_discount\_line\_item_) The bonus discount line items of the line item container.
*   `channel_type` (_string_, read-only)
    
    The sales channel for the order.
    
    This is a read-only attribute that can't be modified by an OCAPI call. For OCAPI, the sales channel is determined based on the client ID and token used for the OCAPI call. Usually, a customer-based authentication sets the channel to Storefront, and an agent-based authentication sets it to CallCenter. Using applications that use other client IDs for OCAPI calls, like Customer Service Center, will set different channel types. To modify the channel type in OCAPI, use a hook. \*
    
      
    Allowed values: `storefront`, `callcenter`, `marketplace`, `dss`, `store`, `pinterest`, `twitter`, `facebookads`, `subscriptions`, `onlinereservation`, `customerservicecenter`, `instagramcommerce`, `google`, `tiktok`, `snapchat`, `youtube`, `whatsapp`.
*   `coupon_items` (_array of coupon\_item_) The sorted array of coupon items. This array can be empty.
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `currency` (_string_) The ISO 4217 mnemonic code of the currency.
*   `customer_info` (_customer\_info_) The customer information for logged in customers. This property is part of basket checkout information only.
*   `gift_certificate_items` (_array of gift\_certificate\_item_) The sorted array of gift certificate line items. This array can be empty.
*   `grouped_tax_items` (_array of grouped\_tax_) Tax values that are summed and grouped based on the tax rate. The tax totals of the line items with the same tax rate will be grouped together and summed up. This will not affect calculation in any way.
*   `inventory_reservation_expiry` (_string (date-time)_)
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `merchandize_total_tax` (_number (double)_)
    
    The products total tax in purchase currency.
    
    Merchandize total prices represent the sum of product prices before services such as shipping or adjustment from promotions have been added.
    
*   `notes` (_simple\_link_) The notes for the line item container.
*   `order_price_adjustments` (_array of price\_adjustment_) The array of order level price adjustments. This array can be empty.
*   `order_total` (_number (double)_) The total price of the order, including products, shipping and tax. This property is part of basket checkout information only.
*   `payment_instruments` (_array of order\_payment\_instrument_) The payment instruments list for the order.
*   `product_items` (_array of product\_item_) The sorted array of product items (up to a maximum of 50 items by default). This array can be empty.
*   `product_sub_total` (_number (double)_) The total price of all product items after all product discounts. Depending on taxation policy the returned price is net or gross.
*   `product_total` (_number (double)_) The total price of all product items after all product and order discounts. Depending on taxation policy the returned price is net or gross.
*   `shipments` (_array of shipment_) The array of shipments. This property is part of basket checkout information only.
*   `shipping_items` (_array of shipping\_item_) The sorted array of shipping items. This array can be empty.
*   `shipping_total` (_number (double)_)
    
    The total shipping price of the order after all shipping discounts. Excludes tax if taxation policy is net. Includes tax if taxation policy is gross. This property is part of basket checkout information only.
    
    ```
         Includes tax if taxation policy is gross.
    ```
    
*   `shipping_total_tax` (_number (double)_) The tax of all shipping line items of the line item container before shipping adjustments have been applied.
*   `source_code` (_string_) Gets the source code assigned to this basket.
*   `tax_rounded_at_group` (_boolean_) If the tax is rounded at group level then this is set to true, false if the tax is rounded at item or unit level
*   `tax_total` (_number (double)_) The total tax amount of the order. This property is part of basket checkout information only.
*   `taxation` (_string_) The taxation the line item container is based on.  
    Allowed values: `gross`, `net`.
*   `temporary_basket` (_boolean_) Is the basket created a temporary basket?

_Example_

```
{
  "basket_id": "bczFTaOjgEqUkaaadkvHwbgrP5",
  "currency": "USD",
  "customer_info": {
    "customer_id": "adNJrbxJovaT5DPxUSfOywk6Et",
    "email": ""
  },
  "order_total": 0,
  "product_sub_total": 0,
  "product_total": 0,
  "shipments": [
    {
      "id": "me",
      "shipment_id": "bc5OTaOjgEqUoaaadkvHwbgrP5"
    }
  ],
  "shipping_items": [
    {
      "item_id": "bcwsbaOjgEqUsaaadkvHwbgrP5",
      "shipment_id": "me"
    }
  ],
  "shipping_total": 0,
  "shipping_total_tax": 0,
  "tax_total": 0,
  "taxation": "net"
}
```

### order

Document representing an order.

*   `adjusted_merchandize_total_tax` (_number (double)_)
    
    The products tax after discounts applying in purchase currency.
    
    Adjusted merchandize prices represent the sum of product prices before services such as shipping have been added, but after adjustment from promotions have been added.
    
*   `adjusted_shipping_total_tax` (_number (double)_) The tax of all shipping line items of the line item container after shipping adjustments have been applied.
*   `billing_address` (_order\_address_) The billing address. This property is part of basket checkout information only.
*   `bonus_discount_line_items` (_array of bonus\_discount\_line\_item_) The bonus discount line items of the line item container.
*   `channel_type` (_string_, read-only) The sales channel for the order.  
    Allowed values: `storefront`, `callcenter`, `marketplace`, `dss`, `store`, `pinterest`, `twitter`, `facebookads`, `subscriptions`, `onlinereservation`, `customerservicecenter`, `instagramcommerce`, `google`, `tiktok`, `snapchat`, `youtube`, `whatsapp`.
*   `confirmation_status` (_string_) The confirmation status of the order.  
    Allowed values: `not_confirmed`, `confirmed`.
*   `coupon_items` (_array of coupon\_item_) The sorted array of coupon items. This array can be empty.
*   `created_by` (_string_) The name of the user who created the order.
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `currency` (_string_) The ISO 4217 mnemonic code of the currency.
*   `customer_info` (_customer\_info_) The customer information for logged in customers. This property is part of basket checkout information only.
*   `customer_name` (_string_) The name of the customer associated with this order.
*   `export_status` (_string_) The export status of the order.  
    Allowed values: `not_exported`, `exported`, `ready`, `failed`.
*   `external_order_status` (_string_) The external status of the order.
*   `gift_certificate_items` (_array of gift\_certificate\_item_) The sorted array of gift certificate line items. This array can be empty.
*   `global_party_id` (_string_) globalPartyId is managed by Customer 360. Its value can be changed.
*   `grouped_tax_items` (_array of grouped\_tax_) Tax values that are summed and grouped based on the tax rate. The tax totals of the line items with the same tax rate will be grouped together and summed up. This will not affect calculation in any way.
*   `guest` (_boolean_) The registration status of the customer.
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `merchandize_total_tax` (_number (double)_)
    
    The products total tax in purchase currency.
    
    Merchandize total prices represent the sum of product prices before services such as shipping or adjustment from promotions have been added.
    
*   `notes` (_simple\_link_) The notes for the line item container.
*   `order_no` (_string_, read-only) The order number of the order.
*   `order_price_adjustments` (_array of price\_adjustment_) The array of order level price adjustments. This array can be empty.
*   `order_token` (_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.
*   `order_total` (_number (double)_) The total price of the order, including products, shipping and tax. This property is part of basket checkout information only.
*   `payment_instruments` (_array of order\_payment\_instrument_) The payment instruments list for the order.
*   `payment_status` (_string_) The payment status of the order.  
    Allowed values: `not_paid`, `part_paid`, `paid`.
*   `product_items` (_array of product\_item_) The sorted array of product items (up to a maximum of 50 items by default). This array can be empty.
*   `product_sub_total` (_number (double)_) The total price of all product items after all product discounts. Depending on taxation policy the returned price is net or gross.
*   `product_total` (_number (double)_) The total price of all product items after all product and order discounts. Depending on taxation policy the returned price is net or gross.
*   `shipments` (_array of shipment_) The array of shipments. This property is part of basket checkout information only.
*   `shipping_items` (_array of shipping\_item_) The sorted array of shipping items. This array can be empty.
*   `shipping_status` (_string_) The shipping status of the order.  
    Allowed values: `not_shipped`, `part_shipped`, `shipped`.
*   `shipping_total` (_number (double)_)
    
    The total shipping price of the order after all shipping discounts. Excludes tax if taxation policy is net. Includes tax if taxation policy is gross. This property is part of basket checkout information only.
    
    ```
         Includes tax if taxation policy is gross.
    ```
    
*   `shipping_total_tax` (_number (double)_) The tax of all shipping line items of the line item container before shipping adjustments have been applied.
*   `site_id` (_string_) The site where the order resides.
*   `source_code` (_string_) Gets the source code assigned to this basket.
*   `status` (_string_) The status of the order.  
    Allowed values: `created`, `new`, `open`, `completed`, `cancelled`, `replaced`, `failed`.
*   `tax_rounded_at_group` (_boolean_) If the tax is rounded at group level then this is set to true, false if the tax is rounded at item or unit level
*   `tax_total` (_number (double)_) The total tax amount of the order. This property is part of basket checkout information only.
*   `taxation` (_string_) The taxation the line item container is based on.  
    Allowed values: `gross`, `net`.

_Example_

```
{
  "adjusted_merchandize_total_tax": 0.05,
  "adjusted_shipping_total_tax": 0,
  "billing_address": {
    "city": "Boston",
    "country_code": "US",
    "first_name": "Jeff",
    "full_name": "Jeff Lebowski",
    "last_name": "Lebowski",
    "c_strValue": "cTest"
  },
  "creation_date": "2014-11-06T13:36Z",
  "currency": "USD",
  "customer_info": {
    "customer_no": "jlebowski",
    "email": "jeff@lebowski.com"
  },
  "merchandize_total_tax": 5,
  "order_no": "00000101",
  "order_token": "XizrH5hY1vB-Mxno-zfoCqTkegl3y7_OrRPGNZFlYG8",
  "order_total": 1.06,
  "payment_instruments": [
    {
      "amount": 1,
      "id": "cdKCIiWbNVndQaaadhlSa35gtp",
      "payment_bank_account": {
        "drivers_license_last_digits": "ense",
        "drivers_license_masked": "**************ense",
        "number_last_digits": "mber",
        "number_masked": "*************mber"
      },
      "payment_card": {
        "card_type": "testVisa",
        "credit_card_expired": false,
        "expiration_month": 4,
        "expiration_year": 21.2,
        "holder": "TestPerson",
        "number_last_digits": "mber",
        "number_masked": "**********mber"
      },
      "payment_method_id": "OCAPI_Payment_Simple"
    }
  ],
  "product_items": [
    {
      "adjusted_tax": 5,
      "base_price": 16.49,
      "bonus_product_line_item": false,
      "item_id": "cdHBEiWbNV9ZcaaadhrCk35gtp",
      "item_text": "Simple Product",
      "price": 16.49,
      "price_after_item_discount": 16.49,
      "price_after_order_discount": 1,
      "product_id": "SimpleProduct",
      "product_name": "Simple Product",
      "quantity": 1,
      "tax": 5,
      "tax_basis": 16.49,
      "tax_class_id": null,
      "tax_rate": 0.05,
      "c_strValue": "Test"
    }
  ],
  "product_sub_total": 16.49,
  "product_total": 1,
  "shipments": [
    {
      "id": "me",
      "shipping_address": {
        "city": "Boston",
        "country_code": "US",
        "first_name": "Jeff",
        "full_name": "Jeff Lebowski",
        "last_name": "Lebowski",
        "c_strValue": "cTest"
      },
      "shipping_method": {
        "description": {
          "default": "The base shipping method."
        },
        "id": "BaseShippingMethod",
        "name": {
          "default": "Base Shipping Method"
        },
        "price": 0.01,
        "c_somestring": "ShippingMethod String Value"
      }
    }
  ],
  "shipping_items": [
    {
      "adjusted_tax": 0,
      "base_price": 0.01,
      "item_id": "devgoiWbNVc92aaadhrSk35gtp",
      "item_text": "Shipping",
      "price": 0.01,
      "price_after_item_discount": 0.01,
      "shipment_id": "me",
      "tax": 0,
      "tax_basis": 0.01,
      "tax_class_id": "DefaultTaxClass",
      "tax_rate": 0.05
    }
  ],
  "shipping_total": 0.01,
  "shipping_total_tax": 0,
  "status": "created",
  "tax_total": 0.05,
  "c_strValue": "before submit basket",
  "c_textValue": "after submit basket"
}
```

### payment\_bank\_account\_request

Document representing a payment bank account request.

*   `drivers_license` (_string_) The drivers license.  
    Maximum length: 256.
*   `drivers_license_state_code` (_string_) The driver license state code.  
    Maximum length: 256.
*   `holder` (_string_) The holder of the bank account.  
    Maximum length: 256.
*   `number` (_string_) The payment bank account number.  
    Maximum length: 256.

### customer\_payment\_card\_request

Document representing a customer payment card request.

*   `card_type` (_string_) The payment card type (for example, 'Visa').  
    Maximum length: 256.
*   `credit_card_expired` (_boolean_) A flag indicating if the credit card is expired.
*   `credit_card_token` (_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.
*   `expiration_month` (_integer (int32)_) The month when the payment card expires.
*   `expiration_year` (_integer (int32)_) The year when the payment card expires.
*   `holder` (_string_) The payment card holder.  
    Maximum length: 256.
*   `issue_number` (_string_) The payment card issue number.  
    Maximum length: 256.
*   `number` (_string_) The payment card number.  
    Maximum length: 4000.
*   `valid_from_month` (_integer (int32)_) The payment card valid from month.  
    Minimum: 1. Maximum: 12.
*   `valid_from_year` (_integer (int32)_) The payment card valid from year.

### payment\_bank\_account

Document representing a payment bank account.

*   `drivers_license_last_digits` (_string_) The last 4 characters of the decrypted driver's license number of the bank account associated with this payment instrument.  
    Maximum length: 256.
*   `drivers_license_state_code` (_string_) The driver license state code.  
    Maximum length: 256.
*   `holder` (_string_) The holder of the bank account.  
    Maximum length: 256.
*   `masked_drivers_license` (_string_)
    
    The decrypted driver's license number of the bank account with all but the last 4 characters replaced with a '\*' character.
    
    ```
         with a '*' character.
    ```
    
      
    Maximum length: 256.
*   `masked_number` (_string_) The bank account masked number.  
    Maximum length: 256.
*   `number_last_digits` (_string_) The last digits of the bank account number.  
    Maximum length: 256.

_Example_

```
{
  "drivers_license_last_digits": "ense",
  "drivers_license_masked": "**************ense",
  "number_last_digits": "mber",
  "number_masked": "*************mber"
}
```

### payment\_card

Document representing a payment card.

*   `card_type` (_string_) The payment card type (for example, 'Visa').  
    Maximum length: 256.
*   `credit_card_expired` (_boolean_) A flag indicating if the credit card is expired.
*   `credit_card_token` (_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.
*   `expiration_month` (_integer (int32)_) The month when the payment card expires.
*   `expiration_year` (_integer (int32)_) The year when the payment card expires.
*   `holder` (_string_) The payment card holder.  
    Maximum length: 256.
*   `issue_number` (_string_) The payment card issue number.  
    Maximum length: 256.
*   `masked_number` (_string_) The masked credit card number.  
    Maximum length: 4000.
*   `number_last_digits` (_string_) The last digits of credit card number.  
    Maximum length: 4000.
*   `valid_from_month` (_integer (int32)_) The payment card valid from month.  
    Minimum: 1. Maximum: 12.
*   `valid_from_year` (_integer (int32)_) The payment card valid from year.

_Example_

```
{
  "card_type": "Visa",
  "credit_card_expired": false,
  "expiration_month": 2,
  "expiration_year": 2022,
  "holder": "John Smith",
  "masked_number": "***********ber2",
  "number_last_digits": "ber2"
}
```

### customer\_product\_list\_registrant

Document representing a customer product list registrant.

*   `email` (_string_) The email of the registrant.
*   `first_name` (_string_) The first name of the registrant.
*   `last_name` (_string_) The last name of the registrant.
*   `role` (_string_) The role of the registrant.

### customer\_address\_link

*   Result document of product list addresses.

*   `address_id` (_string_) The id of the address.  
    Maximum length: 256.
*   `link` (_string_) The target of the link.
*   `title` (_string_) The link title.

### product\_list\_event

Document representing a product list event.

*   `city` (_string_) The city where the event takes place.
*   `country` (_string_) The country where the event takes place.
*   `date` (_string (date-time)_) The date when the event takes place.
*   `state` (_string_) The federal state where the event takes place.
*   `type` (_string_) Type of the event to celebrate.

_Example_

```
{
  "city": "Washington",
  "country": "US",
  "date": "2015-07-30T00:00Z",
  "state": "DC",
  "type": "Wedding"
}
```

### customer\_product\_list\_item\_link

Document representing a customer product list item link.

*   `link` (_string_) The target of the link.
*   `title` (_string_) The link title.

_Example_

```
{
  "link": "https://example.com/dw/shop/{version}/customers/acE9xUWs5ea75qwTh0Svi2XfRY/product_lists/bcedkiWbxCM2MaaadkRhB2IBzM/items",
  "title": "0 items"
}
```

### product\_list\_shipping\_address

Document representing a product list shipping address.

*   `address_id` (_string_, required) The id of this address.  
    Minimum length: 1.
*   `city` (_string_) The city of this address.
*   `first_name` (_string_) The first name of this address.
*   `last_name` (_string_) The last name of this address.

### product

Document representing a product.

*   `brand` (_string_) The product's brand.
*   `bundled_products` (_array of bundled\_product_) The array of all bundled products of this product.
*   `currency` (_string_) The ISO 4217 mnemonic code of the currency.
*   `ean` (_string_) The European Article Number.
*   `fetch_date` (_integer (int32)_)
*   `id` (_string_, required) The id (SKU) of the product.  
    Minimum length: 1. Maximum length: 100.
*   `image_groups` (_array of image\_group_) The array of product image groups.
*   `inventories` (_array of inventory_) The array of product inventories explicitly requested via 'inventory\_ids' query parameter. This property is only returned in context of the 'availability' expansion.
*   `inventory` (_inventory_) The site default inventory information. This property is only returned in context of the 'availability' expansion.
*   `long_description` (_string (html)_) The localized product long description.
*   `manufacturer_name` (_string_) The products manufacturer name.
*   `manufacturer_sku` (_string_) The products manufacturer sku.
*   `master` (_master_) The master product information. Only for types master, variation group and variant.
*   `min_order_quantity` (_number (double)_) The minimum order quantity for this product.
*   `name` (_string_) The localized product name.
*   `options` (_array of option_) The array of product options. This array can be empty. Only for type option.
*   `page_description` (_string_) The localized products page description.
*   `page_keywords` (_string_) The localized products page description.
*   `page_title` (_string_) The localized products page title.
*   `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.
*   `price_max` (_number (double)_) The maximum sales of related child products in case of complex products like master or set.
*   `price_per_unit` (_number (double)_) The sales price per unit of the product. In case of complex products like master or set this is the minimum price per unit of related child products.
*   `price_per_unit_max` (_number (double)_) The maximum sales price per unit of related child products in case of complex products like master or set.
*   `prices` (_object_) The prices map with price book ids and their values.
    
    Additional properties: `number (double)`.
    
*   `primary_category_id` (_string_) The id of the products primary category.
*   `product_links` (_array of product\_link_) The array of source and target products links information.
*   `product_promotions` (_array of product\_promotion_) 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 for more details.
*   `recommendations` (_array of recommendation_) Returns a list of recommendations.
*   `set_products` (_array of product_) The array of set products of this product.
*   `short_description` (_string (html)_) The localized product short description.
*   `step_quantity` (_number (double)_) The steps in which the order amount of the product can be increased.
*   `type` (_product\_type_) The product type information. Can be one or multiple of the following values: item,master,variation\_group,variant,bundle,set.
*   `unit` (_string_) The sales unit of the product.
*   `unit_measure` (_string_) The unitMeasure of the product.
*   `unit_quantity` (_number (double)_)
*   `upc` (_string_) The Universal Product Code.
*   `valid_from` (_string (date-time)_) The time when product is valid from.
*   `valid_to` (_string (date-time)_) The time when product is valid to.
*   `variants` (_array of variant_) The array of actual variants. This array can be empty. Only for types master, variation group and variant.
*   `variation_attributes` (_array of variation\_attribute_) Sorted array of variation attributes information. This array can be empty. Only for types master, variation group and variant.
*   `variation_groups` (_array of variation\_group_) The array of actual variation groups. This array can be empty. Only for types master, variation group and variant.
*   `variation_values` (_object_)
    
    The actual variation attribute id - value pairs. Only for type variant and variation group.
    
    ```
         Only for type variant and variation group.
    ```
    
    Additional properties: `string`.
    

_Example_

```
{
  "_type": "product",
  "_v": "24.5",
  "brand": "Creative",
  "id": "creative-zen-v",
  "min_order_quantity": 1,
  "name": "Creative ZEN V Digital Media Player",
  "page_description": "The ZEN V player was designed for people like you—those who walk a step or two ahead of the pack. So don't be surprised when people take notice of your cool, colorful music and photo player.",
  "page_keywords": "Creative",
  "page_title": "Creative ZEN V Digital Media Player",
  "primary_category_id": "electronics-digital-media-players",
  "short_description": "The ZEN V player was designed for people like you—those who walk a step or two ahead of the pack. So don't be surprised when people take notice of your cool, colorful music and photo player.",
  "step_quantity": 1,
  "type": {
    "item": true
  },
  "c_mediaFormat": [
    "0010",
    "0020",
    "0030",
    "0040"
  ],
  "c_memorySize": "1GB",
  "c_tabDescription": "The ZEN V player was designed for people like you—those who walk a step or two ahead of the pack. So don't be surprised when people take notice of your cool, colorful music and photo player."
}
```

### product\_simple\_link

Document representing a link to a product.

*   `link` (_string_) The target of the link.
*   `title` (_string_) The link title.

_Example_

```
{
  "link": "https://example.com/dw/shop/{version}/products/008884303989",
  "title": "Platinum Blue Stripes Easy Care Fitted Shirt"
}
```

### order\_address

Document representing an order address.

*   `address1` (_string_) The first address.
*   `address2` (_string_) The second address.
*   `city` (_string_) The city.
*   `company_name` (_string_) The company name.
*   `country_code` (_string_) The two-letter ISO 3166-1 (Alpha-2) country code.  
    Allowed values: `CA`, `DE`, `US`. Value meanings: `CA`: Canada; `DE`: Germany; `US`: United States.
*   `first_name` (_string_) The first name.
*   `full_name` (_string_) The full name.
*   `id` (_string_) Id used to identify this address
*   `job_title` (_string_) The job title.
*   `last_name` (_string_) The last name.
*   `phone` (_string_) The phone number.
*   `post_box` (_string_) The post box.
*   `postal_code` (_string_) The postal code.
*   `salutation` (_string_) The salutation.
*   `second_name` (_string_) The second name.
*   `state_code` (_string_) The state code.
*   `suffix` (_string_) The suffix.
*   `suite` (_string_) The suite.
*   `title` (_string_) The title.

_Example_

```
{
  "city": "Boston",
  "country_code": "US",
  "first_name": "John",
  "last_name": "Smith"
}
```

### bonus\_discount\_line\_item

Document representing a bonus discount line item

*   `bonus_products` (_array of product\_details\_link_) The list of links to the bonus products the customer can choose from.
*   `coupon_code` (_string_) The coupon code that triggered the promotion, if applicable.
*   `id` (_string_) The ID of the line item.
*   `max_bonus_items` (_integer (int32)_) The maximum number of bonus items the user can select for this promotion.
*   `promotion_id` (_string_) The ID of the promotion which triggered the creation of the line item.

### coupon\_item

Document representing a coupon item.

*   `code` (_string_, required) The coupon code.  
    Maximum length: 256.
*   `coupon_item_id` (_string_) The coupon item id.
*   `status_code` (_string_) The status of the coupon item.  
    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`.
*   `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'.

_Example_

```
{
  "code": "the99coupon"
}
```

### customer\_info

Document representing information used to identify a customer.

*   `customer_id` (_string_) The customer's number (id).  
    Maximum length: 100.
*   `customer_name` (_string_)
*   `customer_no` (_string_) The customer's number (id).  
    Maximum length: 100.
*   `email` (_string (email)_, required) The customer's email address.

_Example_

```
{
  "customer_no": "customer0012",
  "email": "valid@email.com"
}
```

### gift\_certificate\_item

A gift certificate item.

*   `amount` (_number (double)_, required) The certificate item amount.
*   `gift_certificate_item_id` (_string_) Id used to identify this item
*   `message` (_string_) The certificate's message.  
    Maximum length: 4000.
*   `recipient_email` (_string_, required) The recipient's email.  
    Minimum length: 1.
*   `recipient_name` (_string_) The recipient's name.
*   `sender_name` (_string_) The sender's name.
*   `shipment_id` (_string_) The shipment id.

_Example_

```
{
  "amount": 200,
  "message": "Present from your brother",
  "recipient_email": "peter@example.com",
  "recipient_name": "Peter Doe",
  "sender_name": "John Doe"
}
```

### grouped\_tax

Document representing a tax rate with it's summed up tax values

*   `tax_rate` (_number (double)_) The tax rate
*   `tax_value` (_number (double)_) The summed up tax total for the tax rate

### simple\_link

Document representing a link to another resource.

*   `link` (_string_) The link to the resource.

_Example_

```
{
  "link": "https://example.com/dw/shop/{version}/orders/bc0KwiWexX0ZQaaadqRTwMZFga/notes"
}
```

### price\_adjustment

Document representing a price adjustment within a basket or order. Price adjustments can be assigned at the order, product, or shipping level. They can be created by the promotion engine (if the custom flag is set to false) or can be added by custom logic (if the custom flag is set to true). For custom price adjustments created by a user, the manual flag should be set to true; this is always the case for price adjustments created using OCAPI.

A price adjustment created by custom logic can either define a price that defines the absolute price reduction or define a discount from which a price reduction is calculated (amount, percentage, and fixed\_price discounts are supported). The applied\_discount property describes the discount applied to create the price-adjustment.

*   `applied_discount` (_discount_) A price adjustment that provides details of the discount that was applied. This is `null` for custom price adjustments created without discount details.
*   `coupon_code` (_string_) The coupon code that triggered the promotion, provided the price adjustment was created as the result of a promotion being triggered by a coupon.
*   `created_by` (_string_) The user who created the price adjustment.
*   `creation_date` (_string (date-time)_, read-only) Returns the value of attribute 'creationDate'.
*   `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.
*   `item_text` (_string_) The text describing the item in more detail.
*   `last_modified` (_string (date-time)_, read-only) Returns the value of attribute 'lastModified'.
*   `manual` (_boolean_)
    
    A flag indicating whether this price adjustment was created in a manual process.
    
    For custom price adjustments created using the shop API, this _always_ returns `true`. Using the scripting API, however, it is possible to set this to `true` or `false`, according to the use case.
    
*   `price` (_number (double)_) The adjustment price.
*   `price_adjustment_id` (_string_) The price adjustment id (uuid).
*   `promotion_id` (_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 promotion defined in the promotion engine. If not specified, a promotion id is generated.
*   `promotion_link` (_string_) The URL addressing the related promotion.
*   `reason_code` (_string_) The reason why this price adjustment was made.  
    Allowed values: `BACKORDER`, `EVEN_EXCHANGE`, `PRICE_MATCH`. Value meanings: `BACKORDER`: Backorder; `EVEN_EXCHANGE`: Even Exchange; `PRICE_MATCH`: Price Match.

### order\_payment\_instrument

Document representing an order payment instrument.

*   `amount` (_number (double)_) The payment transaction amount.
*   `authorization_status` (_status_) The authorization status of the payment transaction.
*   `bank_routing_number` (_string_) The bank routing number.  
    Maximum length: 256.
*   `masked_gift_certificate_code` (_string_) The masked gift certificate code.
*   `payment_bank_account` (_payment\_bank\_account_) The payment bank account.
*   `payment_card` (_payment\_card_) The payment card.
*   `payment_instrument_id` (_string_) The payment instrument ID.
*   `payment_method_id` (_string_) The payment method id. Optional if a customer payment instrument id is specified.  
    Maximum length: 256.

_Example_

```
{
  "amount": 1,
  "payment_card": {
    "card_type": "Visa",
    "credit_card_expired": false,
    "expiration_month": 1,
    "expiration_year": 2021,
    "holder": "John Doe",
    "masked_number": "***********1111",
    "number_last_digits": "1111"
  },
  "payment_instrument_id": "ceDUYiWbN1IkkaaadkYHRkclwC",
  "payment_method_id": "CREDIT_CARD",
  "c_strValue": "any custom value"
}
```

### product\_item

Document representing a product item.

*   `adjusted_tax` (_number (double)_) The tax of the product item after adjustments applying.
*   `base_price` (_number (double)_) The base price for the line item, which is the price of the unit before applying adjustments, in the purchase currency. The base price may be net or gross of tax depending on the configured taxation policy.
*   `bonus_discount_line_item_id` (_string_) The id of the bonus discount line item this bonus product relates to.
*   `bonus_product_line_item` (_boolean_) A flag indicating whether the product item is a bonus.
*   `bundled_product_items` (_array of product\_item_) The array of bundled product items. Can be empty.
*   `gift` (_boolean_) Returns true if the item is a gift.
*   `gift_message` (_string_) The gift message.
*   `inventory_id` (_string_) The inventory list id associated with this item.  
    Maximum length: 256.
*   `item_id` (_string_) The item identifier. Use this to identify an item when updating the item quantity or creating a custom price adjustment for an item.
*   `item_text` (_string_) The text describing the item in more detail.
*   `option_items` (_array of option\_item_) The array of option items. This array can be empty.
*   `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.
*   `price_adjustments` (_array of price\_adjustment_) Array of price adjustments. Can be empty.
*   `price_after_item_discount` (_number (double)_) The price of the product line item after applying all product-level adjustments. For net pricing the adjusted net price is returned. For gross pricing, the adjusted gross price is returned.
*   `price_after_order_discount` (_number (double)_) The price of this product line item after considering all dependent price adjustments and prorating all order-level price adjustments. For net pricing the net price is returned. For gross pricing, the gross price is returned.
*   `product_id` (_string_) The id (SKU) of the product.  
    Maximum length: 100.
*   `product_list_item` (_product\_list\_item\_reference_)
*   `product_name` (_string_) The name of the product.
*   `quantity` (_number (double)_, required) The quantity of the products represented by this item.  
    Minimum: 0.
*   `shipment_id` (_string_) The id of the shipment which includes the product item.
*   `shipping_item_id` (_string_) The reference to the related shipping item if it exists. This is the case if for example when a surcharge is defined for individual products using a particular a shipping method.
*   `tax` (_number (double)_) The tax of the product item before adjustments applying.
*   `tax_basis` (_number (double)_)
    
    The price used to calculate the tax for this product item.
    
    ```
         null if tax has not been set for this product item yet
    ```
    
*   `tax_class_id` (_string_)
    
    The tax class ID for the product item or null if no tax class ID is associated with the product item.
    
    if no tax class ID is associated with the product item
    
*   `tax_rate` (_number (double)_) The tax rate, which is the decimal tax rate to be applied to the product represented by this item.

_Example_

```
{
  "adjusted_tax": 5,
  "base_price": 16.49,
  "bonus_product_line_item": false,
  "item_id": "cdHBEiWbNV9ZcaaadhrCk35gtp",
  "item_text": "Simple Product",
  "price": 16.49,
  "price_after_item_discount": 16.49,
  "price_after_order_discount": 1,
  "product_id": "SimpleProduct",
  "product_name": "Simple Product",
  "quantity": 1,
  "tax": 5,
  "tax_basis": 16.49,
  "tax_class_id": null,
  "tax_rate": 0.05,
  "c_strValue": "Test"
}
```

### shipment

Document representing a shipment.

*   `adjusted_merchandize_total_tax` (_number (double)_)
    
    The products tax after discounts applying in purchase currency. Adjusted merchandize prices represent the sum of product prices before services such as shipping have been added, but after adjustment from promotions have been added.
    
    Note that order level adjustments are considered if Discount Taxation preference is set to "Tax Products and Shipping Only Based on Adjusted Price".
    
*   `adjusted_shipping_total_tax` (_number (double)_) The tax of all shipping line items of the line item container after shipping adjustments have been applied.
*   `gift` (_boolean_) A flag indicating whether the shipment is a gift.
*   `gift_message` (_string_) The gift message.
*   `merchandize_total_tax` (_number (double)_) The products total tax in purchase currency. Merchandize total prices represent the sum of product prices before services such as shipping or adjustment from promotions have been added.
*   `product_sub_total` (_number (double)_) The total price of all product items after all product discounts. Depending on taxation policy the returned price is net or gross.
*   `product_total` (_number (double)_) The total price of all product items after all product and order discounts. Depending on taxation policy the returned price is net or gross.
*   `shipment_id` (_string_) The order specific id to identify the shipment.
*   `shipment_no` (_string_)
    
    Returns the shipment number for this shipment.
    
    This number is automatically generated.
    
*   `shipment_total` (_number (double)_)
    
    The total price of the shipment, including products, shipping and tax.
    
    Note that order level adjustments are not considered.
    
*   `shipping_address` (_order\_address_) The shipping address.
*   `shipping_method` (_shipping\_method_) The shipping method.
*   `shipping_status` (_string_) The shipping status of the shipment.  
    Allowed values: `not_shipped`, `shipped`.
*   `shipping_total` (_number (double)_)
    
    The total shipping price of the shipment after all shipping discounts. Excludes tax if taxation policy is net. Includes tax if taxation policy is gross.
    
    ```
         net. Includes tax if taxation policy is gross.
    ```
    
*   `shipping_total_tax` (_number (double)_) The tax of all shipping line items of the line item container before shipping adjustments have been applied.
*   `tax_total` (_number (double)_)
    
    The total tax amount of the shipment.
    
    Note that order level adjustments are considered if Discount Taxation preference is set to "Tax Products and Shipping Only Based on Adjusted Price".
    
*   `tracking_number` (_string_) The tracking number of the shipment.

_Example_

```
{
  "gift": true,
  "gift_message": "Happy Birthday, Sværre",
  "id": "StandardShipping",
  "shipping_address": {
    "city": "Boston",
    "country_code": "US",
    "first_name": "John",
    "last_name": "Smith"
  },
  "shipping_method": {
    "id": "BaseShippingMethod"
  }
}
```

### shipping\_item

Document representing a shipping item.

*   `adjusted_tax` (_number (double)_) The tax of the product item after adjustments applying.
*   `base_price` (_number (double)_) The base price for the line item, which is the price of the unit before applying adjustments, in the purchase currency. The base price may be net or gross of tax depending on the configured taxation policy.
*   `item_id` (_string_) The item identifier. Use this to identify an item when updating the item quantity or creating a custom price adjustment for an item.
*   `item_text` (_string_) The text describing the item in more detail.
*   `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.
*   `price_adjustments` (_array of price\_adjustment_) Array of price adjustments. Can be empty.
*   `price_after_item_discount` (_number (double)_) The price of the product line item after applying all product-level adjustments. For net pricing the adjusted net price is returned. For gross pricing, the adjusted gross price is returned.
*   `shipment_id` (_string_) The identifier of the shipment to which this item belongs.
*   `tax` (_number (double)_) The tax of the product item before adjustments applying.
*   `tax_basis` (_number (double)_)
    
    The price used to calculate the tax for this product item.
    
    ```
         null if tax has not been set for this product item yet
    ```
    
*   `tax_class_id` (_string_)
    
    The tax class ID for the product item or null if no tax class ID is associated with the product item.
    
    if no tax class ID is associated with the product item
    
*   `tax_rate` (_number (double)_) The tax rate, which is the decimal tax rate to be applied to the product represented by this item.

_Example_

```
{
  "adjusted_tax": 0,
  "base_price": 0.01,
  "item_id": "devgoiWbNVc92aaadhrSk35gtp",
  "item_text": "Shipping",
  "price": 0.01,
  "price_after_item_discount": 0.01,
  "shipment_id": "me",
  "tax": 0,
  "tax_basis": 0.01,
  "tax_class_id": "DefaultTaxClass",
  "tax_rate": 0.05
}
```

### bundled\_product

Document representing a bundled product within a product bundle.

*   `id` (_string_)
*   `product` (_product_) The product being bundled.
*   `quantity` (_number (double)_) For the product being bundled, the quantity added to the bundle.

_Example_

```
{
  "product": {
    "brand": "Sony",
    "id": "sony-ps3-console",
    "name": "Sony Playstation 3 Game Console",
    "page_description": "ncludes PLAYSTATION 3 80GB system, DUALSHOCK 3 wireless controller, free PLAYSTATION Network membership, internet ready Wi-Fi, and 80GB of hard disk storage for all your games, music, videos, and photos. Every PS3 comes with a built-in Blu-ray player to give you the best high-definition viewing experience and pristine picture quality. Plus, the PS3 can play your entire catalog of CDs and DVDs.",
    "page_keywords": "Sony",
    "page_title": "Sony Playstation 3 Game Console",
    "primary_category_id": "electronics-game-consoles",
    "short_description": "ncludes PLAYSTATION 3 80GB system, DUALSHOCK 3 wireless controller, free PLAYSTATION Network membership, internet ready Wi-Fi, and 80GB of hard disk storage for all your games, music, videos, and photos. Every PS3 comes with a built-in Blu-ray player to give you the best high-definition viewing experience and pristine picture quality. Plus, the PS3 can play your entire catalog of CDs and DVDs.",
    "type": {
      "item": true,
      "option": true
    }
  },
  "quantity": 1
}
```

### image\_group

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

*   `images` (_array of image_) The images of the image group.
*   `variation_attributes` (_array of variation\_attribute_) Returns a list of variation attributes applying to this image group.
*   `view_type` (_string_) The image view type.

_Example_

```
{
  "images": [
    {
      "alt": "ALT master detail",
      "link": "https://example.com/foo/bar/master_detail.jpg",
      "title": "TITLE master detail"
    }
  ],
  "view_type": "detail"
}
```

### inventory

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

*   `ats` (_number (double)_) The 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'.
*   `backorderable` (_boolean_) A flag indicating whether the product is back orderable.
*   `id` (_string_, required) The inventory id.
*   `in_stock_date` (_string (date-time)_) A flag indicating the date when the product will be in stock.
*   `orderable` (_boolean_) A flag indicating whether at least one of products is available to sell.
*   `preorderable` (_boolean_) A flag indicating whether the product is pre orderable.
*   `stock_level` (_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_

```
{
  "ats": 0,
  "backorderable": false,
  "id": "BlueJeansInventory",
  "orderable": false,
  "preorderable": false,
  "stock_level": 0
}
```

### master

Document representing a variation master.

*   `link` (_string_) The URL addressing the master product.
*   `master_id` (_string_, required) The id (SKU) of the master product.  
    Minimum length: 1. Maximum length: 100.
*   `orderable` (_boolean_) A flag indicating whether at least one of the variants is orderable.
*   `price` (_number (double)_) The minimum sales price of the related variants.
*   `price_max` (_number (double)_) The maximum sales of related variants.
*   `price_per_unit` (_number (double)_) The minimum sales price per unit of the related variants.
*   `price_per_unit_max` (_number (double)_) The maximum sales price per unit of the related variants.
*   `prices` (_object_)
    
    Additional properties: `number (double)`.
    

### option

Document representing a product option.

*   `description` (_string_) The localized description of the option.
*   `id` (_string_, required) The id of the option.  
    Minimum length: 1. Maximum length: 100.
*   `image` (_string_) The URL to the option image.
*   `name` (_string_) The localized name of the option.
*   `values` (_array of option\_value_) The array of option values. This array can be empty.

### product\_link

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

*   `source_product_id` (_string_) The semantic id of the product from which this product link is coming.
*   `source_product_link` (_string_) The URL addressing the product from which this product link is coming.
*   `target_product_id` (_string_) The semantic id of the product to which this product link is pointing.
*   `target_product_link` (_string_) The URL addressing the product to which this product link is pointing.
*   `type` (_string_) The type of this product link.  
    Allowed values: `cross_sell`, `replacement`, `up_sell`, `accessory`, `newer_version`, `alt_orderunit`, `spare_part`, `other`.

_Example_

```
{
  "source_product_id": "namco-we-ski-wii",
  "source_product_link": "http://example.com/dw/shop/{version}/products/namco-we-ski-wii?pretty_print=true",
  "target_product_id": "midway-cruisn-wii",
  "target_product_link": "http://example.com/dw/shop/{version}/products/midway-cruisn-wii?pretty_print=true",
  "type": "cross_sell"
}
```

### product\_promotion

Document representing a product promotion.

*   `callout_msg` (_string_) The localized call-out message of the promotion.
*   `link` (_string_) The URL addressing the promotion.
*   `promotion_id` (_string_) The unique id of the promotion.
*   `promotional_price` (_number (double)_) The promotional price for this product.

_Example_

```
{
  "callout_msg": "Save 15% Off iPod Nano",
  "link": "http://example.com/dw/shop/{version}/promotions/15off-nano",
  "promotion_id": "15off-nano"
}
```

### recommendation

Document representing a product recommendation.

*   `callout_msg` (_string (html)_) The localized callout message of the recommendation.
*   `image` (_image_) The image of the recommendation.
*   `long_description` (_string (html)_) The localized long description of the recommendation.
*   `name` (_string_) The localized name of the recommendation.
*   `recommendation_type` (_recommendation\_type_) The recommendation type of the recommendation.
*   `recommended_item_id` (_string_) The recommended item id of the recommendation.
*   `recommended_item_link` (_string_) The recommended item link of the recommendation.
*   `short_description` (_string (html)_) The localized short description of the recommendation.

### product\_type

Document representing a product type.

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

_Example_

```
{
  "item": true
}
```

### variant

Document representing a product variation.

*   `link` (_string_) The URL addressing the product.
*   `orderable` (_boolean_) A flag indicating whether the variant is orderable.
*   `price` (_number (double)_) The sales price of the variant.
*   `price_per_unit` (_number (double)_) The sales price of the variant.
*   `product_id` (_string_, required) The id (SKU) of the variant.  
    Minimum length: 1. Maximum length: 100.
*   `variation_values` (_object_) The actual variation attribute id - value pairs.
    
    Additional properties: `string`.
    

_Example_

```
{
  "link": "http://example.com/dw/shop/{version}/products/apple-ipod-touch-8gb?pretty_print=true",
  "product_id": "apple-ipod-touch-8gb",
  "variation_values": {
    "memorySize": "8 GB"
  }
}
```

### variation\_attribute

Document representing a variation attribute.

*   `id` (_string_, required) The id of the variation attribute.  
    Minimum length: 1.
*   `name` (_string_) The localized display name of the variation attribute.
*   `values` (_array of variation\_attribute\_value_) The sorted array of variation values. This array can be empty.

_Example_

```
{
  "id": "memorySize",
  "name": "Memory Size",
  "values": [
    {
      "name": "1 GB",
      "value": "1 GB"
    },
    {
      "name": "2 GB",
      "value": "2 GB"
    },
    {
      "name": "8 GB",
      "value": "8 GB"
    },
    {
      "name": "16 GB",
      "value": "16 GB"
    },
    {
      "name": "32 GB",
      "value": "32 GB"
    },
    {
      "name": "120 GB",
      "value": "120 GB"
    }
  ]
}
```

### variation\_group

Document representing a variation group.

*   `link` (_string_) The URL addressing the product.
*   `orderable` (_boolean_) A flag indicating whether the variation group is orderable.
*   `price` (_number (double)_) The sales price of the variation group.
*   `price_per_unit` (_number (double)_) The sales price per unit of the variation group.
*   `product_id` (_string_) The id (SKU) of the variation group.  
    Minimum length: 1. Maximum length: 100.
*   `variation_values` (_object_) The actual variation attribute id - value pairs.
    
    Additional properties: `string`.
    

### product\_details\_link

Document representing a link to the resource for product details.

*   `link` (_string_) The target of the link.
*   `product_description` (_string_) The description of the product.
*   `product_id` (_string_, required) The id of the product.
*   `product_name` (_string_) The name of the product.
*   `title` (_string_) The link title.

_Example_

```
{
  "link": "https://example.com/dw/shop/{version}/products/BlueJeansType1",
  "product_id": "BlueJeansType1",
  "product_name": "Product w/- Local Option",
  "title": "Product w/- Local Option"
}
```

### discount

Document representing a discount that was _either_ optionally applied when creating a custom price adjustment _or_ applied by the promotion engine. The property `type` is mandatory; the properties `amount` and `priceBookId` are used only in association with specific types. Some examples:

*   Type `percentage` with percentage `15.00` : a 15% discount was applied.
    
*   Type `amount` with amount `5.99` : a discount was applied to reduce the (unit) price by 5.99.
    
*   Type `fixed_price` with amount `49.99` : a discount was applied to reduce the price to 49.99.
    
*   Type `free` : a discount was applied to reduce the price to zero.
    
*   Type `price_book_price` with price\_book\_id `MyPriceBook` : a discount was applied to set the price to that defined in MyPriceBook.
    

*   `amount` (_number (double)_) The amount that is used with the amount and fixed price types.
*   `percentage` (_number (double)_) The percentage that is used with percentage types.
*   `price_book_id` (_string_) The price book id that is used with some types.
*   `type` (_string_, required) The type of discount.  
    Allowed values: `percentage`, `fixed_price`, `amount`, `free`, `price_book_price`, `bonus`, `total_fixed_price`, `bonus_choice`, `percentage_off_options`.

_Example_

```
{
  "amount": 15,
  "type": "amount"
}
```

### status

Document representing a status of an object.

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

### option\_item

Document representing an option item.

*   `adjusted_tax` (_number (double)_) The tax of the product item after adjustments applying.
*   `base_price` (_number (double)_) The base price for the line item, which is the price of the unit before applying adjustments, in the purchase currency. The base price may be net or gross of tax depending on the configured taxation policy.
*   `bonus_discount_line_item_id` (_string_) The id of the bonus discount line item this bonus product relates to.
*   `bonus_product_line_item` (_boolean_) A flag indicating whether the product item is a bonus.
*   `bundled_product_items` (_array of product\_item_) The array of bundled product items. Can be empty.
*   `gift` (_boolean_) Returns true if the item is a gift.
*   `gift_message` (_string_) The gift message.
*   `inventory_id` (_string_) The inventory list id associated with this item.  
    Maximum length: 256.
*   `item_id` (_string_) The item identifier. Use this to identify an item when updating the item quantity or creating a custom price adjustment for an item.
*   `item_text` (_string_) The text describing the item in more detail.
*   `option_id` (_string_, required) The id of the option.  
    Maximum length: 256.
*   `option_items` (_array of option\_item_) The array of option items. This array can be empty.
*   `option_value_id` (_string_, required) The id of the option value.  
    Maximum length: 256.
*   `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.
*   `price_adjustments` (_array of price\_adjustment_) Array of price adjustments. Can be empty.
*   `price_after_item_discount` (_number (double)_) The price of the product line item after applying all product-level adjustments. For net pricing the adjusted net price is returned. For gross pricing, the adjusted gross price is returned.
*   `price_after_order_discount` (_number (double)_) The price of this product line item after considering all dependent price adjustments and prorating all order-level price adjustments. For net pricing the net price is returned. For gross pricing, the gross price is returned.
*   `product_id` (_string_) The id (SKU) of the product.  
    Maximum length: 100.
*   `product_list_item` (_product\_list\_item\_reference_)
*   `product_name` (_string_) The name of the product.
*   `quantity` (_number (double)_) The quantity of the products represented by this item.  
    Minimum: 0.
*   `shipment_id` (_string_) The id of the shipment which includes the product item.
*   `shipping_item_id` (_string_) The reference to the related shipping item if it exists. This is the case if for example when a surcharge is defined for individual products using a particular a shipping method.
*   `tax` (_number (double)_) The tax of the product item before adjustments applying.
*   `tax_basis` (_number (double)_)
    
    The price used to calculate the tax for this product item.
    
    ```
         null if tax has not been set for this product item yet
    ```
    
*   `tax_class_id` (_string_)
    
    The tax class ID for the product item or null if no tax class ID is associated with the product item.
    
    if no tax class ID is associated with the product item
    
*   `tax_rate` (_number (double)_) The tax rate, which is the decimal tax rate to be applied to the product represented by this item.

_Example_

```
{
  "option_id": "Warranty",
  "option_value_id": "oneYear"
}
```

### product\_list\_item\_reference

*   `id` (_string_, required) The id of the product list item.
*   `priority` (_integer (int32)_)
*   `product_details_link` (_product\_details\_link_)
*   `product_list` (_product\_list\_link_) The link of the product list, the item is assigned
*   `public` (_boolean_)
*   `purchased_quantity` (_number (double)_)
*   `quantity` (_number (double)_)  
    Minimum: 0.
*   `type` (_string_)  
    Allowed values: `product`, `gift_certificate`.

### shipping\_method

Document representing a shipping method.

*   `description` (_string_) The localized description of the shipping method.
*   `external_shipping_method` (_string_) The external shipping method.
*   `id` (_string_, required) The shipping method id.  
    Maximum length: 256.
*   `name` (_string_) The localized name of the shipping method.
*   `price` (_number (double)_) The shipping cost total, including shipment level costs and product level fix and surcharge costs.
*   `shipping_promotions` (_array of shipping\_promotion_) The array of active customer shipping promotions for this shipping method. This array can be empty.

_Example_

```
{
  "id": "BaseShippingMethod"
}
```

### image

Document representing a product image.

*   `alt` (_string_) The localized alternative text of the image.
*   `dis_base_link` (_string_) Base URL for dynamic image service address. This is only shown, if the image is stored on the server and DIS is enabled.
*   `link` (_string_, required) The URL of the actual image.  
    Minimum length: 1.
*   `title` (_string_) The localized title of the image.

_Example_

```
{
  "alt": "ALT main swatch",
  "link": "https://example.com/foo/bar/main_swatch.jpg",
  "title": "TITLE main swatch"
}
```

### option\_value

Document representing an option value.

*   `default` (_boolean_) A flag indicating whether this option value is the default one.
*   `id` (_string_, required) The id of the option value.  
    Minimum length: 1. Maximum length: 100.
*   `name` (_string_) The localized name of the option value.
*   `price` (_number (double)_) The effective price of this option value.

### recommendation\_type

Document representing a recommendation type.

*   `display_value` (_string_) The localized display value of the recommendation type.
*   `value` (_integer (int32)_) The value of the recommendation type.

_Example_

```
{
  "display_value": "Cross-Sell",
  "value": 1
}
```

### variation\_attribute\_value

Document representing a variation attribute value.

*   `description` (_string_) The localized description of the variation value.
*   `image` (_image_) The first product image for the configured viewtype and this variation value.
*   `image_swatch` (_image_) The first product image for the configured viewtype and this variation value. (typically the swatch image)
*   `name` (_string_) The localized display name of the variation value.
*   `orderable` (_boolean_) A flag indicating whether at least one variant with this variation attribute value is available to sell.
*   `value` (_string_, required) The actual variation value.  
    Minimum length: 1.

### product\_list\_link

Document representing a link to a product list.

*   `description` (_string_) The description of this product list.
*   `link` (_string_) The target of the link.
*   `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.
*   `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`.

### shipping\_promotion

Document representing a shipping promotion.

*   `callout_msg` (_string_) The localized call-out message of the promotion.
*   `link` (_string_) The URL addressing the promotion.
*   `promotion_id` (_string_) The unique id of the promotion.
*   `promotion_name` (_string_) The localized promotion name.