---
schema_version: "1"
id: 808da5d116c4879e6d0540ec4fc4d7c0e695eb577c4d8fea516ceaff27158f3f
title: Shopper Orders
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/commerce-api/references/generated-api-specs/shopper-orders.md
canonical_url: https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-orders
source_site: developer.salesforce.com
content_type: documentation
content_hash: 348de5d81795301fa9dc4a8762326ec2dbc0a7cb45bd03d0514e1b8b5d955c5a
products:
  - B2C Commerce API
  - Salesforce APIs
---
Shopper Orders

# Shopper Orders

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

## API Overview

The Shopper Orders API enables you to:

*   Create orders based on baskets prepared using the Shopper Baskets API.
*   Add a customer's payment instrument to an order.

You can choose to supply the full payment information or supply only a customer payment instrument ID and amount. If the customer payment instrument ID is set, all the other properties (except amount) are ignored and the payment data is resolved from the stored customer payment information.

**Note:** The API doesn’t allow the storage of credit card numbers. The endpoint provides the storage of masked credit card numbers only.

To update the payment status, use the Orders API.

Responses from this API are not cached because order data is transactional and unique to each shopper.

For additional guidance when working with baskets, see [Build Baskets and Place Orders](https://developer.salesforce.com/docs/commerce/commerce-api/guide/work-with-baskets-orders.html).

### Authentication & Authorization

The client requesting order information must have access to the Orders resource. The Shopper Orders API requires a shopper access token from the Shopper Login and API Access Service (SLAS).

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

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

### Customization

#### Custom Properties

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

#### Hooks

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

### Response Details

#### Personalization

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

#### Caching

Responses from this API are not cached. Order data is transactional and unique to each shopper.

#### Timeouts

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

#### Error Handling

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

### Use Cases

#### Create an Order from a Basket

Place an order by providing a basket ID. The basket must have a valid shipping address, shipping method, billing address, and payment instrument.

```sh
curl "https://{shortCode}.api.commercecloud.salesforce.com/checkout/shopper-orders/v1/organizations/{organizationId}/orders?siteId=RefArch" \
  -X POST \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{ "basketId": "{basketId}" }'
```

### Related APIs

*   [Orders (Admin)](https://developer.salesforce.com/docs/commerce/commerce-api/references/orders?meta=Summary) — Update order status, payment status, and shipping addresses.
*   [Shopper Baskets](https://developer.salesforce.com/docs/commerce/commerce-api/references/shopper-baskets-v2?meta=Summary) — Build and manage baskets before placing an order.

**Version:** 1.22.4

## Servers

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

## Security

*   `ShopperToken` (oauth2) ShopperToken authentication follows the authorization code grant flow, as defined by the OAuth 2.1 standard. Depending on the type of OAuth client (public or private), this authorization flow has further requirements. For a detailed description of the authorization flow, see the [SLAS overview](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=shopper-login:Summary). A shopper token allows you to access the Shopper API endpoints of both OCAPI and the B2C Commerce API. These endpoints can be used to build headless storefronts and other applications. The `ShopperToken` security scheme is a parent of other security schemes, such as `ShopperTokenTsob`. A Shopper API endpoint can require a specific child scheme (`ShopperTokenTsob`, for example) that cannot be accessed with a regular shopper token.
    *   OAuth flow clientCredentials (tokenUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/token)
    *   Scope sfcc.shopper-baskets-orders: Scope granting read-access to shopper basket or orders endpoints
    *   Scope sfcc.shopper-baskets-orders.rw: Scope granting read and write access to shopper basket or orders endpoints
    *   OAuth flow authorizationCode (authorizationUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/authorize, tokenUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/token, refreshUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
    *   Scope sfcc.shopper-baskets-orders: Scope granting read-access to shopper basket or orders endpoints
    *   Scope sfcc.shopper-baskets-orders.rw: Scope granting read and write access to shopper basket or orders endpoints
*   `ShopperTokenTsob` (oauth2) `ShopperTokenTsob` (Tsob = trusted system on behalf) is a child of the `ShopperToken` security scheme and extends the functionality of `ShopperToken` for specific use cases. A token of type `ShopperTokenTsob` allows you to access Shopper API endpoints, including OCAPI and Salesforce Commerce API for headless applications. Besides endpoints that require this specific subtype, all other endpoints secured by the `ShopperToken` parent scheme can be accessed with a `ShopperTokenTsob`. To learn how to get a `ShopperTokenTsob` token, see [getTrustedSystemAccessToken](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=shopper-login:getTrustedSystemAccessToken).
    *   OAuth flow clientCredentials (tokenUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/trusted-system/token)
    *   Scope sfcc.shopper-baskets-orders: Scope granting read-access to shopper basket or orders endpoints
    *   Scope sfcc.shopper-baskets-orders.rw: Scope granting read and write access to shopper basket or orders endpoints
*   `AmOAuth2` (oauth2) AccountManager OAuth 2.0 bearer token Authentication.
    *   OAuth flow clientCredentials (tokenUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
    *   Scope sfcc.shopper-baskets-orders: Scope granting read-access to shopper basket or orders endpoints
    *   Scope sfcc.shopper-baskets-orders.rw: Scope granting read and write access to shopper basket or orders endpoints
    *   OAuth flow authorizationCode (authorizationUrl: https://account.demandware.com/dwsso/oauth2/authorize, tokenUrl: https://account.demandware.com/dwsso/oauth2/access\_token)
*   `ShopperClientContextToken` (oauth2) ShopperClientContextToken is a separate security scheme used to track and validate client context information. It is valid for Guest shoppers flows only using SLAS private clients. For registered shoppers, use existing ShopperToken flows. For authentication details, see the [SLAS overview](https://developer.salesforce.com/docs/commerce/commerce-api/references?meta=shopper-login:Summary). This token allows access to Shopper API endpoints for guest shoppers only.
    *   OAuth flow clientCredentials (tokenUrl: https://{shortCode}.api.commercecloud.salesforce.com/shopper/auth/v1/organizations/{organizationId}/oauth2/token?hint=client\_context)
    *   Scope sfcc.shopper-baskets-orders: Scope granting read-access to shopper basket or orders endpoints
    *   Scope sfcc.shopper-baskets-orders.rw: Scope granting read and write access to shopper basket or orders endpoints

## Operations

### POST Submits an order for a basket.

`POST /organizations/{organizationId}/orders`

Operation ID: `createOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Submits an order based on a prepared basket. The only considered value from the request body is basketId.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body

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

_Example: OrderPost_

```
{
  "basketId": "a10ff320829cb0eef93ca5310a"
}
```

#### Responses

*   **200** Success, the response body contains the submitted order.
    
    Media type: `application/json`. Schema: `Order`.
    
    _Example: Order_
    
    ```
    {
      "adjustedMerchandizeTotalTax": 30,
      "adjustedShippingTotalTax": 0.8,
      "billingAddress": {
        "address1": "104 Presidential Way",
        "city": "Woburn",
        "countryCode": "US",
        "firstName": "Stephanie",
        "fullName": "Stephanie Miller",
        "id": "5f695b6f4bb63cb686483d65a0",
        "lastName": "Miller",
        "postalCode": "01801",
        "stateCode": "MA"
      },
      "channelType": "storefront",
      "confirmationStatus": "not_confirmed",
      "couponItems": [
        {
          "code": "5ties",
          "couponItemId": "d3f7ae47e5897a6b5d2fd541f0",
          "statusCode": "applied",
          "valid": true
        }
      ],
      "createdBy": "Customer",
      "creationDate": "2019-10-22T12:17:28.341Z",
      "currency": "USD",
      "customerInfo": {
        "customerId": "beQeANXJNsd0xcINsB6cSrobQa",
        "customerName": "Stephanie Miller",
        "email": "shopper@salesforce-test.com"
      },
      "customerName": "Stephanie Miller",
      "exportStatus": "not_exported",
      "groupedTaxItems": [
        {
          "taxRate": 0.05,
          "taxValue": 30.8
        }
      ],
      "guest": true,
      "giftCertificateItems": [
        {
          "amount": 1,
          "giftCertificateItemId": "540db3ffe58bfb04ab673757d7",
          "recipientEmail": "miller@salesforce-test.com",
          "shipmentId": "me"
        }
      ],
      "lastModified": "2019-10-22T12:17:28.376Z",
      "merchandizeTotalTax": 30,
      "orderNo": "00000410",
      "orderPriceAdjustments": [
        {
          "appliedDiscount": {
            "amount": 10,
            "type": "amount"
          },
          "reasonCode": "customer service",
          "createdBy": "support",
          "creationDate": "2019-10-22T12:17:28.347Z",
          "custom": true,
          "lastModified": "2019-10-22T12:17:28.349Z",
          "manual": true,
          "price": -10,
          "priceAdjustmentId": "63b9eb9b4a92bd3e5c6ee804c2",
          "promotionId": "5ties"
        }
      ],
      "orderToken": "7gJDIFlnho_mXrxfxVB9Neic3J7szzR9glvgU5Ath-I",
      "orderTotal": 586.76,
      "orderViewCode": "YGXrGbZWlr29tIsGnYgR5o_8OxBMXWigevx1WD0X1Hc",
      "paymentInstruments": [
        {
          "amount": 20,
          "paymentInstrumentId": "ca47e0da3d49b067b630db624a",
          "paymentMethodId": "BML"
        },
        {
          "amount": 566.76,
          "paymentCard": {
            "cardType": "Visa",
            "creditCardExpired": false
          },
          "paymentInstrumentId": "6b970a04ca8a468a64b9936764",
          "paymentMethodId": "CREDIT_CARD"
        }
      ],
      "paymentStatus": "not_paid",
      "productItems": [
        {
          "adjustedTax": 30,
          "basePrice": 199.99,
          "bonusProductLineItem": false,
          "gift": false,
          "itemId": "d9516eecc64bd90b0022714d26",
          "itemText": "Green Umbrella - Sustained Edition",
          "optionItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "bonusProductLineItem": false,
              "gift": false,
              "itemId": "8991e8d7adf0f46ffbc584e175",
              "itemText": "We will plant a tree for your order.",
              "optionId": "plantATree",
              "optionValueId": "000",
              "price": 0,
              "priceAfterItemDiscount": 0,
              "priceAfterOrderDiscount": 0,
              "productId": "000",
              "productName": "Plant a tree.",
              "quantity": 3,
              "shipmentId": "me",
              "tax": 0,
              "taxBasis": 0,
              "taxClassId": "standard",
              "taxRate": 0.05
            }
          ],
          "price": 599.99,
          "priceAfterItemDiscount": 599.99,
          "priceAfterOrderDiscount": 589.99,
          "productId": "green-umbrella",
          "productName": "Green Umbrella - Sustained Edition",
          "quantity": 3,
          "shipmentId": "me",
          "tax": 30,
          "taxBasis": 599.97,
          "taxClassId": "standard",
          "taxRate": 0.05
        }
      ],
      "productSubTotal": 599.97,
      "productTotal": 599.97,
      "shipments": [
        {
          "adjustedMerchandizeTotalTax": 37,
          "adjustedShippingTotalTax": 0.5,
          "deliveryWindow": {
            "startAt": "2026-05-04T14:00:00Z",
            "endAt": "2026-05-07T22:00:00Z"
          },
          "gift": false,
          "merchandizeTotalTax": 30,
          "orderCutoffAt": "2026-04-27T14:00:00Z",
          "productSubTotal": 599.97,
          "productTotal": 599.97,
          "shipmentId": "me",
          "shipmentTotal": 646.76,
          "shippingAddress": {
            "address1": "4162  Turkey Pen Road",
            "city": "New York",
            "countryCode": "US",
            "firstName": "Agustin",
            "fullName": "Agustin Estes",
            "id": "d5d95acf5381dc6e273b4336a7",
            "lastName": "Estes",
            "postalCode": "10016",
            "stateCode": "NY"
          },
          "shippingMethod": {
            "description": "Order received within 7-10 business days",
            "id": "001",
            "name": "Ground",
            "price": 15.99,
            "deliveryWindow": {
              "startAt": "2026-05-04T14:00:00Z",
              "endAt": "2026-05-07T22:00:00Z"
            },
            "orderCutoffAt": "2026-04-27T14:00:00Z"
          },
          "shippingStatus": "not_shipped",
          "shippingTotal": 15.99,
          "shippingTotalTax": 0.8,
          "taxTotal": 30.8
        }
      ],
      "shippingItems": [
        {
          "adjustedTax": 0.8,
          "basePrice": 15.99,
          "itemId": "768abee75aa8015239a9696c7e",
          "itemText": "Shipping",
          "price": 15.99,
          "priceAfterItemDiscount": 15.99,
          "shipmentId": "me",
          "tax": 0.8,
          "taxBasis": 15.99,
          "taxClassId": "standard",
          "taxRate": 0.05
        }
      ],
      "shippingStatus": "not_shipped",
      "shippingTotal": 15.99,
      "shippingTotalTax": 0.8,
      "status": "created",
      "taxation": "net",
      "taxTotal": 30.8
    }
    ```
    
*   **400**
    
    Possible reasons:
    
    *   a failure during the creation of a gift certificate for a gift certificate item.
    *   the basket ID in the request body is null or empty.
    *   an invalid product item.
    *   an option with the specified option ID is unknown.
    *   an option with the specified option value ID is unknown.
    *   a product item is not available.
    *   the customer assigned to the basket does not match the verified customer represented by the JWT token.
    *   the basket contains flashes (validation errors that prevent order placement).
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: BadRequest_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/bad-request",
      "title": "Bad Request",
      "detail": "Decoding of the property with path '$.failedExample.[1].intProperty' failed because the expected type is 'Integer|Decimal' but the actual type was 'String'."
    }
    ```
    
*   **404** The basket with the given basket ID is unknown.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: BasketNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/basket-not-found",
      "title": "Basket Not Found",
      "detail": "No basket with ID '123' could be found."
    }
    ```
    

### GET Retrieve Order Management (OMS) configuration data needed to render cancel and return experiences.

`GET /organizations/{organizationId}/orders/oms-meta-data`

Operation ID: `getOmsMetaData`. Security: ShopperToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Retrieves configuration data from Order Management (OMS) required by the storefront to render cancel and return experiences. The response contains the reason codes configured in OMS for cancelling an order and for returning order items. Each reason code carries a `default` flag. When the caller omits a reason, the cancel and return endpoints (`cancelOmsOrder`, `returnOmsOrder`) apply the reason marked as `default` for that flow.

#### Parameters

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

#### Responses

*   **200** Success, the response body contains the OMS meta data.
    
    Media type: `application/json`. Schema: `OmsMetaData`.
    
    _Example: OmsMetaData_
    
    ```
    {
      "cancelReasonCodes": [
        {
          "reason": "Not specified",
          "default": true
        },
        {
          "reason": "Defect",
          "default": false
        },
        {
          "reason": "Wrong item",
          "default": false
        }
      ],
      "returnReasonCodes": [
        {
          "reason": "Not specified",
          "default": true
        },
        {
          "reason": "Defect",
          "default": false
        },
        {
          "reason": "Does not fit",
          "default": false
        }
      ]
    }
    ```
    
*   **409** Order Management (OMS) is not active for this site.
    
    Media type: `application/problem+json`. Schema: `OmsNotActiveErrorResponse`.
    
    _Example: OmsNotActiveErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/oms-not-active",
      "detail": "Order Management (OMS) is not active for this site.",
      "title": "Oms Not Active"
    }
    ```
    

#### Extension points

*   `sfcc.checkout.shopper-orders.v1.orders.oms-meta-data.modifyGETResponse` (modifyResponse) Called to modify the OMS meta data returned in the response.

### GET Retrieve order information.

`GET /organizations/{organizationId}/orders/{orderNo}`

Operation ID: `getOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Gets information for an order.

#### Parameters

*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `expand` (query, array of string, style: form, explode: false) When you select 'oms' expand, data is loaded from Order Management (OMS), if available. When OMS data is available, the expand parameter has the following behavior: "expand=oms": order and related order entities (product & shipping items, delivery groups and price adjustments) are returned. "expand=oms\_shipments": order and fulfillment (shipment) data is returned. "expand=oms,oms\_shipments": order, related order entities and fulfillment (shipment) data are returned. If your instance is not integrated with OMS or the order data is not available, the `expand=oms` command is disregarded.  
    Items: Allowed values: `oms`, `oms_shipments`. Example: `oms`.
    
    _Example_
    
    ```
    oms,oms_shipments
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success, the response body contains the order.
    
    Media type: `application/json`. Schema: `Order`.
    
    _Example Order: same as POST /organizations/{organizationId}/orders 200 response._
    
*   **404** The order with the given order number is unknown.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: BasketNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/basket-not-found",
      "title": "Basket Not Found",
      "detail": "No basket with ID '123' could be found."
    }
    ```
    

### POST Retrieve order information using a combination of non-token identifying factors.

`POST /organizations/{organizationId}/orders/{orderNo}/lookup`

Operation ID: `guestOrderLookup`. Security: ShopperToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Retrieve order details using non-token identifiers or an authenticated shopper session.

The endpoint distinguishes between two levels of access: - Full access: Granted using shopper authentication, an OrderViewCode, or a time-limited access code. The OrderViewCode and access code are both passed in the `orderViewCode` request-body field; the server distinguishes them by format. Returns the complete order graph. - Partial access: Granted using a billing PostalCode paired with email or phone information. Filters sensitive data and Personally Identifiable Information (PII).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `expand` (query, array of string, style: form, explode: false) When you select 'oms' expand, data is loaded from Order Management (OMS), if available. When OMS data is available, the expand parameter has the following behavior: "expand=oms": order and related order entities (product & shipping items, delivery groups and price adjustments) are returned. "expand=oms\_shipments": order and fulfillment (shipment) data is returned. "expand=oms,oms\_shipments": order, related order entities and fulfillment (shipment) data are returned. If your instance is not integrated with OMS or the order data is not available, the `expand=oms` command is disregarded.  
    Items: Allowed values: `oms`, `oms_shipments`. Example: `oms`.
    
    _Example_
    
    ```
    oms,oms_shipments
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body

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

_Example: OrderLookUp_

```
{
  "email": "no-reply@salesforce.com",
  "orderViewCode": "YGXrGbZWlr29tIsGnYgR5o_8OxBMXWigevx1WD0X1Hc"
}
```

_Example: OrderLookUpWithAccessCode_

```
{
  "orderViewCode": "847291"
}
```

#### Responses

*   **200** Success, the response returns the order, though sensitive details may be filtered based on access level.
    
    Media type: `application/json`. Schema: `Order`.
    
    _Example Order: same as POST /organizations/{organizationId}/orders 200 response._
    
    _Example: OrderPartialAccess_
    
    ```
    {
      "adjustedMerchandizeTotalTax": 30,
      "adjustedShippingTotalTax": 0.8,
      "billingAddress": {
        "postalCode": "01801"
      },
      "channelType": "storefront",
      "currency": "USD",
      "groupedTaxItems": [
        {
          "taxRate": 0.05,
          "taxValue": 30.8
        }
      ],
      "guest": true,
      "lastModified": "2019-10-22T12:17:28.376Z",
      "merchandizeTotalTax": 30,
      "orderNo": "00000410",
      "orderPriceAdjustments": [
        {
          "appliedDiscount": {
            "amount": 10,
            "type": "amount"
          },
          "reasonCode": "customer service",
          "creationDate": "2019-10-22T12:17:28.347Z",
          "custom": true,
          "lastModified": "2019-10-22T12:17:28.349Z",
          "manual": true,
          "price": -10,
          "priceAdjustmentId": "63b9eb9b4a92bd3e5c6ee804c2",
          "promotionId": "5ties"
        }
      ],
      "orderTotal": 586.76,
      "productItems": [
        {
          "adjustedTax": 30,
          "basePrice": 199.99,
          "bonusProductLineItem": false,
          "gift": false,
          "itemId": "d9516eecc64bd90b0022714d26",
          "itemText": "Green Umbrella - Sustained Edition",
          "optionItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "bonusProductLineItem": false,
              "gift": false,
              "itemId": "8991e8d7adf0f46ffbc584e175",
              "itemText": "We will plant a tree for your order.",
              "optionId": "plantATree",
              "optionValueId": "000",
              "price": 0,
              "priceAfterItemDiscount": 0,
              "priceAfterOrderDiscount": 0,
              "productId": "000",
              "productName": "Plant a tree.",
              "quantity": 3,
              "shipmentId": "me",
              "tax": 0,
              "taxBasis": 0,
              "taxClassId": "standard",
              "taxRate": 0.05
            }
          ],
          "price": 599.99,
          "priceAfterItemDiscount": 599.99,
          "priceAfterOrderDiscount": 589.99,
          "productId": "green-umbrella",
          "productName": "Green Umbrella - Sustained Edition",
          "quantity": 3,
          "shipmentId": "me",
          "tax": 30,
          "taxBasis": 599.97,
          "taxClassId": "standard",
          "taxRate": 0.05
        }
      ],
      "productSubTotal": 599.97,
      "productTotal": 599.97,
      "shipments": [
        {
          "adjustedMerchandizeTotalTax": 37,
          "adjustedShippingTotalTax": 0.5,
          "gift": false,
          "merchandizeTotalTax": 30,
          "productSubTotal": 599.97,
          "productTotal": 599.97,
          "shipmentId": "me",
          "shipmentTotal": 646.76,
          "shippingMethod": {
            "description": "Order received within 7-10 business days.",
            "id": "001",
            "name": "Ground",
            "price": 15.99
          },
          "shippingTotal": 15.99,
          "shippingTotalTax": 0.8,
          "taxTotal": 30.8
        }
      ],
      "shippingItems": [
        {
          "adjustedTax": 0.8,
          "basePrice": 15.99,
          "itemId": "768abee75aa8015239a9696c7e",
          "itemText": "Shipping",
          "price": 15.99,
          "priceAfterItemDiscount": 15.99,
          "shipmentId": "me",
          "tax": 0.8,
          "taxBasis": 15.99,
          "taxClassId": "standard",
          "taxRate": 0.05
        }
      ],
      "shippingTotal": 15.99,
      "shippingTotalTax": 0.8,
      "status": "created",
      "taxation": "net",
      "taxTotal": 30.8
    }
    ```
    
*   **400**
    
    Possible reasons:
    
    *   The combination of identifying information is not sufficient for any access level.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: InsufficientIdentifyingInformation_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/insufficient-identifying-information",
      "title": "Insufficient Identifying Information",
      "detail": "Insufficient identifying information provided to retrieve the order."
    }
    ```
    
*   **404**
    
    Order was not found. Possible reasons:
    
    *   the order with the given order number is unknown.
    *   the combination of identifying information you provided, such as email or postal code, does not match the order record.
    *   the provided access code is invalid or has expired.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    

### POST Fail an Order.

`POST /organizations/{organizationId}/orders/{orderNo}/actions/fail`

Operation ID: `failOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Fails an unplaced order and optionally reopens the basket when indicated. Creates a HistoryEntry in the failed Order with provided reasonCode.

See also: Find more info on fail order behavior here: `https://salesforcecommercecloud.github.io/b2c-dev-doc/docs/current/scriptapi/html/index.html?target=class_dw_order_OrderMgr.html#dw_order_OrderMgr_failOrder_Order_Boolean_DetailAnchor`

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `reopenBasket` (query, boolean) Set to true to reopen basket from the order. A basket can only be reopened if no other basket for the customer exists at the moment of the call to fail Order, since a customer is limited to 1 storefront basket at a time.  
    Default: `false`. Example: `false`.
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body

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

_Example: FailOrder_

```
{
  "reasonCode": "payment_confirm_failure"
}
```

#### Responses

*   **201** Order failed successfully. No content returned.
    
    Headers:
    
    *   `Location` (string) The location for accessing the reopened basket if one exists.
*   **204** Order failed successfully. No content returned.
*   **400**
    
    Possible reasons:
    
    *   Invalid request parameters.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example BadRequest: same as POST /organizations/{organizationId}/orders 400 response._
    
*   **404** The order with the given order number is unknown for the shopper.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    
*   **409** The order is in invalid status.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: InvalidStateTransition_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-status-transition",
      "title": "Order Status Transition",
      "detail": "The order status change from 'Completed' to 'Failed' for order with number '00000335' isn't supported."
    }
    ```
    

### POST Cancel an order that is integrated with Order Management (OMS).

`POST /organizations/{organizationId}/orders/{orderNo}/actions/oms-cancel-order`

Operation ID: `cancelOmsOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Cancels an order that is integrated with Order Management (OMS). The cancellation always applies to the entire order; partial cancellations are not supported.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: OmsCancelOrder_

```
{
  "reason": "Wrong item"
}
```

_Example: OmsCancelOrderWithAccessCode_

```
{
  "reason": "Wrong item",
  "orderAccessCode": "847291"
}
```

#### Responses

*   **200** Success, the response body contains the updated order retrieved from Order Management (OMS).
    
    Media type: `application/json`. Schema: `Order`.
    
    _Example Order: same as POST /organizations/{organizationId}/orders 200 response._
    
*   **400**
    
    The cancel request is invalid. Possible reasons:
    
    *   The supplied reason code is not configured in Order Management (OMS).
    
    Media type: `application/problem+json`. Schema: `InvalidReasonCodeErrorResponse`.
    
    _Example: InvalidReasonCodeErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-reason-code",
      "detail": "The reason 'Damaged in transit' is not configured in Order Management (OMS).",
      "title": "Invalid Reason Code"
    }
    ```
    
*   **404**
    
    Order was not found. Possible reasons:
    
    *   the order with the given order number is unknown.
    *   the provided access code is invalid or has expired.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    
*   **409**
    
    The order cannot be cancelled. Possible reasons:
    
    *   The order is no longer in a state that permits cancellation.
    *   Order Management (OMS) rejected the cancel request after ECOM accepted the input.
    *   Order Management (OMS) is not active for this site.
    
    Media type: `application/problem+json`. Schema: `OrderCancelFailedErrorResponse | OmsNotActiveErrorResponse`.
    
    One of: `OrderCancelFailedErrorResponse`, `OmsNotActiveErrorResponse`.
    
    _Example: OrderCancelFailedErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-cancel-failed",
      "detail": "Order '00000335' cannot be cancelled.",
      "title": "Order Cancel Failed"
    }
    ```
    
    _Example: OmsNotActiveErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/oms-not-active",
      "detail": "Order Management (OMS) is not active for this site.",
      "title": "Oms Not Active"
    }
    ```
    

#### Extension points

*   `sfcc.checkout.shopper-orders.v1.orders.orderNo.actions.oms-cancel-order.modifyPOSTResponse` (modifyResponse) Called to modify the order returned in the response after cancellation.

### POST Initiate the return of one or more items of an order that is integrated with Order Management (OMS).

`POST /organizations/{organizationId}/orders/{orderNo}/actions/oms-return-order`

Operation ID: `returnOmsOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Initiates the return of one or more items of an order that is integrated with Order Management (OMS).

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: OmsReturnOrder_

```
{
  "productItems": [
    {
      "itemId": "10uVF0000003W0BYAU",
      "quantity": 1,
      "reason": "Does not fit"
    },
    {
      "itemId": "11uVF0000045W0BYAU",
      "quantity": 1,
      "reason": "Defect"
    }
  ]
}
```

_Example: OmsReturnOrderWithAccessCode_

```
{
  "productItems": [
    {
      "itemId": "10uVF0000003W0BYAU",
      "quantity": 1,
      "reason": "Does not fit"
    }
  ],
  "orderAccessCode": "847291"
}
```

#### Responses

*   **200** Success, the response body contains the updated order retrieved from Order Management (OMS).
    
    Media type: `application/json`. Schema: `Order`.
    
    _Example Order: same as POST /organizations/{organizationId}/orders 200 response._
    
*   **400**
    
    The return request is invalid. Possible reasons:
    
    *   The supplied reason code is not configured in Order Management (OMS).
    *   One or more of the supplied `productItems[].itemId` values do not match any product item of the order.
    *   The requested return quantity exceeds the quantity available to return for one or more items.
    
    Media type: `application/problem+json`. Schema: `InvalidReasonCodeErrorResponse | UnknownProductItemIdsErrorResponse | ReturnQuantityExceededErrorResponse`.
    
    One of: `InvalidReasonCodeErrorResponse`, `UnknownProductItemIdsErrorResponse`, `ReturnQuantityExceededErrorResponse`.
    
    _Example InvalidReasonCodeErrorResponseExample: same as POST /organizations/{organizationId}/orders/{orderNo}/actions/oms-cancel-order 400 response._
    
    _Example: UnknownProductItemIdsErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unknown-product-item-ids",
      "detail": "One or more product item IDs in the request are not part of order '00000335'.",
      "title": "Unknown Product Item Ids"
    }
    ```
    
    _Example: ReturnQuantityExceededErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/return-quantity-exceeded",
      "detail": "The return request for order '00000335' exceeds the quantity available to return on one or more items.",
      "title": "Return Quantity Exceeded"
    }
    ```
    
*   **404**
    
    Order was not found. Possible reasons:
    
    *   the order with the given order number is unknown.
    *   the provided access code is invalid or has expired.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    
*   **409**
    
    The order cannot be returned. Possible reasons:
    
    *   The order is no longer in a state that permits return of the requested items.
    *   Order Management (OMS) rejected the return after ECOM accepted the input.
    *   Order Management (OMS) is not active for this site.
    
    Media type: `application/problem+json`. Schema: `OrderReturnFailedErrorResponse | OmsNotActiveErrorResponse`.
    
    One of: `OrderReturnFailedErrorResponse`, `OmsNotActiveErrorResponse`.
    
    _Example: OrderReturnFailedErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-return-failed",
      "detail": "Order '00000335' cannot be returned.",
      "title": "Order Return Failed"
    }
    ```
    
    _Example: OmsNotActiveErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/oms-not-active",
      "detail": "Order Management (OMS) is not active for this site.",
      "title": "Oms Not Active"
    }
    ```
    

#### Extension points

*   `sfcc.checkout.shopper-orders.v1.orders.orderNo.actions.oms-return-order.modifyPOSTResponse` (modifyResponse) Called to modify the order returned in the response after the return was initiated.

### POST Request a time-limited access code for a guest order.

`POST /organizations/{organizationId}/orders/{orderNo}/actions/request-access-code`

Operation ID: `requestOrderAccessCode`. Security: ShopperToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Generates a time-limited access code and delivers it via email to the address associated with the order. The shopper can then use this code with the lookup, cancel, and return endpoints to access the order without the original session.

The generated code is valid for 15 minutes. Too many incorrect access attempts invalidate the code early, but the 15-minute cooldown remains — a new code cannot be generated until the original validity period has elapsed, even if the code was invalidated early.

The endpoint always returns 202 — whether the order and email combination is valid, and whether a new code was generated. This uniform response prevents enumeration of valid orders and avoids revealing cooldown state to callers.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `expand` (query, array of string, style: form, explode: false) When you specify `expand=oms`, the integrated Order Management System (OMS) is included during the email validation. If your instance isn't integrated with OMS or the order data isn't available, B2C Commerce ignores the `expand=oms` parameter.  
    Items: Allowed values: `oms`. Example: `oms`.
    
    _Example_
    
    ```
    oms
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body (required)

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

_Example: RequestOrderAccessCode_

```
{
  "email": "shopper@example.com"
}
```

#### Responses

*   **202** Accepted. Always returned, regardless of whether the order and email combination is valid, to prevent enumeration of valid orders. If the combination is valid, a new access code is generated and delivered via email.
*   **400**
    
    The access code request is invalid. Possible reasons:
    
    *   The email field is missing or empty.
    
    Media type: `application/problem+json`. Schema: `InvalidAccessCodeRequestErrorResponse`.
    
    _Example: InvalidAccessCodeRequestErrorResponseExample_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-access-code-request",
      "detail": "The access code request is invalid.",
      "title": "Invalid Access Code Request"
    }
    ```
    

#### Extension points

*   `sfcc.app.order.sendOrderAccessCode` (service-logic) Invoked to send the access code via email when the order number and email combination is valid.

### POST Add a payment instrument to an order.

`POST /organizations/{organizationId}/orders/{orderNo}/payment-instruments`

Operation ID: `createPaymentInstrumentForOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Adds a payment instrument to an order.

Details:

The payment instrument is added with the provided details. The payment method must be applicable for the order see GET /baskets/{basketId}/payment-methods, if the payment method is 'CREDIT\_CARD' a paymentCard must be specified in the request.

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body

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

_Example: PaymentInstrumentPost_

```
{
  "amount": 700,
  "paymentCard": {
    "expirationYear": 1990,
    "expirationMonth": 7,
    "validFromMonth": 8,
    "validFromYear": 2007,
    "issueNumber": "i117",
    "maskedNumber": "************4567",
    "holder": "Miller",
    "cardType": "Visa"
  },
  "paymentMethodId": "CREDIT_CARD"
}
```

#### Responses

*   **200** Success, the response body contains the order with the added payment instrument.
    
    Media type: `application/json`. Schema: `Order`.
    
    _Example: Order_
    
    ```
    {
      "adjustedMerchandizeTotalTax": 30,
      "adjustedShippingTotalTax": 0.8,
      "billingAddress": {
        "address1": "104 Presidential Way",
        "city": "Woburn",
        "countryCode": "US",
        "firstName": "Stephanie",
        "fullName": "Stephanie Miller",
        "id": "5f695b6f4bb63cb686483d65a0",
        "lastName": "Miller",
        "postalCode": "01801",
        "stateCode": "MA"
      },
      "channelType": "storefront",
      "confirmationStatus": "not_confirmed",
      "couponItems": [
        {
          "code": "5ties",
          "couponItemId": "d3f7ae47e5897a6b5d2fd541f0",
          "statusCode": "applied",
          "valid": true
        }
      ],
      "createdBy": "Customer",
      "creationDate": "2019-10-22T12:17:28.341Z",
      "currency": "USD",
      "customerInfo": {
        "customerId": "beQeANXJNsd0xcINsB6cSrobQa",
        "customerName": "Stephanie Miller",
        "email": "shopper@salesforce-test.com"
      },
      "customerName": "Stephanie Miller",
      "exportStatus": "not_exported",
      "groupedTaxItems": [
        {
          "taxRate": 0.05,
          "taxValue": 30.8
        }
      ],
      "guest": true,
      "giftCertificateItems": [
        {
          "amount": 1,
          "giftCertificateItemId": "540db3ffe58bfb04ab673757d7",
          "recipientEmail": "miller@salesforce-test.com",
          "shipmentId": "me"
        }
      ],
      "lastModified": "2019-10-22T12:17:28.376Z",
      "merchandizeTotalTax": 30,
      "orderNo": "00000410",
      "orderPriceAdjustments": [
        {
          "appliedDiscount": {
            "amount": 10,
            "type": "amount"
          },
          "reasonCode": "customer service",
          "createdBy": "support",
          "creationDate": "2019-10-22T12:17:28.347Z",
          "custom": true,
          "lastModified": "2019-10-22T12:17:28.349Z",
          "manual": true,
          "price": -10,
          "priceAdjustmentId": "63b9eb9b4a92bd3e5c6ee804c2",
          "promotionId": "5ties"
        }
      ],
      "orderToken": "7gJDIFlnho_mXrxfxVB9Neic3J7szzR9glvgU5Ath-I",
      "orderTotal": 586.76,
      "orderViewCode": "YGXrGbZWlr29tIsGnYgR5o_8OxBMXWigevx1WD0X1Hc",
      "paymentInstruments": [
        {
          "amount": 20,
          "paymentInstrumentId": "ca47e0da3d49b067b630db624a",
          "paymentMethodId": "BML"
        },
        {
          "amount": 566.76,
          "paymentCard": {
            "cardType": "Visa",
            "creditCardExpired": false
          },
          "paymentInstrumentId": "6b970a04ca8a468a64b9936764",
          "paymentMethodId": "CREDIT_CARD"
        },
        {
          "amount": 700,
          "paymentCard": {
            "expirationYear": 1990,
            "expirationMonth": 7,
            "validFromMonth": 8,
            "validFromYear": 2007,
            "issueNumber": "i117",
            "maskedNumber": "************4567",
            "holder": "Miller",
            "cardType": "Visa"
          },
          "paymentInstrumentId": "9f21f0b51f206fbde2ff5789e5",
          "paymentMethodId": "CREDIT_CARD"
        }
      ],
      "paymentStatus": "not_paid",
      "productItems": [
        {
          "adjustedTax": 30,
          "basePrice": 199.99,
          "bonusProductLineItem": false,
          "gift": false,
          "itemId": "d9516eecc64bd90b0022714d26",
          "itemText": "Green Umbrella - Sustained Edition",
          "optionItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "bonusProductLineItem": false,
              "gift": false,
              "itemId": "8991e8d7adf0f46ffbc584e175",
              "itemText": "We will plant a tree for your order.",
              "optionId": "plantATree",
              "optionValueId": "000",
              "price": 0,
              "priceAfterItemDiscount": 0,
              "priceAfterOrderDiscount": 0,
              "productId": "000",
              "productName": "Plant a tree.",
              "quantity": 3,
              "shipmentId": "me",
              "tax": 0,
              "taxBasis": 0,
              "taxClassId": "standard",
              "taxRate": 0.05
            }
          ],
          "price": 599.99,
          "priceAfterItemDiscount": 599.99,
          "priceAfterOrderDiscount": 589.99,
          "productId": "green-umbrella",
          "productName": "Green Umbrella - Sustained Edition",
          "quantity": 3,
          "shipmentId": "me",
          "tax": 30,
          "taxBasis": 599.97,
          "taxClassId": "standard",
          "taxRate": 0.05
        }
      ],
      "productSubTotal": 599.97,
      "productTotal": 599.97,
      "shipments": [
        {
          "adjustedMerchandizeTotalTax": 37,
          "adjustedShippingTotalTax": 0.5,
          "deliveryWindow": {
            "startAt": "2026-05-04T14:00:00Z",
            "endAt": "2026-05-07T22:00:00Z"
          },
          "gift": false,
          "merchandizeTotalTax": 30,
          "orderCutoffAt": "2026-04-27T14:00:00Z",
          "productSubTotal": 599.97,
          "productTotal": 599.97,
          "shipmentId": "me",
          "shipmentTotal": 646.76,
          "shippingAddress": {
            "address1": "4162  Turkey Pen Road",
            "city": "New York",
            "countryCode": "US",
            "firstName": "Agustin",
            "fullName": "Agustin Estes",
            "id": "d5d95acf5381dc6e273b4336a7",
            "lastName": "Estes",
            "postalCode": "10016",
            "stateCode": "NY"
          },
          "shippingMethod": {
            "description": "Order received within 7-10 business days",
            "id": "001",
            "name": "Ground",
            "price": 15.99,
            "deliveryWindow": {
              "startAt": "2026-05-04T14:00:00Z",
              "endAt": "2026-05-07T22:00:00Z"
            },
            "orderCutoffAt": "2026-04-27T14:00:00Z"
          },
          "shippingStatus": "not_shipped",
          "shippingTotal": 15.99,
          "shippingTotalTax": 0.8,
          "taxTotal": 30.8
        }
      ],
      "shippingItems": [
        {
          "adjustedTax": 0.8,
          "basePrice": 15.99,
          "itemId": "768abee75aa8015239a9696c7e",
          "itemText": "Shipping",
          "price": 15.99,
          "priceAfterItemDiscount": 15.99,
          "shipmentId": "me",
          "tax": 0.8,
          "taxBasis": 15.99,
          "taxClassId": "standard",
          "taxRate": 0.05
        }
      ],
      "shippingStatus": "not_shipped",
      "shippingTotal": 15.99,
      "shippingTotalTax": 0.8,
      "status": "new",
      "taxation": "net",
      "taxTotal": 30.8
    }
    ```
    
*   **400**
    
    Possible reasons:
    
    *   the given order number is invalid.
    *   the provided payment method is invalid or not applicable.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example BadRequest: same as POST /organizations/{organizationId}/orders 400 response._
    
*   **404** The order with the given order number is unknown.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    

### DELETE Remove a payment instrument from an order.

`DELETE /organizations/{organizationId}/orders/{orderNo}/payment-instruments/{paymentInstrumentId}`

Operation ID: `removePaymentInstrumentFromOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Removes a payment instrument of an order.

#### Parameters

*   `paymentInstrumentId` (path, PaymentInstrumentId, required)
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success, the response body contains the order without the deleted payment instrument.
    
    Media type: `application/json`. Schema: `Order`.
    
*   **404**
    
    Possible reasons:
    
    *   The order with the given order number is unknown.
    *   The payment instrument with the given order payment instrument ID is unknown.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    

### PATCH Update payment instrument details for an order.

`PATCH /organizations/{organizationId}/orders/{orderNo}/payment-instruments/{paymentInstrumentId}`

Operation ID: `updatePaymentInstrumentForOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

Updates a payment instrument of an order.

Details:

The payment instrument is updated with the provided details. The payment method must be applicable for the order see GET /baskets/{basketId}/payment-methods, if the payment method is 'CREDIT\_CARD' a paymentCard must be specified in the request.

#### Parameters

*   `paymentInstrumentId` (path, PaymentInstrumentId, required)
*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Request body

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

_Example: PaymentInstrumentPatch_

```
{
  "amount": 2,
  "paymentMethodId": "CREDIT_CARD",
  "paymentCard": {
    "cardType": "Visa",
    "maskedNumber": "****-****-****-4567"
  }
}
```

_Example: PaymentInstrumentPatchWithSalesforcePayments_

```
{
  "amount": 700,
  "paymentMethodId": "Salesforce Payments",
  "paymentReferenceRequest": {
    "paymentMethodType": "card",
    "zoneId": "Amer-Zone",
    "gateway": "stripe",
    "gatewayProperties": {
      "stripe": {
        "setupFutureUsage": "on_session"
      }
    }
  }
}
```

#### Responses

*   **200** Success, the response body contains the order with the updated payment instrument. When Salesforce Payments is enabled, the paymentReference object will be included in the paymentInstruments.
    
    Media type: `application/json`. Schema: `Order`.
    
    _Example: Order_
    
    ```
    {
      "adjustedMerchandizeTotalTax": 30,
      "adjustedShippingTotalTax": 0.8,
      "billingAddress": {
        "address1": "104 Presidential Way",
        "city": "Woburn",
        "countryCode": "US",
        "firstName": "Stephanie",
        "fullName": "Stephanie Miller",
        "id": "5f695b6f4bb63cb686483d65a0",
        "lastName": "Miller",
        "postalCode": "01801",
        "stateCode": "MA"
      },
      "channelType": "storefront",
      "confirmationStatus": "not_confirmed",
      "couponItems": [
        {
          "code": "5ties",
          "couponItemId": "d3f7ae47e5897a6b5d2fd541f0",
          "statusCode": "applied",
          "valid": true
        }
      ],
      "createdBy": "Customer",
      "creationDate": "2019-10-22T12:17:28.341Z",
      "currency": "USD",
      "customerInfo": {
        "customerId": "beQeANXJNsd0xcINsB6cSrobQa",
        "customerName": "Stephanie Miller",
        "email": "shopper@salesforce-test.com"
      },
      "customerName": "Stephanie Miller",
      "exportStatus": "not_exported",
      "groupedTaxItems": [
        {
          "taxRate": 0.05,
          "taxValue": 30.8
        }
      ],
      "guest": true,
      "giftCertificateItems": [
        {
          "amount": 1,
          "giftCertificateItemId": "540db3ffe58bfb04ab673757d7",
          "recipientEmail": "miller@salesforce-test.com",
          "shipmentId": "me"
        }
      ],
      "lastModified": "2019-10-22T12:17:28.376Z",
      "merchandizeTotalTax": 30,
      "orderNo": "00000410",
      "orderPriceAdjustments": [
        {
          "appliedDiscount": {
            "amount": 10,
            "type": "amount"
          },
          "reasonCode": "customer service",
          "createdBy": "support",
          "creationDate": "2019-10-22T12:17:28.347Z",
          "custom": true,
          "lastModified": "2019-10-22T12:17:28.349Z",
          "manual": true,
          "price": -10,
          "priceAdjustmentId": "63b9eb9b4a92bd3e5c6ee804c2",
          "promotionId": "5ties"
        }
      ],
      "orderToken": "7gJDIFlnho_mXrxfxVB9Neic3J7szzR9glvgU5Ath-I",
      "orderTotal": 586.76,
      "orderViewCode": "YGXrGbZWlr29tIsGnYgR5o_8OxBMXWigevx1WD0X1Hc",
      "paymentInstruments": [
        {
          "amount": 20,
          "paymentInstrumentId": "ca47e0da3d49b067b630db624a",
          "paymentMethodId": "BML"
        },
        {
          "amount": 566.76,
          "paymentCard": {
            "cardType": "Visa",
            "creditCardExpired": false
          },
          "paymentInstrumentId": "6b970a04ca8a468a64b9936764",
          "paymentMethodId": "CREDIT_CARD"
        },
        {
          "amount": 2,
          "paymentCard": {
            "expirationYear": 1990,
            "expirationMonth": 7,
            "validFromMonth": 8,
            "validFromYear": 2007,
            "issueNumber": "i117",
            "maskedNumber": "******4567",
            "holder": "Miller",
            "cardType": "Visa"
          },
          "paymentInstrumentId": "9f21f0b51f206fbde2ff5789e5",
          "paymentMethodId": "CREDIT_CARD"
        }
      ],
      "paymentStatus": "not_paid",
      "productItems": [
        {
          "adjustedTax": 30,
          "basePrice": 199.99,
          "bonusProductLineItem": false,
          "gift": false,
          "itemId": "d9516eecc64bd90b0022714d26",
          "itemText": "Green Umbrella - Sustained Edition",
          "optionItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "bonusProductLineItem": false,
              "gift": false,
              "itemId": "8991e8d7adf0f46ffbc584e175",
              "itemText": "We will plant a tree for your order.",
              "optionId": "plantATree",
              "optionValueId": "000",
              "price": 0,
              "priceAfterItemDiscount": 0,
              "priceAfterOrderDiscount": 0,
              "productId": "000",
              "productName": "Plant a tree.",
              "quantity": 3,
              "shipmentId": "me",
              "tax": 0,
              "taxBasis": 0,
              "taxClassId": "standard",
              "taxRate": 0.05
            }
          ],
          "price": 599.99,
          "priceAfterItemDiscount": 599.99,
          "priceAfterOrderDiscount": 589.99,
          "productId": "green-umbrella",
          "productName": "Green Umbrella - Sustained Edition",
          "quantity": 3,
          "shipmentId": "me",
          "tax": 30,
          "taxBasis": 599.97,
          "taxClassId": "standard",
          "taxRate": 0.05
        }
      ],
      "productSubTotal": 599.97,
      "productTotal": 599.97,
      "shipments": [
        {
          "adjustedMerchandizeTotalTax": 37,
          "adjustedShippingTotalTax": 0.5,
          "deliveryWindow": {
            "startAt": "2026-05-04T14:00:00Z",
            "endAt": "2026-05-07T22:00:00Z"
          },
          "gift": false,
          "merchandizeTotalTax": 30,
          "orderCutoffAt": "2026-04-27T14:00:00Z",
          "productSubTotal": 599.97,
          "productTotal": 599.97,
          "shipmentId": "me",
          "shipmentTotal": 646.76,
          "shippingAddress": {
            "address1": "4162  Turkey Pen Road",
            "city": "New York",
            "countryCode": "US",
            "firstName": "Agustin",
            "fullName": "Agustin Estes",
            "id": "d5d95acf5381dc6e273b4336a7",
            "lastName": "Estes",
            "postalCode": "10016",
            "stateCode": "NY"
          },
          "shippingMethod": {
            "description": "Order received within 7-10 business days",
            "id": "001",
            "name": "Ground",
            "price": 15.99,
            "deliveryWindow": {
              "startAt": "2026-05-04T14:00:00Z",
              "endAt": "2026-05-07T22:00:00Z"
            },
            "orderCutoffAt": "2026-04-27T14:00:00Z"
          },
          "shippingStatus": "not_shipped",
          "shippingTotal": 15.99,
          "shippingTotalTax": 0.8,
          "taxTotal": 30.8
        }
      ],
      "shippingItems": [
        {
          "adjustedTax": 0.8,
          "basePrice": 15.99,
          "itemId": "768abee75aa8015239a9696c7e",
          "itemText": "Shipping",
          "price": 15.99,
          "priceAfterItemDiscount": 15.99,
          "shipmentId": "me",
          "tax": 0.8,
          "taxBasis": 15.99,
          "taxClassId": "standard",
          "taxRate": 0.05
        }
      ],
      "shippingStatus": "not_shipped",
      "shippingTotal": 15.99,
      "shippingTotalTax": 0.8,
      "status": "new",
      "taxation": "net",
      "taxTotal": 30.8
    }
    ```
    
    _Example: OrderWhenSalesforcePaymentsEnabled_
    
    ```
    {
      "adjustedMerchandizeTotalTax": 30,
      "adjustedShippingTotalTax": 0.8,
      "billingAddress": {
        "address1": "104 Presidential Way",
        "city": "Woburn",
        "countryCode": "US",
        "firstName": "Stephanie",
        "fullName": "Stephanie Miller",
        "id": "5f695b6f4bb63cb686483d65a0",
        "lastName": "Miller",
        "postalCode": "01801",
        "stateCode": "MA"
      },
      "channelType": "storefront",
      "confirmationStatus": "not_confirmed",
      "couponItems": [
        {
          "code": "5ties",
          "couponItemId": "d3f7ae47e5897a6b5d2fd541f0",
          "statusCode": "applied",
          "valid": true
        }
      ],
      "createdBy": "Customer",
      "creationDate": "2019-10-22T12:17:28.341Z",
      "currency": "USD",
      "customerInfo": {
        "customerId": "beQeANXJNsd0xcINsB6cSrobQa",
        "customerName": "Stephanie Miller",
        "email": "shopper@salesforce-test.com"
      },
      "customerName": "Stephanie Miller",
      "exportStatus": "not_exported",
      "groupedTaxItems": [
        {
          "taxRate": 0.05,
          "taxValue": 30.8
        }
      ],
      "guest": true,
      "giftCertificateItems": [
        {
          "amount": 1,
          "giftCertificateItemId": "540db3ffe58bfb04ab673757d7",
          "recipientEmail": "miller@salesforce-test.com",
          "shipmentId": "me"
        }
      ],
      "lastModified": "2019-10-22T12:17:28.376Z",
      "merchandizeTotalTax": 30,
      "orderNo": "00000410",
      "orderPriceAdjustments": [
        {
          "appliedDiscount": {
            "amount": 10,
            "type": "amount"
          },
          "reasonCode": "customer service",
          "createdBy": "support",
          "creationDate": "2019-10-22T12:17:28.347Z",
          "custom": true,
          "lastModified": "2019-10-22T12:17:28.349Z",
          "manual": true,
          "price": -10,
          "priceAdjustmentId": "63b9eb9b4a92bd3e5c6ee804c2",
          "promotionId": "5ties"
        }
      ],
      "orderToken": "7gJDIFlnho_mXrxfxVB9Neic3J7szzR9glvgU5Ath-I",
      "orderTotal": 586.76,
      "orderViewCode": "YGXrGbZWlr29tIsGnYgR5o_8OxBMXWigevx1WD0X1Hc",
      "paymentInstruments": [
        {
          "amount": 20,
          "paymentInstrumentId": "ca47e0da3d49b067b630db624a",
          "paymentMethodId": "PAYPAL",
          "paymentReference": {
            "paymentReferenceId": "PAY-1AB23456CD789012EF34GHIJ"
          }
        },
        {
          "amount": 566.76,
          "paymentCard": {
            "cardType": "Visa",
            "creditCardExpired": false
          },
          "paymentInstrumentId": "6b970a04ca8a468a64b9936764",
          "paymentMethodId": "CREDIT_CARD",
          "paymentReference": {
            "paymentReferenceId": "8815749596351791C"
          }
        },
        {
          "amount": 2,
          "paymentCard": {
            "expirationYear": 1990,
            "expirationMonth": 7,
            "validFromMonth": 8,
            "validFromYear": 2007,
            "issueNumber": "i117",
            "maskedNumber": "******4567",
            "holder": "Miller",
            "cardType": "Visa"
          },
          "paymentInstrumentId": "9f21f0b51f206fbde2ff5789e5",
          "paymentMethodId": "CREDIT_CARD",
          "paymentReference": {
            "paymentReferenceId": "pi_1J4K5L2eZvKYlo2CyZ8K5L6M",
            "gateway": "stripe",
            "gatewayProperties": {
              "stripe": {
                "setupFutureUsage": "on_session",
                "clientSecret": "pi_1J4K5L2eZvKYlo2CyZ8K5L6M_secret_abcdef123456"
              }
            }
          }
        }
      ],
      "paymentStatus": "not_paid",
      "productItems": [
        {
          "adjustedTax": 30,
          "basePrice": 199.99,
          "bonusProductLineItem": false,
          "gift": false,
          "itemId": "d9516eecc64bd90b0022714d26",
          "itemText": "Green Umbrella - Sustained Edition",
          "optionItems": [
            {
              "adjustedTax": 0,
              "basePrice": 0,
              "bonusProductLineItem": false,
              "gift": false,
              "itemId": "8991e8d7adf0f46ffbc584e175",
              "itemText": "Monogramming: Letter \"A\"",
              "optionId": "textMonogramLetters",
              "optionValueId": "A",
              "price": 0,
              "priceAfterItemDiscount": 0,
              "priceAfterOrderDiscount": 0,
              "productId": "701643632930",
              "productName": "Flat Front Pant",
              "shipmentId": "me",
              "tax": 0,
              "taxBasis": 0,
              "taxRate": 0.05
            }
          ],
          "priceAfterItemDiscount": 199.99,
          "priceAfterOrderDiscount": 199.99,
          "productId": "701643632930",
          "productName": "Green Umbrella - Sustained Edition",
          "quantity": 1,
          "shipmentId": "me",
          "tax": 30,
          "taxBasis": 199.99,
          "taxRate": 0.05
        }
      ],
      "productSubTotal": 199.99,
      "productTotal": 199.99,
      "shipments": [
        {
          "adjustedMerchandizeTotalTax": 30,
          "adjustedShippingTotalTax": 0.8,
          "gift": false,
          "merchandizeTotalTax": 199.99,
          "productSubTotal": 199.99,
          "productTotal": 199.99,
          "shipmentId": "me",
          "shipmentNo": "00000001",
          "shipmentTotal": 386.75,
          "shippingAddress": {
            "address1": "104 Presidential Way",
            "city": "Woburn",
            "countryCode": "US",
            "firstName": "Stephanie",
            "fullName": "Stephanie Miller",
            "id": "5f695b6f4bb63cb686483d65a0",
            "lastName": "Miller",
            "postalCode": "01801",
            "stateCode": "MA"
          },
          "shippingMethod": {
            "description": "Order within the next 3 hours to get it tomorrow morning",
            "id": "EXPRESS",
            "name": "Express",
            "price": 15.99,
            "shippingPromotions": [
              {
                "calloutMsg": "Free shipping amount has been reduced!",
                "promotionId": "freeshipping_level1",
                "promotionName": "Free shipping Level 1"
              }
            ]
          },
          "shippingStatus": "not_shipped",
          "shippingTotal": 15.99,
          "shippingTotalTax": 0.8,
          "taxTotal": 30.8
        }
      ],
      "shippingItems": [
        {
          "adjustedTax": 0.8,
          "basePrice": 15.99,
          "itemId": "768abee75aa8015239a9696c7e",
          "itemText": "Shipping",
          "priceAfterItemDiscount": 15.99,
          "shipmentId": "me",
          "tax": 0.8,
          "taxBasis": 15.99,
          "taxRate": 0.05
        }
      ],
      "shippingStatus": "not_shipped",
      "shippingTotal": 15.99,
      "shippingTotalTax": 0.8,
      "status": "new",
      "taxation": "net",
      "taxTotal": 30.8
    }
    ```
    
*   **400**
    
    Possible reasons:
    
    *   the basket payment instrument with the given ID already is permanently masked.
    *   the provided payment method is invalid or not applicable.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example BadRequest: same as POST /organizations/{organizationId}/orders 400 response._
    
*   **404**
    
    Possible reasons:
    
    *   The order with the given order number is unknown.
    *   The payment instrument with the given payment instrument ID is unknown.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    

### GET Retrieve payment instrument details for an order.

`GET /organizations/{organizationId}/orders/{orderNo}/payment-methods`

Operation ID: `getPaymentMethodsForOrder`. Security: ShopperToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard); ShopperClientContextToken (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw, sfcc.shopper-standard).

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

#### Parameters

*   `organizationId` (path, OrganizationId, required) An identifier for the Salesforce Commerce Cloud organization the request is being made by. It consists of a prefix 'f\_ecom\_' followed by a 4-character [realm identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#realm-id) and a 3-character [instance type identifier](https://developer.salesforce.com/docs/commerce/commerce-api/guide/base-url.html#instance-id).
    
    _Example_
    
    ```
    f_ecom_zzxy_prd
    ```
    
*   `orderNo` (path, OrderNo, required) The order number of the order to be modified.
*   `siteId` (query, SiteId, required) The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites.
    
    _Example: SiteId_
    
    ```
    RefArch
    ```
    
*   `locale` (query, LocaleCode) A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.
    
    _Example: LanguageCountry_
    
    ```
    en-US
    ```
    
    _Example: CountryCode_
    
    ```
    US
    ```
    
*   `sfdc_usid` (header, string (uuid)) A unique shopper identifier (USID) for tracking client context. Used with endpoints secured with ShopperClientContextToken. This header is required for all endpoints secured with ShopperClientContextToken.  
    Example: `550e8400-e29b-41d4-a716-446655440000`.
*   `sfdc_dw_dnt` (header, string) Do Not Track header for privacy preferences. Used with endpoints secured with ShopperClientContextToken. If this header is not passed with endpoints secured with ShopperClientContextToken default value of 0 will be used.  
    Allowed values: `0`, `1`. Example: `1`.
*   `personalized` (query, string)
    
    Controls whether personalization is applied to the response. Set to `none` to opt out of personalized response handling so the response is safe to cache at the CDN layer.
    
    When set to `none`, the server skips applying personalization to the response.
    
    Setting `personalized=none` is necessary but not sufficient for CDN caching: a response is only cached when the endpoint is also cacheable in the [server-side web-tier cache](https://developer.salesforce.com/docs/commerce/commerce-api/guide/server-side-web-tier-caching.html), subject to its TTLs and invalidation. A call that is uncacheable in the web tier is not cached at the CDN either. See [CDN caching](https://developer.salesforce.com/docs/commerce/commerce-api/guide/cdn-caching.html).
    
      
    Allowed values: `none`. Example: `none`.
*   `sfdc_shopper_context` (header, string) Shopper context information (for example clientIP, sourceCode, and customQualifiers) passed in from a trusted backend application.

#### Responses

*   **200** Success, the response body contains the applicable payment methods for the order.
    
    Media type: `application/json`. Schema: `PaymentMethodResult`.
    
    _Example: PaymentMethodResult_
    
    ```
    {
      "applicablePaymentMethods": [
        {
          "id": "GIFT_CERTIFICATE",
          "name": "Gift Certificate",
          "paymentProcessorId": "BASIC_GIFT_CERTIFICATE"
        },
        {
          "cards": [
            {
              "cardType": "Visa",
              "checksumVerificationEnabled": true,
              "name": "Visa",
              "numberLengths": [
                "13",
                "16"
              ],
              "numberPrefixes": [
                "4"
              ],
              "securityCodeLength": 3
            },
            {
              "cardType": "Amex",
              "checksumVerificationEnabled": true,
              "name": "American Express",
              "numberLengths": [
                "15"
              ],
              "numberPrefixes": [
                "34",
                "37"
              ],
              "securityCodeLength": 4
            },
            {
              "cardType": "Master Card",
              "checksumVerificationEnabled": true,
              "name": "MasterCard",
              "numberLengths": [
                "16"
              ],
              "numberPrefixes": [
                "51-55"
              ],
              "securityCodeLength": 3
            },
            {
              "cardType": "Discover",
              "checksumVerificationEnabled": true,
              "name": "Discover",
              "numberLengths": [
                "16"
              ],
              "numberPrefixes": [
                "6011",
                "622126-622925",
                "644-649",
                "65"
              ],
              "securityCodeLength": 3
            }
          ],
          "id": "CREDIT_CARD",
          "name": "Credit Card",
          "paymentProcessorId": "BASIC_CREDIT"
        },
        {
          "id": "PayPal",
          "name": "Pay Pal",
          "paymentProcessorId": "PAYPAL_EXPRESS"
        },
        {
          "id": "BML",
          "name": "Bill Me Later",
          "paymentProcessorId": "CYBERSOURCE_BML"
        }
      ]
    }
    ```
    
*   **400** The customer assigned to the order does not match the verified customer represented by the JSON Web Token (JWT).
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example BadRequest: same as POST /organizations/{organizationId}/orders 400 response._
    
*   **404** The order with the given order number is unknown.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    

### GET Retrieve external taxation data for an order.

`GET /organizations/{organizationId}/orders/{orderNo}/taxes`

Operation ID: `getTaxesFromOrder`. Security: AmOAuth2 (sfcc.shopper-baskets-orders, sfcc.shopper-baskets-orders.rw).

This method gives you the external taxation data of the order transferred from the basket during order creation. This endpoint can be called only if external taxation was used. See POST /baskets for more information.

#### Parameters

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

#### Responses

*   **200** Success, the response body contains the external taxation from all items from the referenced order.
    
    Media type: `application/json`. Schema: `Taxes`.
    
    _Example: Taxes_
    
    ```
    {
      "taxes": {
        "3d4e28425ce0b3a65b0ac4e163": {
          "taxItems": [
            {
              "id": "DE_7",
              "rate": 0.07,
              "value": 13.99
            },
            {
              "id": "DE_19",
              "rate": 0.19
            }
          ]
        },
        "ff9452ed11fcf5c80f9143a8f1": {
          "taxItems": [
            {
              "id": "US_1",
              "rate": 0.01
            },
            {
              "id": "US_5",
              "rate": 0.05
            }
          ]
        }
      }
    }
    ```
    
*   **404** The order with the given order number is unknown.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: OrderNotFound_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/order-not-found",
      "title": "Order Not Found",
      "detail": "No order with number '123' was found."
    }
    ```
    
*   **409**
    
    Possible Reasons:
    
    *   The tax mode of the referenced basket is not set to EXTERNAL.
    
    Media type: `application/problem+json`. Schema: `ErrorResponse`.
    
    _Example: InvalidTaxMode_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/invalid-tax-mode",
      "title": "Invalid Tax Mode",
      "detail": "Basket with ID 'a10ff320829cb0eef93ca5310a' has invalid tax mode."
    }
    ```
    
    _Example: UnsupportedRequest_
    
    ```
    {
      "type": "https://api.commercecloud.salesforce.com/documentation/error/v1/errors/unsupported-request-if-scapi-hooks-enabled",
      "title": "Unsupported Request If SCAPI Hooks Enabled",
      "detail": "You can't call this endpoint because Salesforce Commerce API hook execution is enabled."
    }
    ```
    

## Schemas

### OrganizationId

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

Type: `string`.

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

### SiteId

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

Type: `string`.

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

### LocaleCode

A descriptor for a geographical region by both a language and country code. By combining these two, regional differences in a language can be addressed, such as with the request header parameter `Accept-Language` following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766). This can also just refer to a language code, also RFC 2616/1766 compliant, as a default if there is no specific match for a country. Finally, can also be used to define default behavior if there is no locale specified.

One of: `LanguageCountry`, `LanguageCode`, `DefaultFallback`.

### Basket

Document representing a basket.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### Order

Document representing an order.

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

### ErrorResponse

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

### OmsMetaData

Configuration data from Order Management (OMS) that the storefront requires to render cancel and return experiences.

*   `cancelReasonCodes` (_array of OmsReasonCode_, required) The reason codes available for cancelling an order. The server applies the reason marked with `default` when no reason is supplied on the cancel request.
*   `returnReasonCodes` (_array of OmsReasonCode_, required) The reason codes available for returning order items. The server applies the reason marked with `default` when no reason is supplied on a returned item.

### OmsNotActiveErrorResponse

Indicates that an OMS-dependent endpoint was called for a site that does not have OMS enabled.

Includes all fields of `ErrorResponse`.

### OrderNo

The order number

Type: `string`.

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

### OrderLookupRequest

Document representing an order lookup request.

*   `email` (_string_) The customer's email address associated with order to be looked up.  
    Example: `no-reply@salesforce.com`.
*   `orderViewCode` (_string_) The order view code associated with the order to be looked up.
*   `postalCode` (_string_) The billing address postal code of the order to be looked up.  
    Maximum length: 256. Example: `05408`.
*   `phone` (_string_) The phone number of the order to be looked up.  
    Maximum length: 256. Example: `6175555555`.

### FailOrderRequest

Document representing a fail order request.

*   `reasonCode` (_string_) The reason code for failing the order.  
    Allowed values: `payment_confirm_failure`, `payment_capture_failure`, `payment_auth_failure`. Example: `payment_confirm_failure`.

### OmsCancelOrderRequest

Document representing a request to cancel an order that is integrated with Order Management (OMS). The cancellation always applies to the entire order; partial cancellations are not supported.

*   `reason` (_string_) The reason for cancelling the order. The value must match one of the `cancelReasonCodes` configured in OMS and returned by the `getOmsMetaData` endpoint. When omitted, the default reason code configured in OMS is applied by the server.  
    Maximum length: 256. Example: `Not specified`.
*   `orderAccessCode` (_OrderAccessCode_)

### InvalidReasonCodeErrorResponse

Indicates that the supplied reason code does not match any reason configured in OMS.

Includes all fields of `ErrorResponse`.

*   `reason` (_string_) The reason value that the request supplied.  
    Maximum length: 256. Example: `Damaged in transit`.

### OrderCancelFailedErrorResponse

Returned when the order cannot be cancelled. This covers both the case where the order's state no longer permits cancellation and the case where Order Management (OMS) rejected the cancel request after ECOM accepted the input.

Includes all fields of `ErrorResponse`.

*   `orderNo` (_string_) The order number from the request path.  
    Maximum length: 256. Example: `00000335`.

### OmsReturnOrderRequest

Document representing a request to initiate the return of one or more items of an order that is integrated with Order Management (OMS).

*   `productItems` (_array of OmsReturnProductItem_, required) The product items of the order for which to initiate a return.  
    Minimum items: 1.
*   `orderAccessCode` (_OrderAccessCode_)

### UnknownProductItemIdsErrorResponse

Indicates that one or more `productItems[].itemId` values supplied in the return request do not match any product item of the order.

Includes all fields of `ErrorResponse`.

*   `orderNo` (_string_) The order number from the request path.  
    Maximum length: 256. Example: `00000335`.
*   `unknownItemIds` (_array of string_) The `productItems[].itemId` values from the request that do not match any product item of the order.  
    Items: Maximum length: 256. Example: `10uVF0000003W0BYAU`.
    
    _Example_
    
    ```
    [
      "10uVF0000003W0BYAU",
      "11uVF0000045W0BYAU"
    ]
    ```
    

### ReturnQuantityExceededErrorResponse

Returned when one or more `productItems` entries in the return request specify a quantity that exceeds the quantity available to return for that item. Issue a GET on the order to obtain the current available quantities and resubmit with valid values.

Includes all fields of `ErrorResponse`.

*   `orderNo` (_string_) The order number from the request path.  
    Maximum length: 256. Example: `00000335`.
*   `itemIds` (_array of string_) The `productItems[].itemId` values from the request whose requested quantity exceeded the quantity available to return.  
    Items: Maximum length: 256. Example: `10uVF0000003W0BYAU`.
    
    _Example_
    
    ```
    [
      "10uVF0000003W0BYAU",
      "11uVF0000045W0BYAU"
    ]
    ```
    

### OrderReturnFailedErrorResponse

Returned when the order cannot be returned. This covers both the case where the order's state no longer permits return of the requested items and the case where Order Management (OMS) rejected the return request after ECOM accepted the input. Obvious input problems are reported as 400 Bad Request before the request reaches OMS.

Includes all fields of `ErrorResponse`.

*   `orderNo` (_string_) The order number from the request path.  
    Maximum length: 256. Example: `00000335`.

### RequestOrderAccessCodeRequest

Represents a request to generate a time-limited access code for a guest order.

*   `email` (_string_, required) The email address of the shopper. Must match the email address associated with the order for a code to be generated and sent.  
    Maximum length: 256. Example: `shopper@example.com`.

### InvalidAccessCodeRequestErrorResponse

Indicates that the request to generate an access code is invalid, for example, because the email field is missing or empty.

Includes all fields of `ErrorResponse`.

### OrderPaymentInstrumentRequest

Document representing an order payment instrument request.

*   `amount` (_number (double)_) The payment transaction amount.  
    Example: `130.88`.
*   `bankRoutingNumber` (_string_) The bank routing number.  
    Maximum length: 256. Example: `12030000`.
*   `giftCertificateCode` (_string_) The gift certificate code.  
    Maximum length: 256.
*   `paymentCard` (_object_) The payment card.
    
    Includes all fields of `OrderPaymentCardRequest`.
    
*   `giftCardRequest` (_object_) The gift card request.
    
    Includes all fields of `GiftCardRequest`.
    
*   `paymentMethodId` (_string_) The payment method ID.  
    Maximum length: 256. Example: `CREDIT_CARD`.
*   `paymentReferenceRequest` (_object_) Payment reference information for various payment service providers, only when Salesforce Payments is enabled.
    
    Includes all fields of `PaymentReferenceRequest`.
    

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### PaymentInstrumentId

The payment instrument ID

Type: `string`.

Example: `ba248424e3eee797f062162f8b`.

### PaymentMethodResult

Result document of payment methods applicable for a basket.

*   `applicablePaymentMethods` (_array of PaymentMethod_) The applicable payment methods. It is read only.

### Taxes

Document representing the tax rates and (optionally) amounts for all items in a basket.

*   `taxes` (_object_, required) Map containing the TaxItems for the line item ids: Map<LineItemId, TaxItems \[\]>
    
    Additional properties: `TaxItems`.
    

### LanguageCountry

A concatenated version of the standard Language and Country codes, combined with a hyphen '`-`'.

Type: `string`.

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

### LanguageCode

A two letter lowercase language code conforming to the [ISO 639-1](https://www.iso.org/iso-639-language-codes.html) standard. Additionally, this may be used to submit requests with the header parameter `Accept-Language`, following [RFC 2616](https://tools.ietf.org/html/rfc2616) & [RFC 1766](https://tools.ietf.org/html/rfc1766).

Type: `string`.

Pattern: ^\[a-z\]\[a-z\]$. Example: `en`.

### DefaultFallback

A specialized value indicating the system default values for locales.

Type: `string`.

Default: `default`. Pattern: ^default$. Example: `default`.

### OrderAddress

Document representing an order address.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### BonusDiscountLineItem

Document representing a bonus discount line item.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### CouponItem

Document representing a coupon item.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### CurrencyCode

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

Type: `string`.

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

### CustomerInfo

The customer information for guest or logged-in customers.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### GiftCertificateItem

A gift certificate item.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### GroupedTaxItem

Document representing the grouped tax item.

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

### PriceAdjustment

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

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### OrderPaymentInstrument

Document representing an order payment instrument.

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

### BasketProductItem

Document representing a basket product item.

Includes all fields of `ProductItem`.

### Shipment

Document representing a shipment.

*   `adjustedMerchandizeTotalTax` (_number (double)_) The total tax on products in the shipment, including item-level price adjustments but not including service charges such as shipping. If the Discount Taxation preference is set to Tax Products and Shipping Only Based on Adjusted Price, this amount also includes prorated order-level price adjustments. It is read only.  
    Example: `4.95`.
*   `adjustedShippingTotalTax` (_number (double)_) The total tax on shipping charges in the shipment, including shipping price adjustments. It is read only.  
    Example: `0.3`.
*   `deliveryWindow` (_object_) The estimated delivery window for the shipment. The sfcc.app.shipping.calculate hook populates this value from the selected shipping method. The response omits this field if the hook doesn't return a delivery window. This field is reserved for future use and will be supported in an upcoming release.
    
    Includes all fields of `DeliveryWindow`.
    
*   `gift` (_boolean_) A flag indicating whether the shipment is a gift. It is read only.  
    Example: `true`.
*   `giftMessage` (_string_) The gift message.  
    Example: `Happy Birthday`.
*   `merchandizeTotalTax` (_number (double)_) The total tax on products in the shipment, not including price adjustments or service charges such as shipping. It is read only.  
    Example: `4.95`.
*   `orderCutoffAt` (_string (date-time)_) The timestamp by which an order must be placed for the deliveryWindow to apply, as an RFC 3339 date-time. The sfcc.app.shipping.calculate hook populates this value from the selected shipping method. The response omits this field if the hook doesn't return a cutoff time. This field is reserved for future use and will be supported in an upcoming release.  
    Example: `2026-04-27T14:00:00Z`.
*   `productSubTotal` (_number (double)_) The total price of all products in the shipment, including item-level adjustments, but not including order-level adjustments or shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `99`.
*   `productTotal` (_number (double)_) The total price of all products in the shipment including item-level adjustments and prorated order-level adjustments, but not including shipping charges. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `99`.
*   `shipmentId` (_object_) The order-specific ID of the shipment. The default value is 'me'.  
    Default: `me`.
    
    Includes all fields of `ShipmentId`.
    
    Default: `me`.
    
*   `shipmentNo` (_string_) The shipment number of this shipment. This number is automatically generated. It is read only.
*   `shipmentTotal` (_number (double)_) The total price of all products in the shipment including item-level adjustments, shipping charges, and tax. It is read only.  
    Example: `39.99`.
*   `shippingAddress` (_object_) The shipping address.
    
    Includes all fields of `OrderAddress`.
    
*   `shippingMethod` (_ShippingMethod_)
*   `shippingStatus` (_string_) The shipping status of the shipment.  
    Allowed values: `not_shipped`, `shipped`. Example: `shipped`.
*   `shippingTotal` (_number (double)_) The total price of all shipping charges in the shipment, including shipping adjustments. If the taxation policy is net, it doesn't include tax. If the taxation policy is gross, it includes tax. It is read only.  
    Example: `5.99`.
*   `shippingTotalTax` (_number (double)_) The total tax on shipping charges in the shipment, not including shipping price adjustments. It is read only.  
    Example: `0.3`.
*   `taxTotal` (_number (double)_) The total tax on the shipment, including item-level price adjustments and service charges such as shipping. If the Discount Taxation preference is set to Tax Products and Shipping Only Based on Adjusted Price, this amount also includes prorated order-level price adjustments. It is read only.  
    Example: `1.8`.
*   `trackingNumber` (_string_) The tracking number of the shipment.  
    Example: `1Z204E380338943508`.

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### ShippingItem

Document representing a shipping item.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### ApproachingDiscount

Document representing an approaching discount for a basket. Contains information about promotions the customer is close to qualifying for.

*   `type` (_string_, required) The type of approaching discount (order-level or shipping-level).  
    Allowed values: `order`, `shipping`. Example: `order`.
*   `conditionThreshold` (_number (double)_) The total amount needed to receive the discount.  
    Example: `100`.
*   `merchandiseTotal` (_number (double)_) The amount the customer basket contributes towards the purchase condition.  
    Example: `90`.
*   `discount` (_object_) The applied discount when the order meets the threshold.
    
    Includes all fields of `Discount`.
    
*   `promotionLink` (_object_) Document representing a promotion link.
    
    Includes all fields of `PromotionLink`.
    
*   `shipmentId` (_string_) The unique id of the shipment the discount relates to. Only applicable when type = shipping.  
    Minimum length: 1. Maximum length: 256. Example: `me`.
*   `shippingMethods` (_array of ShippingMethod_) The shipping methods the promotion relates to. Only applicable when type = shipping.

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### OrderProductItem

Document representing an order product item.

Includes all fields of `ProductItem`.

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

### OmsData

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

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

### OmsReasonCode

A single reason code configured in Order Management (OMS).

*   `reason` (_string_, required) The reason value as configured in OMS.  
    Maximum length: 256. Example: `Defect`.
*   `default` (_boolean_, required) Whether this reason is the default that the server uses when no reason is supplied on a cancel or return request.  
    Example: `false`.

### OrderAccessCode

A time-limited access code that serves as an alternative access grant for guest shoppers who have lost their original session. The code is generated by calling the `requestOrderAccessCode` endpoint, which delivers it via email to the address on the order. The shopper provides this code to authorize the request. The code is valid for 15 minutes after generation.

Type: `string`.

Maximum length: 6. Pattern: ^\\d{6}$. Example: `847291`.

### OmsReturnProductItem

An individual product item to be returned as part of an `OmsReturnOrderRequest`.

*   `itemId` (_string_, required) The identifier of the product item on the order to be returned.  
    Maximum length: 256. Example: `10uVF0000003W0BYAU`.
*   `quantity` (_number (double)_, required) The quantity to be returned. Can't exceed the `quantityAvailableToReturn` of the product item on the order.  
    Minimum: 0. Example: `1`.
*   `reason` (_string_) The reason for returning this product item. The value must match one of the `returnReasonCodes` configured in OMS and returned by the `getOmsMetaData` endpoint. When omitted, the server applies the default reason code configured in OMS.  
    Maximum length: 256. Example: `Defect`.
*   `reasonText` (_string_) A free-text note that explains why the shopper is returning this product item. Use it to provide additional detail beyond the coded `reason`, such as the shopper's own explanation.  
    Maximum length: 255. Example: `The item arrived with a cracked screen and won't power on.`.

### OrderPaymentCardRequest

Document representing an order payment card request.

*   `cardType` (_string_) The payment card type (for example: Visa).  
    Maximum length: 256. Example: `Visa`.
*   `creditCardToken` (_string_) A credit card token. If a credit card is tokenized, the token can be used to look up the credit card data in the token store.  
    Example: `E67TY8GQ27X`.
*   `expirationMonth` (_integer (int32)_) The month when the payment card expires.  
    Example: `3`.
*   `expirationYear` (_integer (int32)_) The year when the payment card expires.  
    Example: `2025`.
*   `holder` (_string_) The payment card holder.  
    Maximum length: 256. Example: `Max Mustermann`.
*   `issueNumber` (_string_) The payment card issue number.  
    Maximum length: 256. Example: `2`.
*   `maskedNumber` (_string_) The masked payment card number.  
    Maximum length: 25. Pattern: ^\[0-9 -\]{0,7}\\D{6,15}\\d{0,4}$. Example: `*********4422`.
*   `validFromMonth` (_integer (int32)_) The month the payment card is valid from.  
    Minimum: 1. Maximum: 12. Example: `5`.
*   `validFromYear` (_integer (int32)_) The year the payment card is valid from.  
    Example: `2019`.

### GiftCardRequest

Represents gift card details for a request.

*   `brand` (_string_, required) The gift card type or brand (for example, givex, blackhawk).  
    Maximum length: 256. Example: `givex`.
*   `cardNumber` (_string_, required) The gift card number.  
    Maximum length: 40. Example: `6364530000000000`.
*   `cvc` (_string_, required) The card verification code (CVC/CVV) for the gift card.  
    Maximum length: 4. Example: `123`.
*   `expirationMonth` (_integer (int32)_) The month when the gift card expires.  
    Example: `1`.
*   `expirationYear` (_integer (int32)_) The year when the gift card expires.  
    Example: `2030`.

### PaymentReferenceRequest

Properties for Payments Reference Request

*   `paymentMethodType` (_string_) Payment Method Type  
    Maximum length: 64. Example: `card`.
*   `zoneId` (_string_) The unique identifier for a Payments zone.  
    Minimum length: 1. Maximum length: 100. Pattern: ^\[a-zA-Z0-9\\-\_\]{1,100}$.
    
    _Example_
    
    ```
    {
      "Amer-Zone": null
    }
    ```
    
*   `gateway` (_string_) The payment gateway used to process the payment.  
    Allowed values: `stripe`, `paypal`, `adyen`. Example: `stripe`.
*   `gatewayProperties` (_object_) The payment gateway specific properties.
    *   `stripe` (_object_)
        
        ## Stripe specific properties.
        
        *   setupFutureUsage: Indicates that you intend to make future payments with this payment method.
            *   **on\_session**: The payment method is intended to be used for a future payment on the same website session.
            *   **off\_session**: The payment method is intended to be used for a future payment on a different website session.
            *   **null**: The payment method is not intended to be used for a future payment.
    *   `paypal` (_object_)
        
        ## PayPal specific properties.
        
        *   shippingPreference: Shipping preference for PayPal payment processing. Applicable only for basket payment instruments.
            *   **GET\_FROM\_FILE**
            *   **NO\_SHIPPING**
            *   **SET\_PROVIDED\_ADDRESS**
    *   `adyen` (_object_)
        
        ## Adyen specific properties.
        

### PaymentMethod

Document representing a payment method.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### TaxItems

Taxation for a line item.

*   `taxItems` (_array of TaxItem_) The list of tax items. It is read only.

### CountryCode

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

Type: `string`.

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

### ProductDetailsLink

Document representing a link to the resource for product details.

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

### CouponItemId

The coupon item ID

Type: `string`.

Minimum length: 1. Example: `d4c9c0141e9c74c150225580f3`.

### GiftCertificateItemId

Type: `string`.

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

### Discount

Document representing a discount.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### PriceAdjustmentId

Type: `string`.

Example: `ba248424e3eee797f062161f8b`.

### Status

Document representing an object status.

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

### FraudDecisions

Normalized fraud decisions for the order payment instrument. All properties are optional and read only. The object is omitted entirely when no decisions are returned. The values remain readable for historical orders.

*   `preAuthorization` (_string_)
    
    The pre-authorization fraud decision used by the client to orchestrate checkout. Expected values are:
    
    *   `NOT_REVIEWED`: the payment instrument was not reviewed pre-authorization.
    *   `APPROVED`: the payment authorization can proceed.
    *   `CHALLENGE`: the payment authorization should be challenged with additional verification (for example, a 3D Secure challenge) before it can proceed.
    *   `DECLINED`: the payment authorization is declined.
    
    A custom value may also be returned. It is read only.
    
      
    Maximum length: 256. Example: `APPROVED`.

### PaymentCard

Document representing a payment card.

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

### PaymentDetails

Normalized, shopper-relevant payment details for the order payment instrument. All properties are optional and read only. The object is omitted entirely when no details are available for the payment. The values remain readable for historical orders.

*   `type` (_string_) The normalized payment method type. Expected values are `bancontact`, `card`, `gift_card`, `eps`, `ideal`, `klarna`, `sepa_debit`, `paypal`, `venmo`, `afterpay_clearpay`, `amazon_pay`, and `twint`. A custom value may also be returned. It is read only.  
    Maximum length: 256. Example: `card`.
*   `brand` (_string_) The normalized card brand. Expected values are `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, and `unknown`. A custom value may also be returned. It is read only.  
    Maximum length: 20. Example: `visa`.
*   `last4` (_string_) The last four digits of the payment instrument. It is read only.  
    Maximum length: 4. Example: `4242`.
*   `walletType` (_string_) The normalized digital wallet used for the payment. Expected values are `apple_pay` and `google_pay`. A custom value may also be returned. It is read only.  
    Maximum length: 20. Example: `apple_pay`.
*   `expirationMonth` (_integer (int32)_) The month when the payment instrument expires. It is read only.  
    Minimum: 1. Maximum: 12. Example: `12`.
*   `expirationYear` (_integer (int32)_) The year when the payment instrument expires. It is read only.  
    Example: `2028`.
*   `token` (_string_) The reference token representing the payment instrument. This is an opaque identifier, not the card number (PAN). It is read only.  
    Maximum length: 40. Example: `pm_abc123`.
*   `tokenType` (_string_) The type of token backing the reference token. Expected values are `NETWORK` and `GATEWAY`. A custom value may also be returned. It is read only.  
    Maximum length: 20. Example: `GATEWAY`.
*   `accountHolderName` (_string_) The name of the payment instrument account holder. It is read only.  
    Maximum length: 256. Example: `Alex Shopper`.

### GiftCardResponse

Document representing a gift card response.

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

### ProductItem

Document representing a product item.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### DeliveryWindow

The range describing when an item is expected to be delivered. Both bounds are RFC 3339 date-time timestamps. The API preserves sub-day precision end-to-end.

*   `startAt` (_string (date-time)_) The earliest expected delivery time, as an RFC 3339 date-time.  
    Example: `2026-04-30T14:00:00Z`.
*   `endAt` (_string (date-time)_) The latest expected delivery time, as an RFC 3339 date-time.  
    Example: `2026-04-30T18:00:00Z`.

### ShipmentId

The identifier of the shipment

Type: `string`.

Minimum length: 1. Example: `me`.

### ShippingMethod

Document representing a shipping method.

*   `deliveryWindow` (_object_) The estimated delivery window for this shipping method. The sfcc.app.shipping.quote hook populates this value. The response omits this field if the hook doesn't return a delivery window.
    
    Includes all fields of `DeliveryWindow`.
    
*   `description` (_string_) The localized description of the shipping method.  
    Example: `Order received within 7-10 business days`.
*   `externalShippingMethod` (_string_) The external shipping method.
*   `id` (_string_, required) The shipping method ID.  
    Maximum length: 256. Example: `001`.
*   `name` (_string_) The localized name of the shipping method.  
    Example: `Ground`.
*   `orderCutoffAt` (_string (date-time)_) The timestamp by which an order must be placed for the deliveryWindow to apply, as an RFC 3339 date-time. The sfcc.app.shipping.quote hook populates this value. The response omits this field if the hook doesn't return a cutoff time.  
    Example: `2026-04-27T14:00:00Z`.
*   `price` (_number (double)_) The shipping cost total, including shipment level costs, product level fix, and surcharge costs. It is read only.  
    Example: `15`.
*   `shippingPromotions` (_array of ShippingPromotion_) The array of active customer shipping promotions for this shipping method. This array can be empty.

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### TaxItem

Object representing the taxation.

*   `id` (_string_, required) The taxation identifier.
*   `rate` (_number (double)_, required) The taxation rate.  
    Example: `0.13`.
*   `value` (_number (double)_) The tax amount. Will be computed if not set.

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### PromotionLink

Document representing a promotion link.

*   `promotionId` (_string_) The unique id of the promotion.  
    Minimum length: 1. Maximum length: 256. Example: `10off100`.
*   `name` (_string_) The localized name of the promotion.  
    Minimum length: 1. Maximum length: 256. Example: `10% off $100 orders`.
*   `calloutMsg` (_string_) The localized call-out message of the promotion.  
    Minimum length: 1. Maximum length: 256. Example: `Spend $10 more to save 10%!`.
*   `title` (_string_) The link title.  
    Minimum length: 1. Maximum length: 256. Example: `10% off $100 orders`.
*   `link` (_string_) The URL addressing the promotion.  
    Minimum length: 1. Maximum length: 2048. Example: `/s/SiteGenesis/promotion?id=10off100`.

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### OmsProductData

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

*   `status` (_string_) Order Management (OMS) status  
    Allowed values: `ordered`, `returned`, `canceled`, `paid`, `reshipped`, `fulfilled`, `partially_fulfilled`, `allocated`, `partially_allocated`, `return_initiated`. Example: `ordered`.
*   `quantityAvailableToCancel` (_number (double)_) The quantity that can be cancelled.  
    Example: `2`.
*   `quantityAvailableToReturn` (_number (double)_) The quantity that can be returned.  
    Example: `2`.
*   `quantityCanceled` (_number (double)_) The quantity that has been cancelled.  
    Example: `0`.
*   `quantityReturnInitiated` (_number (double)_) The quantity for which a return has been initiated.  
    Example: `0`.
*   `quantityReturned` (_number (double)_) The quantity that has been returned.  
    Example: `0`.
*   `quantityOrdered` (_number (double)_) The quantity that was originally ordered.  
    Example: `2`.

_Example_

```
{
  "status": "ordered",
  "quantityAvailableToCancel": 2,
  "quantityAvailableToReturn": 2,
  "quantityCanceled": 0,
  "quantityReturnInitiated": 0,
  "quantityReturned": 0,
  "quantityOrdered": 2
}
```

### OmsShipment

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

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

### PaymentCardSpec

Document representing the specification for a payment card.

*   `cardType` (_string_) The payment card type. It is read only.  
    Example: `Visa`.
*   `checksumVerificationEnabled` (_boolean_) A flag indicating whether the card number is verified using the Luhn checksum algorithm. It is read only.  
    Example: `true`.
*   `description` (_string_) The localized description of the payment card. It is read only.
*   `image` (_string_) The URL to the image that represents the payment card. It is read only.
*   `name` (_string_) The localized name of the payment card. It is read only.
*   `numberLengths` (_array of string_) The sorted list of number lengths (individual lengths as well as length ranges). It is read only.
*   `numberPrefixes` (_array of string_) The sorted list of number prefixes (individual prefixes as well as prefix ranges). It is read only.
*   `securityCodeLength` (_integer (int32)_) The length of the security code for this card. It is read only.

### ProductId

The id (SKU) of the product.

Type: `string`.

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

### ItemId

The item id.

Type: `string`.

Example: `430ef5aad3a24de59378458434`.

### OptionItem

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

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### ProductListItemReference

Document representing product list item details.

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

### ShippingPromotion

Document representing a shipping promotion.

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

Additional properties: `any`.

Additional Property Support

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

Example: `c_trackingId`.

### OmsShipmentItem

Individual item within a shipment

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

### ProductListLink

Document representing a link to a product list.

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