---
schema_version: "1"
id: 746a0422809a51487d77d0f0d8529871426f0058af012db79b83707dfe98092f
title: Shop Orders (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-orders.md
canonical_url: https://developer.salesforce.com/docs/commerce/b2c-commerce/references/ocapi-shop-orders
source_site: developer.salesforce.com
content_type: documentation
content_hash: 531b5b6ad5d4588624b6ee4d871be399734b8ddcf5c32e3ca6c98bf1a47bd9d3
products:
  - B2C Commerce
  - Salesforce APIs
---
Shop Orders (deprecated)

# Shop Orders (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 Submit basket

`POST /orders`

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

Submits an order based on a prepared basket. Note: If the basket has been submitted using Order Center (considered by it's client id) the channel type will be set to "Call Center". In case another channel type was set by a script before submitting the basket, the channel type will be reset to "Call Center" and a warning will be logged. The only considered value from the request body is **basket\_id** .

This endpoint may return the following faults:

*   400 - GiftCertificateCreationException - Thrown if a failure during the creation of a gift certificate for a gift certificate item.
*   400 - InvalidBasketIdException - Indicates that the basket id in the request body is null or empty.
*   400 - InvalidCustomerException - Indicates that the customer assigned to the basket does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   400 - InvalidProductItemException - Indicates an invalid product item.
*   400 - InvalidProductOptionItemException - Indicates that an option with the specified option id is unknown.
*   400 - InvalidProductOptionValueItemException - Indicates that an option with the specified option value id is unknown.
*   400 - ProductItemNotAvailableException - Thrown if a product item is not available.
*   400 - ValidationException - Indicates that the basket contains flashes.
*   404 - BasketNotFoundException - Indicates that the basket with the given basket id is unknown.

#### Request body (required)

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

#### Responses

*   **400** `GiftCertificateCreationException` - Thrown if a failure during the creation of a gift certificate for a gift certificate item. or `InvalidBasketIdException` - Indicates that the basket id in the request body is null or empty. or `InvalidCustomerException` - Indicates that the customer assigned to the basket does not match the verified customer represented by the JWT, not relevant when using OAuth. or `InvalidProductItemException` - Indicates an invalid product item. or `InvalidProductOptionItemException` - Indicates that an option with the specified option id is unknown. or `InvalidProductOptionValueItemException` - Indicates that an option with the specified option value id is unknown. or `ProductItemNotAvailableException` - Thrown if a product item is not available. or `ValidationException` - Indicates that the basket contains flashes.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `BasketNotFoundException` - Indicates that the basket with the given basket id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### GET Get order

`GET /orders/{order_no}`

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

Gets information for an order.

This endpoint may return the following faults:

*   404 - OrderNotFoundException - Indicates that the order with the given order number is unknown.

#### Parameters

*   `order_no` (path, string, required) the order number  
    Minimum length: 1.

#### Responses

*   **404** `OrderNotFoundException` - Indicates that the order with the given order number is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### PUT Submit basket with given order number

`PUT /orders/{order_no}`

Operation ID: `Submit basket with given order number`. Tags: orders. Security: oauth2\_application; customers\_auth; client\_id.

Submits an order with a given order number, based on a prepared basket. The only considered value from the request body is **basket\_id** .

This endpoint may return the following faults:

*   400 - GiftCertificateCreationException - Thrown if a failure during the creation of a gift certificate for a gift certificate item.
*   400 - InvalidBasketIdException - Indicates that the basket id in the request body is null or empty.
*   400 - InvalidCustomerException - Indicates that the customer assigned to the basket does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   400 - InvalidProductItemException - Indicates an invalid product item.
*   400 - InvalidProductOptionItemException - Indicates that an option with the specified option id is unknown.
*   400 - InvalidProductOptionValueItemException - Indicates that an option with the specified option value id is unknown.
*   400 - ProductItemNotAvailableException - Thrown if a product item is not available.
*   400 - ValidationException - Indicates that the basket contains flashes.
*   404 - BasketNotFoundException - Indicates that the basket with the given basket id is unknown.
*   409 - DuplicateOrderNumberException - 409 CONFLICT Indicates that the requested order number is already allocated to an existing order.

#### Parameters

*   `order_no` (path, string, required) The order number to assign to the new order.  
    Minimum length: 1. Maximum length: 50.

#### Request body (required)

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

#### Responses

*   **400** `GiftCertificateCreationException` - Thrown if a failure during the creation of a gift certificate for a gift certificate item. or `InvalidBasketIdException` - Indicates that the basket id in the request body is null or empty. or `InvalidCustomerException` - Indicates that the customer assigned to the basket does not match the verified customer represented by the JWT, not relevant when using OAuth. or `InvalidProductItemException` - Indicates an invalid product item. or `InvalidProductOptionItemException` - Indicates that an option with the specified option id is unknown. or `InvalidProductOptionValueItemException` - Indicates that an option with the specified option value id is unknown. or `ProductItemNotAvailableException` - Thrown if a product item is not available. or `ValidationException` - Indicates that the basket contains flashes.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `BasketNotFoundException` - Indicates that the basket with the given basket id is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **409** `DuplicateOrderNumberException` - 409 CONFLICT Indicates that the requested order number is already allocated to an existing order.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### PATCH Update order

`PATCH /orders/{order_no}`

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

Update an order.

Considered fields for update are status (same status transitions are possible as for dw.order.Order.setStatus(int status) plus CREATED to FAILED) and custom properties. During the call the correct channel type will be assured to be set for the order in a successful call. Without agent context the channel type will be storefront otherwise callcenter.

This endpoint may return the following faults:

*   404 - NotFoundException - Indicates that the order with the given order number is unknown.

#### Parameters

*   `order_no` (path, string, required) the order number  
    Minimum length: 1.

#### Request body (required)

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

#### Responses

*   **404** `NotFoundException` - Indicates that the order with the given order number is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### GET Get notes from an order

`GET /orders/{order_no}/notes`

Operation ID: `Get notes from an order`. Tags: orders. Security: customers\_auth; oauth2\_application; client\_id.

Retrieves notes for an order.

This endpoint may return the following faults:

*   404 - OrderNotFoundException - Thrown if the order with the given order number is unknown.

#### Parameters

*   `order_no` (path, string, required) The id of the order from which you want to retrieve notes.  
    Minimum length: 1.

#### Responses

*   **404** `OrderNotFoundException` - Thrown if the order with the given order number is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `notes_result`.
    

### POST Add a note to an order

`POST /orders/{order_no}/notes`

Operation ID: `Add a note to an order`. Tags: orders. Security: customers\_auth; oauth2\_application; client\_id.

Adds a note to an existing order.

This endpoint may return the following faults:

*   404 - OrderNotFoundException - Thrown if the order with the given order number is unknown.

#### Parameters

*   `order_no` (path, string, required) The id of the order to be modified.  
    Minimum length: 1.

#### Request body (required)

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

#### Responses

*   **404** `OrderNotFoundException` - Thrown if the order with the given order number is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### DELETE Remove a note from an order

`DELETE /orders/{order_no}/notes/{note_id}`

Operation ID: `Remove a note from an order`. Tags: orders. Security: customers\_auth; oauth2\_application; client\_id.

Removes an order note.

This endpoint may return the following faults:

*   404 - NoteNotFoundException - Indicates that the order with the given order number is unknown.
*   404 - OrderNotFoundException - Indicates that the order with the given order number is unknown.

#### Parameters

*   `order_no` (path, string, required) the id of the order to be modified  
    Minimum length: 1.
*   `note_id` (path, string, required) the id of the note to be removed  
    Minimum length: 1.

#### Responses

*   **404** `NoteNotFoundException` - Indicates that the order with the given order number is unknown. or `OrderNotFoundException` - Indicates that the order with the given order number is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### POST Add payment instrument to order

`POST /orders/{order_no}/payment_instruments`

Operation ID: `Add payment instrument to order`. Tags: orders. Security: customers\_auth; oauth2\_application; client\_id.

Adds a payment instrument to an order. It is possible either to supply the full payment information or only a customer payment instrument id and amount. In case the customer payment instrument id was set all the other properties (except amount) are ignored and the payment data is resolved from the stored customer payment information. An attempt is made to authorize the order by passing it to the authorize or authorizeCreditCard hook.

Details:

*   The payment instrument is added with the provided details or the details from the customer payment instrument. The payment method must be applicable for the order see `GET /baskets/{basket_id}/payment_methods` , if the payment method is 'CREDIT\_CARD' `a payment_card` must be specified in the request.
    
*   Order authorization:
    
    To authorize the order one of two possible customization hooks is called and an `dw.order.OrderPaymentInstrument` is passed as an input argument.
    
    Which hook is called?
    
    *   If the request includes a `payment_card` or the `dw.order.OrderPaymentInstrument` contains a `creditCardType` the customization hook `dw.order.payment.authorizeCreditCard` is called. See `dw.order.hooks.PaymentHooks.authorizeCreditCard(order : Order, paymentDetails : OrderPaymentInstrument, cvn : String) : Status` .
        
    *   Otherwise `dw.order.payment.authorize` is called. See `dw.order.hooks.PaymentHooks.authorize(order : Order, paymentDetails : OrderPaymentInstrument) : Status` .
        
    
    What is the `dw.order.OrderPaymentInstrument` input argument passed to the hook?
    
    *   If the request contains a `customer_payment_instrument_id` the `dw.order.OrderPaymentInstrument` is copied from the customer payment instrument (An exception is thrown if none was found).
        
    *   Otherwise the data from the request document is passed ( `payment_card` or `payment_bank_account` etc. information).
        
    
    Note: the `amount` and the `security_code` (cvn) contained in the `payment_card` data will be propagated if available to `dw.order.payment.authorizeCreditCard` even if the `dw.order.OrderPaymentInstrument` is resolved from a customer payment instrument.
    
*   Customization hook `dw.ocapi.shop.order.afterPostPaymentInstrument` is called. The default implementation places the order if the order status is CREATED and the authorization amount equals or exceeds the order total. Placing the order (equivalent to calling `dw.order.OrderMgr.placeOrder(order : Order)` in the scripting API) results in the order being changed to status `NEW` and prepared for export.
    

This endpoint may return the following faults:

*   400 - InvalidOrderNumberException - Indicates that the given order number is invalid.
*   400 - InvalidPaymentMethodIdException - Indicates that the provided payment method is invalid or not applicable.
*   404 - OrderNotFoundException - Indicates that the order with the given order number is unknown.
*   404 - PaymentInstrumentNotFoundException - Indicates that a customer payment instrument could not be resolved based on the provided customer payment instrument id.

#### Parameters

*   `order_no` (path, string, required) the order number  
    Minimum length: 1.
*   `skip_authorization` (query, boolean)

#### Request body (required)

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

#### Responses

*   **400** `InvalidOrderNumberException` - Indicates that the given order number is invalid. or `InvalidPaymentMethodIdException` - Indicates that the provided payment method is invalid or not applicable.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `OrderNotFoundException` - Indicates that the order with the given order number is unknown. or `PaymentInstrumentNotFoundException` - Indicates that a customer payment instrument could not be resolved based on the provided customer payment instrument id.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### DELETE Removes a payment instrument of an order

`DELETE /orders/{order_no}/payment_instruments/{payment_instrument_id}`

Operation ID: `Removes a payment instrument of an order`. Tags: orders. Security: customers\_auth; oauth2\_application; client\_id.

Removes a payment instrument of an order.

This endpoint may return the following faults:

*   404 - OrderNotFoundException - Indicates that the order with the given order number is unknown.
*   404 - PaymentInstrumentNotFoundException - Indicates that the payment instrument with the given payment instrument number is unknown.

#### Parameters

*   `order_no` (path, string, required) the order number  
    Minimum length: 1.
*   `payment_instrument_id` (path, string, required) the id of the payment instrument to be updated  
    Minimum length: 1.

#### Responses

*   **404** `OrderNotFoundException` - Indicates that the order with the given order number is unknown. or `PaymentInstrumentNotFoundException` - Indicates that the payment instrument with the given payment instrument number is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### PATCH Updates payment instrument of order

`PATCH /orders/{order_no}/payment_instruments/{payment_instrument_id}`

Operation ID: `Updates payment instrument of order`. Tags: orders. Security: customers\_auth; oauth2\_application; client\_id.

Updates a payment instrument of an order and passes the order and updated payment instrument to the correct payment authorizeCreditcard or authorize hook.

Details:

*   The payment instrument is updated with the provided details. The payment method must be applicable for the order see `GET /baskets/{basket_id}/payment_methods` , if the payment method is 'CREDIT\_CARD' a `payment_card` must be specified in the request.
    
*   Order authorization:
    
    To authorize the order one of two possible customization hooks is called and an `dw.order.OrderPaymentInstrument` is passed as an input argument.
    
    Which hook is called?
    
    *   If the request includes a `payment_card` or the `dw.order.OrderPaymentInstrument` contains a `creditCardType` the customization hook `dw.order.payment.authorizeCreditCard` is called. See `dw.order.hooks.PaymentHooks.authorizeCreditCard(order : Order, paymentDetails : OrderPaymentInstrument, cvn : String) : Status` .
        
    *   Otherwise `dw.order.payment.authorize` is called. See `dw.order.hooks.PaymentHooks.authorize(order : Order, paymentDetails : OrderPaymentInstrument) : Status` .
        
    
    What is the `dw.order.OrderPaymentInstrument` input argument passed to the hook?
    
    *   If the request contains a `customer_payment_instrument_id` the `dw.order.OrderPaymentInstrument` is copied from the customer payment instrument (An exception is thrown if none was found).
        
    *   Otherwise the data from the request document is passed ( `payment_card` or `payment_bank_account` etc. information).
        
    
    Note: the `amount` and the `security_code` (cvn) contained in the `payment_card` data will be propagated if available to `dw.order.payment.authorizeCreditCard` even if the `dw.order.OrderPaymentInstrument` is resolved from a customer payment instrument.
    
*   Customization hook `dw.ocapi.shop.order.afterPatchPaymentInstrument` is called. The default implementation places the order if the order status is CREATED and the authorization amount equals or exceeds the order total. Placing the order (equivalent to calling `dw.order.OrderMgr.placeOrder(order : Order)` in the scripting API) results in the order being changed to status `NEW` and prepared for export.
    

This endpoint may return the following faults:

*   400 - InvalidPaymentMethodIdException - Indicates that the provided payment method is invalid or not applicable.
*   400 - PaymentInstrumentPermanentlyMaskedException - Indicates that the basket payment instrument with the given id already is permanently masked.
*   404 - OrderNotFoundException - Indicates that the order with the given order number is unknown.
*   404 - PaymentInstrumentNotFoundException - Indicates that the payment instrument with the given payment instrument number is unknown.

#### Parameters

*   `order_no` (path, string, required) the order number  
    Minimum length: 1.
*   `payment_instrument_id` (path, string, required) the id of the payment instrument to be updated  
    Minimum length: 1.
*   `skip_authorization` (query, boolean)

#### Request body (required)

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

#### Responses

*   **400** `InvalidPaymentMethodIdException` - Indicates that the provided payment method is invalid or not applicable. or `PaymentInstrumentPermanentlyMaskedException` - Indicates that the basket payment instrument with the given id already is permanently masked.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `OrderNotFoundException` - Indicates that the order with the given order number is unknown. or `PaymentInstrumentNotFoundException` - Indicates that the payment instrument with the given payment instrument number is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `order`.
    

### GET Get applicable payment methods for an order

`GET /orders/{order_no}/payment_methods`

Operation ID: `Get applicable payment methods for an order`. Tags: orders. Security: customers\_auth; oauth2\_application; client\_id.

Gets the applicable payment methods for an existing order considering the open payment amount only.

This endpoint may return the following faults:

*   400 - InvalidCustomerException - Indicates that the customer assigned to the order does not match the verified customer represented by the JWT, not relevant when using OAuth.
*   404 - OrderNotFoundException - Indicates that the order with the given order number is unknown.

#### Parameters

*   `order_no` (path, string, required) the order number  
    Minimum length: 1.

#### Responses

*   **400** `InvalidCustomerException` - Indicates that the customer assigned to the order does not match the verified customer represented by the JWT, not relevant when using OAuth.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **404** `OrderNotFoundException` - Indicates that the order with the given order number is unknown.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `payment_method_result`.
    

## Schemas

### 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"
}
```

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

### 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"
}
```

### notes\_result

A result of a note request.

Contains notes for an object - for example, for a basket.

*   `notes` (_array of note_) The notes for an object.

_Example_

```
{
  "notes": [
    {
      "subject": "Unhappy customer",
      "text": "The customer was not very happy due to a delay."
    },
    {
      "subject": "Happy customer",
      "text": "The customer is already happy!"
    }
  ]
}
```

### note

Document representing a note to an object.

*   `created_by` (_string_) The author of the note.
*   `creation_date` (_string (date-time)_) The creation date of the note.
*   `id` (_string_) The ID of the note.
*   `subject` (_string_) The note's subject.  
    Maximum length: 256.
*   `text` (_string_) The note's text.  
    Maximum length: 4000.

_Example_

```
{
  "subject": "this is an example subject",
  "text": "This is a note because the customer was not very happy."
}
```

### order\_payment\_instrument\_request

Document representing an order payment instrument request.

*   `amount` (_number (double)_) The payment transaction amount.
*   `bank_routing_number` (_string_) The bank routing number.  
    Maximum length: 256.
*   `create_customer_payment_instrument` (_boolean_) A flag indicating whether a related customer payment instrument should be created. The CustomerPaymentInstrument is only created when the OrderPaymentInstrument was authorized successfully.
*   `customer_payment_instrument_id` (_string_) The id of a customer payment instrument.
*   `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` (_order\_payment\_card\_request_) The payment card.
*   `payment_method_id` (_string_) The payment method id. Optional if a customer payment instrument id is specified.  
    Maximum length: 256.

_Example_

```
{
  "amount": 2,
  "payment_card": {
    "card_type": "Visa",
    "expiration_month": 2,
    "expiration_year": 2022,
    "holder": "Ed Smith",
    "number": "4111111111111111",
    "security_code": "112"
  },
  "payment_method_id": "CREDIT_CARD"
}
```

### payment\_method\_result

Result document of payment methods applicable for a basket.

*   `applicable_payment_methods` (_array of payment\_method_) The applicable payment methods.

_Example_

```
{
  "applicable_payment_methods": [
    {
      "id": "BANK_TRANSFER",
      "name": "Bank Transfer"
    },
    {
      "cards": [
        {
          "card_type": "Visa",
          "checksum_verification_enabled": true,
          "id": "CREDIT_CARD.Visa",
          "name": "Visa",
          "number_lengths": [
            "13",
            "16"
          ],
          "number_prefixes": [
            "4"
          ],
          "security_code_length": 3
        },
        {
          "card_type": "Master",
          "checksum_verification_enabled": true,
          "id": "CREDIT_CARD.Master",
          "name": "Mastercard",
          "number_lengths": [
            "16"
          ],
          "number_prefixes": [
            "2221-2720",
            "51-55"
          ],
          "security_code_length": 3
        },
        {
          "card_type": "Amex",
          "checksum_verification_enabled": true,
          "id": "CREDIT_CARD.Amex",
          "name": "American Express",
          "number_lengths": [
            "15"
          ],
          "number_prefixes": [
            "34",
            "37"
          ],
          "security_code_length": 4
        }
      ],
      "id": "CREDIT_CARD",
      "name": "Credit Card",
      "c_somestring": "PaymentMethod String Value"
    },
    {
      "description": "A conditional payment method on customer group 'Unregistered'.",
      "id": "OCAPI_Payment_Unregistered",
      "image": "https://example.com/on/demandware.static/Sites-SiteGenesis-Site/Sites/default/v1426675691129/office.jpg",
      "name": "OCAPI Payment (Unregistered)"
    },
    {
      "description": "A conditional payment method on country 'DE'.",
      "id": "OCAPI_Payment_DE",
      "image": "https://example.com/on/demandware.static/Sites-SiteGenesis-Site/Sites/default/v1426675691129/office.jpg",
      "name": "OCAPI Payment (DE)"
    },
    {
      "description": "A simple payment method without any conditions.",
      "id": "OCAPI_Payment_Simple",
      "image": "https://example.com/on/demandware.static/Sites-SiteGenesis-Site/Sites/default/v1426675691129/office.jpg",
      "name": "OCAPI Payment (Simple)"
    }
  ]
}
```

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

### cause

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

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

### order\_payment\_card\_request

Document representing an order 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.
*   `security_code` (_string_) The security code for the payment card.  
    Maximum length: 4.
*   `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\_method

Document representing a payment method.

*   `cards` (_array of payment\_card\_spec_) The sorted array of payment cards (included only when the system payment method is CREDIT\_CARD).
*   `description` (_string_) The localized description of the payment method or card.
*   `id` (_string_, required) The id of the payment method or card.  
    Maximum length: 256.
*   `image` (_string_) The URL to the image that represents the payment method or card.
*   `name` (_string_) The localized name of the payment method or card.
*   `payment_processor_id` (_string_) The payment processor ID.

_Example_

```
{
  "cards": [
    {
      "card_type": "Visa",
      "checksum_verification_enabled": true,
      "id": "CREDIT_CARD.Visa",
      "name": "Visa",
      "number_lengths": [
        "13",
        "16"
      ],
      "number_prefixes": [
        "4"
      ],
      "security_code_length": 3
    },
    {
      "card_type": "Master",
      "checksum_verification_enabled": true,
      "id": "CREDIT_CARD.Master",
      "name": "Mastercard",
      "number_lengths": [
        "16"
      ],
      "number_prefixes": [
        "2221-2720",
        "51-55"
      ],
      "security_code_length": 3
    },
    {
      "card_type": "Amex",
      "checksum_verification_enabled": true,
      "id": "CREDIT_CARD.Amex",
      "name": "American Express",
      "number_lengths": [
        "15"
      ],
      "number_prefixes": [
        "34",
        "37"
      ],
      "security_code_length": 4
    }
  ],
  "id": "CREDIT_CARD",
  "name": "Credit Card",
  "c_somestring": "PaymentMethod String Value"
}
```

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

### 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"
}
```

### 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"
}
```

### payment\_card\_spec

Document representing the specification for a payment card.

The information in the specification can be used to verify data entered by a customer before sending to the payment authorization. The configuration can be made in the payment methods section in Business Manager.

*   `card_type` (_string_) The type of the payment card.
*   `checksum_verification_enabled` (_boolean_)
    
    A flag indicating whether the card number is verified using the Luhn checksum algorithm.
    
    ```
         <code>false</code>
    ```
    
*   `description` (_string_) The localized description of the payment card.
*   `image` (_string_) The URL to the image that represents the payment card.
*   `name` (_string_) The localized name of the payment card.
*   `number_lengths` (_array of string_) The sorted list of number lengths (individual lengths as well as length ranges).
*   `number_prefixes` (_array of string_) The sorted list of number prefixes (individual prefixes as well as prefix ranges).
*   `security_code_length` (_integer (int32)_) The length of the security code for this card.

_Example_

```
{
  "card_type": "Visa",
  "checksum_verification_enabled": true,
  "id": "CREDIT_CARD.Visa",
  "name": "Visa",
  "number_lengths": [
    "13",
    "16"
  ],
  "number_prefixes": [
    "4"
  ],
  "security_code_length": 3
}
```

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