# Troubleshoot Your Commerce Platform Integration
To understand the commerce setup for a seller, consider confirming what assets are used:
- [Commerce Merchant Settings](#CMS-ID)
- [Page and Catalog IDs](#page-catalog-ids)
- [Business ID](#biz-id)
- [Facebook channel](#FB-channel)
- [Instagram channel](#IG-channel)
- [Onsite or offsite](#onsiteoffsite)
- [Setup status](#status)
## Get Commerce Merchant Settings ID {#CMS-ID}
CMS-ID is a Commerce Merchant Settings ID for commerce integration.
If you are using a Commerce Manager redirect, this ID should be returned in the redirection parameters. Alternatively, you can ask a seller to provide your ID or pull CMS-ID from the business object.
1. A seller can find the CMS-ID by logging into Facebook Commerce Manager and then selecting the commerce account. The seller will be redirected to www.facebook.com/ commerce_manager/{CMS-ID}.
2. Pulling CMS-ID from the business object:
**Sample Request**
```html
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<BUSINESS_ID>/fields=commerce_merchant_settings
```
**Sample Response**
```json
{
"id": "123456789"
}
```
If your seller has more than one commerce merchant settings you can query Instagram channel or page name to verify where orders are coming from.
## Get Page, Catalog IDs {#page-catalog-ids}
You can read a seller's settings by ID. The onsite_commerce_merchant field is only returned for Shops configured for onsite Checkout.
**Sample Request**
```html
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<CMS_ID>?fields=merchant_page,product_catalogs
```
**Sample Response**
Shop configured for onsite Checkout:
```json
{
"merchant_page": {
"id": "4040",
"name": "Checkout Page"
},
"product_catalogs": {
"data": [
{
"id": "33799",
"name": "Products for Checkout"
}
]
},
"id": "1234567890"
}
```
Shop not configured for onsite Checkout (old Shops API):
```json
{
"id": "1234567890"
}
```
Otherwise a relevant error message will be returned.
## Get Business ID {#biz-id}
To get a seller business ID, you need to know either the page or catalog IDs from them (you can get these IDs from CMS-ID). Both catalog and page objects have business edge that can provide you information about the business.
**Sample Request**
```html
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<PAGE_ID>?fields=business
```
**Sample Response**
```json
{
"business": {
"id": "1234567890123",
"name": "A merchant business name"
},
"id": "1234567890"
}
```
## Facebook Channel {#FB-channel}
**Sample Request**
```html
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<CMS_ID>?fields=facebook_channel
```
**Sample Response**
```json
{
"facebook_channel": {
"pages": {
"data": [
{
"name": "Checkout Page",
"id": "4040"
}
]
}
},
"id": "123456789890"
}
```
## Instagram Channel {#IG-channel}
**Sample Request**
```html
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<CMS_ID>?fields=instagram_channel
```
**Sample Response**
```json
{
"instagram_channel": {
"instagram_users": {
"data": [
{
"id": "1234"
}
]
}
},
"id": "123456789890"
}
```
## Onsite or Offsite Configuration {#onsiteoffsite}
In order to check if a commerce account setup as offsite or onsite use the commerce merchant settings parameter `cta`.
**Sample Request**
```html
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<MERCHANT_SETTINGS_ID>/?fields=cta,setup_status
```
**Sample Response**
```
{
"cta": "ONSITE_CHECKOUT"
}
```
## Setup Status {#status}
There are few statuses that are required to see if the seller is correctly set up.
1. First check that `shop_setup` field must be in `SETUP` state.
2. Lack of payment setup is indicated in the `payment_setup` field.
3. Shops will not be visible to public unless `review_status` is in `APPROVED` state. See [`review_status_code`](#review_status_code) for details.
4. We recommend checking `facebook_channel` and `instagram_channel` to see that Facebook Shops and Instagram Shopping channels are enabled. For more details see [Facebook channel](#FB-channel) and [Instagram channel](#IG-channel).
5. Separately to commerce setup seller Instagram account must be approved for the Shopping functionality, otherwise there will be no distribution of the seller products on Instagram and no commerce orders. Instagram Shopping approval status is no part of commerce API.
**Sample Request**
```html
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/<MERCHANT_SETTINGS_ID>/?fields=setup_status
```
**Response**
| Attribute | Type | Description |
| --- | --- | --- |
| `shop_setup` | [`shop_setup_status`](#shop_setup_status) | Status of the Commerce account. |
| `payment_setup` | [`payment_setup_status`](#payment_setup_status) | Status of the seller payment details. |
| `review_status` | [`review_status`](#review_status) | Status of Facebook's seller integrity review. |
### `shop_setup_status` {#shop_setup_status}
| Value | Description |
| --- | --- |
| `NOT_SETUP` | |
| `SETUP` | |
| `UNDER_REVIEW` | |
| `PENDING_PAGE_APPROVAL` | |
| `PENDING_TOS_ACCEPTANCE` | |
| `EXTERNALLY_DISABLED` | |
### `payment_setup_status` {#payment_setup_status}
| Value | Description |
| --- | --- |
| `NOT_SETUP` | |
| `SETUP` | |
| `VERIFICATION_NEEDED ` | |
| `UNDER_REVIEW` | |
### `review_status` {#review_status}
| Attribute | Type | Description |
| --- | --- | --- |
| `status` | [`review_status_code`](#review_status_code) | Enum representing review status. |
| `reasons` | Array of [`review_status_reason`](#review_status_reason) | If the review status is `REJECTED`, this contains descriptions of reasons for rejection. |
### `review_status_code` {#review_status_code}
| Value | Description |
| --- | --- |
| `APPROVED` | |
| `IN_REVIEW` | Sellers need to wait for the review to complete for their Shops to be visible to public. The process can take up to 28 days. |
| `REJECTED ` | Rejected sellers have to delete the CMS and set up with different credentials such as bank account. |
| `INTEGRITY_NOT_CHECKED` | Integrity review was waived |
### `review_status_reason` {#review_status_reason}
| Attribute | Type | Description |
| --- | --- | --- |
| `code` | String | Enum representing rejection reason. Possible values are `UNKNOWN`. |
| `message` | String | Description of rejection reason. |
| `help_url` | String | A link to view more details about the review and rejection. |
**Sample Response**
```
{
"data": [
{
"shop_setup": "SETUP",
"payment_setup": "SETUP",
"review_status": {
"status": "REJECTED",
"reasons": [
{
"code": "UNKNOWN",
"message": "Your account is not eligible for Facebook Shops at this time.",
"help_url": "https://www.facebook.com/help/contact/481136396104354"
}
]
}
}
]
}
```