Marketplace Approval API

You can request Facebook Marketplace approval and then check the status of the request for your merchants.

Request Marketplace Approval

You can request a shop to be listed on Marketplace by updating the merchant's settings' marketplace_approval_requested to true

Graph API Explorer
curl -X POST \
  -F 'onsite_commerce_merchant="..."' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{merchant-settings-id}
POST /{merchant-settings-id} HTTP/1.1
Host: graph.facebook.com

onsite_commerce_merchant=...
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{merchant-settings-id}',
    array (
      'onsite_commerce_merchant' => '...',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{merchant-settings-id}",
    "POST",
    {
        "onsite_commerce_merchant": "..."
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
{
  "onsite_commerce_merchant": {
    "marketplace_approval_requested": "true"
  }
}

Check Setup Status

After a merchant request to sell on Marketplace is received by the Facebook Ops team. If all prerequisites met we validate that the merchant complies with our seller policies you will be able to sell on Facebook Marketplace. If there are any issues with the request you can use this endpoint to get information about them.

A merchant request is going through few statuses before it is fully approved:

Check onboarding status from Merchant Settings

Graph API Explorer
curl -X GET -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{merchant-settings-id}/setup_status
GET /{merchant-settings-id}/setup_status HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{merchant-settings-id}/setup_status',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{merchant-settings-id}/setup_status",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

Check onboarding status from a Page

Graph API Explorer
curl -X GET -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{page-id}/shop_setup_status
GET /{page-id}/shop_setup_status HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{page-id}/shop_setup_status',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/shop_setup_status",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

Request

No request parameters

Response

AttributeTypeDescription

shop_setup

shop_setup_status

Status of the Page Shop.

payment_setup

payment_setup_status

Status of the merchant payment details.

marketplace_approval_status

marketplace_approval_status

Status of merchant's Marketplace approval

deals_setup

deals_setup

Status of merchant's Daily Deals whitelisting

marketplace_approval_status_details

marketplace_approval_status_details

Details on the merchant’s approval status

shop_setup_status

ValueDescription

NOT_SETUP

SETUP

UNDER_REVIEW

PENDING_PAGE_APPROVAL

PENDING_TOS_ACCEPTANCE

EXTERNALLY_DISABLED

payment_setup_status

ValueDescription

NOT_SETUP

SETUP

VERIFICATION_NEEDED

UNDER_REVIEW

marketplace_approval_status

ValueDescription

UNDEFINED

Merchant application has not been submitted

IN_REVIEW

Merchant application is in review

APPROVED

Merchant is approved for Marketplace listings

REJECTED

Merchant has been rejected for Marketplace listings

ON_HOLD

Merchant is on-hold for further review

deals_setup

ValueDescription

NOT_SETUP

Merchant is not set up on Daily Deals

SETUP

Merchant is set up on Daily Deals

UNDER_REVIEW

Merchant is under review

marketplace_approval_status_details

ValueTypeDescription

issues

array of issue

Array of issues the merchant has on Marketplace.

issue

ValueTypeDescription

issue

issue

Coded type of an issue.

severity

severity

Severity of an issue.

description

string

Description of the issue and recommended actions to take

additional_url

string

Additional Url

issue

ValueDescription

FB_PAGE_SHOP_NOT_PUBLISHED

Merchant has not published their page shop

ONSITE_CHECKOUT_NOT_ENABLED

Merchant doesn’t support onsite checkout

FAIL_QUALITY_REVIEW

Merchant fails quality review

NO_INVENTORY

Merchant does not have any in stock product

severity

ValueDescription

BLOCKING

Blocking merchants from being approved for Marketplace

Example API Responses

1. Merchant has applied for Marketplace, and they are waiting to be reviewed.

{
  "data": [
    {
      "shop_setup": "SETUP",
      "payment_setup": "SETUP",
      "marketplace_approval_status": "WAITING_FOR_REVIEW",
      "deals_setup": "NOT_SETUP"
    }
  ]
}

2. Merchant is being reviewed for Marketplace. There is nothing blocking so far, and we are still reviewing the merchant.

{
  "data": [
    {
      "shop_setup": "SETUP",
      "payment_setup": "SETUP",
      "marketplace_approval_status": "IN_REVIEW",
      "deals_setup": "NOT_SETUP"
    }
  ]
}

3. We found out some blocking issues after reviewing the merchant.

{
  "data": [
    {
      "shop_setup": "SETUP",
      "payment_setup": "SETUP",
      "marketplace_approval_status": "ON_HOLD",
      "deals_setup": "NOT_SETUP",
      "marketplace_approval_status_details": {
        "issues": [
          {
            "issue": "no_inventory",
            "description": "Your catalog has no in stock product. Please make sure your catalog has products and at least one product has inventory count greater than 0.",
            "severity": "blocking"
          }
        ]
      }
    }
  ]
}

4. Merchant becomes approved.

{
  "data": [
    {
      "shop_setup": "SETUP",
      "payment_setup": "SETUP",
      "marketplace_approval_status": "APPROVED",
      "deals_setup": "NOT_SETUP"
    }
  ]
}