Marketplace Approval API

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

Request Marketplace Approval

You can request a shop to be listed on Marketplace by updating the seller'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 seller request to sell on Marketplace is received by the Facebook Ops team. If all prerequisites met we validate that the seller 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 seller request is going through few statuses before it is fully approved:

Check Onboarding Status from Seller Settings

Graph API Explorer
curl -X GET -G \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/{merchant-settings-id}/?fields=cta,setup_status
GET /{merchant-settings-id}/?fields=cta,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}/?fields=cta,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}/?fields=cta,setup_status",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);

Check Onboarding Sstatus 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 seller payment details.

marketplace_approval_status

marketplace_approval_status

Status of seller's Marketplace approval

deals_setup

deals_setup

Status of seller's Daily Deals allow list.

marketplace_approval_status_details

marketplace_approval_status_details

Details on the seller’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

Seller's application has not been submitted.

IN_REVIEW

Seller's application is in review.

APPROVED

Seller's is approved for Marketplace listings.

REJECTED

Seller's has been rejected for Marketplace listings.

ON_HOLD

Seller's is on hold for further review.

deals_setup

ValueDescription

NOT_SETUP

Seller is not set up on Daily Deals.

SETUP

Seller is set up on Daily Deals.

UNDER_REVIEW

Seller is under review.

marketplace_approval_status_details

ValueTypeDescription

issues

array of issue

Array of issues the seller 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

Seller has not published their Page shop.

ONSITE_CHECKOUT_NOT_ENABLED

Seller doesn’t support onsite checkout.

FAIL_QUALITY_REVIEW

Seller fails quality review.

NO_INVENTORY

Seller does not have any in stock product.

severity

ValueDescription

BLOCKING

Blocking sellers from being approved for Marketplace.

Example API Responses

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

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

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

{
  "cta": "ONSITE_CHECKOUT",
  "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 seller.

{
  "cta": "ONSITE_CHECKOUT",
  "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. Seller becomes approved.

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