---
schema_version: "1"
id: 2c1fcb1973c460598254adc88fc907b2ad700583ea56d9f2441d1f57cbaa9f44
title: Check Status of the Cart
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/industries/cme/guides/standard_cart/std_comms-check-status-of-the-cart.md
canonical_url: https://developer.salesforce.com/docs/industries/cme/guide/std_comms-check-status-of-the-cart.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: a50516ff9329b66c9b52faa000ce704dbef3c8b1103ae5dee01e268d4710c655
products:
  - Communications, Media, Energy and Utilities APIs (Managed Package)
  - Industries Developer Documentation
---
# Check Status of the Cart

Return a summary of the cart status including pricing, account, multi-site, and additional action information.

- Pricing information, such as total one-time charges and total recurring charges

- Account information associated with the cart

- If the cart includes a multi-site order and available sites

- Links to further actions, such as checkout

```nolang
GET /v2/cpq/carts/{cart_ID}/items/checkout
```

This API supports the guest user enhancements that Salesforce introduced with the Winter ‘21 release. To encrypt and decrypt data for guest users, use the `UserSecurity` class with this API. See Guest User Technical Details.

For additional information, ​see UserSecurity Class and CPQ and Digital Commerce Changes for Guest Users.

## Remote Method

```nolang
getCarts
```

## REST Handler

```nolang
CpqCreateCartActionV2
```


## Apex Remote Service

```nolang
Class: vlocity_cmt.CpqAppHandler
method: global Object invokeMethod(String methodName, Map<String,Object> inputs, Map<String,Object> output, Map<String,Object> options)
```

## Apex Remote Input Map

```nolang
String methodName: checkout
Map<String,Object>
inputs: SAME AS SAMPLE REQUEST Body

```

## API Parameters and Response Format

For API parameter names and descriptions, see [Cart-Based API Swagger Reference](https://developer.salesforce.com/docs/industries/cme/references/cpq?meta=Summary).

## Resource Information

| Response Format | JSON                                                                   |
| --------------- | ---------------------------------------------------------------------- |
| Resource URL    | `/services/apexrest/{namespace}/v2/cpq/carts/{cart_ID}/items/checkout` |

## Example Request Body

The checkOrderStatus parameter indicates whether a set of status fields should be checked prior to allowing an order to be checked out. If checkOrderStatus is set to true (the default):

```nolang
{
  "methodName": "checkout",
  "cartId": "8012800000004GFAAY",
  "ContextId": "8012800000004GFAAY",
  "objectTypeToIdsToClone": "OrderItem:8021N000008NG5t",
  "validateSubmittedXLI": false,
  "checkOrderStatus": true,
  "provisioningStatus": "Active"
}
```

- Any order that is active cannot be submitted.

- If any of the following is true, the order is determined to be active:

  - Status has a value of Activated

  - OrderStatus_c has any of the following values:

    - In Progress

    - Cancelled

    - Cancel Requested

    - Complete

  - SupersededOrderId_c is not null

If checkOrderStatus is set to false, the order can be processed even if the order is active.

The validateSubmittedXLI parameter controls the pre-submit validation for the checkout API. If true, it will validate whether the user has submitted complete bundles and if all the line items have the field FulfilmentStatus\_\_c value set to `Activated`. If either or both of those conditions are not met, the transaction will fail.

## Example Responses

The following example shows a response to a successful submit.

```nolang
{
  "totalSize": 1,
  "messages": [
    {
      "code": "SUBMIT-1008",
      "severity": "INFO",
      "message": "Order 8012M000007mAQIQA2 was successfully assetized and activated"
    }
  ],
  "records": [
    {
      "messages": [

      ],
      "displaySequence": -1,
      "id": "0012M00002GchG1QAJ",
      "objectType": "Account",
      "clonedObjectIds": [
        "02i2M00000Q8FZNQA3",
        "02i2M00000Q8FZOQA3"
      ]
    }
  ]
}
```

The following example shows a response to a failed submit if validate is true and some or all the line items are not activated.

```nolang
{
  "totalSize": 0,
  "messages": [
    {
      "code": "214",
      "severity": "ERROR",
      "message": "The following line items are not activated: 8021N00000BS6TFQA1,8021N00000BS6VPQA1,8021N00000BS6VQQA1,8021N00000BS6TGQA1,8021N00000BS6THQA1,8021N00000BS6TKQA1,8021N00000BS6TLQA1,8021N00000BS6TMQA1,8021N00000BS6TNQA1"
    }
  ]
}
```

The following example shows a response to a failed submit if validate is true, some bundles are incomplete, and some or all line items are not activated.

```nolang
{
  "totalSize": 0,
  "messages": [
    {
      "code": "214",
      "severity": "ERROR",
      "message": "The following line items are not activated 8021N00000BS6VQQA1 | Please submit the full bundle for the following line item(s) 8021N00000BS6VQQA1"
    }
  ]
}
```

## Message Codes

| Code        | Description                                                                                                    |
| ----------- | -------------------------------------------------------------------------------------------------------------- |
| SUBMIT-1001 | Order submission is accepted by OM.                                                                            |
| SUBMIT-1002 | Order submission is provisionally accepted.                                                                    |
| SUBMIT-1003 | Order submission was rejected for PONR.                                                                        |
| SUBMIT-1004 | Order submission was rejected because queue is full.                                                           |
| SUBMIT-1005 | Order submission is done without a required parameter. This will be used only during integration.              |
| SUBMIT-1006 | Order Management responded with an unknown response code.                                                      |
| SUBMIT-1007 | Order Management responded with "rejected" and without a reason code.                                          |
| SUBMIT-1008 | Auto-assetization is successful, which happens if OdinAPIAutoAssetizeHandler is configured for OdinAPIHandler. |
| SUBMIT-1009 | Order submission ran into an exception that may not be reproducible.                                           |
