Flavours API
FeatureAccess

List Feature Access

GET
/api/v2/features/access

Resolve the caller's per-feature access matrix aggregating permission, sector and plan scopes plus any upsell restriction notice and page banner. Returns a major matrix (the caller's own access) and a minor matrix (admin/merchant only — computed against their secondary subscriber-mirror permission; null for subscribers). Advisory for client-side gating only, not server enforcement.

AuthorizationBearer <token>

You can retrieve your token by logging in.

In: header

Query Parameters

feature_key?|

Narrow the matrix to a single feature by its key.

Header Parameters

X-API-Version*string

API contract version to target. See the Changelog for what changed in each version.

Default"2.0.0"
Value in"2.3.0" | "2.2.0" | "2.1.0" | "2.0.0"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.flavours.sa/dev/api/v2/features/access?feature_key=PRODUCT" \  -H "X-API-Version: 2.3.0"
{
  "meta": {
    "code": 200,
    "status": "success",
    "message": "Feature access matrix retrieved successfully."
  },
  "data": {
    "major": [
      {
        "feature_key": "ACCOUNT",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "ACCOUNT_CREATE",
            "authorize": true
          },
          {
            "control_key": "ACCOUNT_UPDATE",
            "authorize": true
          },
          {
            "control_key": "ACCOUNT_DELETE",
            "authorize": true
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "APPLICATION",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "ASSISTANCE",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "BANNER",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "COUNTRY",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "DASHBOARD",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "DEPLOYMENT",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "FEATURE_SYSTEM",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "GENERAL_SETTINGS",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "INVOICE",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "INVOICE_RENEWAL",
            "authorize": true
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "MERCHANT",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "ORDER_TYPE",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "ORDER_TYPE_CREATE",
            "authorize": true
          },
          {
            "control_key": "ORDER_TYPE_UPDATE",
            "authorize": true
          },
          {
            "control_key": "ORDER_TYPE_DELETE",
            "authorize": true
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PAYMENT_METHOD",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PAYMENT_TRANSFER",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PERMISSION",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "PERMISSION_CREATE",
            "authorize": true
          },
          {
            "control_key": "PERMISSION_UPDATE",
            "authorize": true
          },
          {
            "control_key": "PERMISSION_DELETE",
            "authorize": true
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PLAN",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PRINTER_TYPE",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PRODUCT_CATEGORY",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "PRODUCT_CATEGORY_CREATE",
            "authorize": true
          },
          {
            "control_key": "PRODUCT_CATEGORY_UPDATE",
            "authorize": true
          },
          {
            "control_key": "PRODUCT_CATEGORY_DELETE",
            "authorize": true
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "REPORT_ORDER",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "REPORT_PRODUCT",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "REPORT_SUMMARY",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "RESTRICTION_NOTICE",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "SECTOR",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "SMS",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "SUBSCRIBER",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "SUBSCRIBER_CREATE",
            "authorize": true
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "TERM_CONDITION",
        "authorize": true,
        "scopes": {
          "permission": true,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      }
    ],
    "minor": [
      {
        "feature_key": "ACCOUNT",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "ACCOUNT_CREATE",
            "authorize": false
          },
          {
            "control_key": "ACCOUNT_UPDATE",
            "authorize": false
          },
          {
            "control_key": "ACCOUNT_DELETE",
            "authorize": false
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "ACCOUNTING_PURCHASE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "ACCOUNTING_RESUPPLY",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "RESUPPLY_VERIFY",
            "authorize": false
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "ACCOUNTING_SUPPLIER",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "ADVERTISEMENT",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "APPLICATION",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "AUTHENTICATION",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "BRANCH",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": {
          "id": "c4b2e593-f3b8-4185-94df-7d0c6705bdb6",
          "title_en": "Labore est accusantium.",
          "title_ar": "Incidunt alias ex.",
          "description_en": "Cumque ut et et dolor hic. Consequatur voluptatum possimus dolorum commodi. Sit in laboriosam ut est rerum praesentium aperiam aliquam.",
          "description_ar": "Voluptatem eligendi quae in placeat deserunt necessitatibus. Dignissimos officia asperiores quia voluptas perspiciatis est cum. Omnis praesentium voluptatibus et consequuntur quod fuga laborum.",
          "cover_img": "https://via.placeholder.com/640x480.png/009922?text=nemo",
          "button_url": "http://schmeler.com/eos-molestiae-et-doloremque-fugiat-harum",
          "button_label_en": "Learn More",
          "button_label_ar": "اعرف المزيد"
        }
      },
      {
        "feature_key": "BULK_IMPORT",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "PRODUCT_IMPORT",
            "authorize": false
          },
          {
            "control_key": "PRODUCT_CATEGORY_IMPORT",
            "authorize": false
          },
          {
            "control_key": "CUSTOMER_IMPORT",
            "authorize": false
          },
          {
            "control_key": "INGREDIENT_IMPORT",
            "authorize": false
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "CUSTOMER",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": {
          "id": "c4b2e593-f3b8-4185-94df-7d0c6705bdb6",
          "title_en": "Labore est accusantium.",
          "title_ar": "Incidunt alias ex.",
          "description_en": "Cumque ut et et dolor hic. Consequatur voluptatum possimus dolorum commodi. Sit in laboriosam ut est rerum praesentium aperiam aliquam.",
          "description_ar": "Voluptatem eligendi quae in placeat deserunt necessitatibus. Dignissimos officia asperiores quia voluptas perspiciatis est cum. Omnis praesentium voluptatibus et consequuntur quod fuga laborum.",
          "cover_img": "https://via.placeholder.com/640x480.png/009922?text=nemo",
          "button_url": "http://schmeler.com/eos-molestiae-et-doloremque-fugiat-harum",
          "button_label_en": "Learn More",
          "button_label_ar": "اعرف المزيد"
        }
      },
      {
        "feature_key": "DASHBOARD",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": {
          "id": "c4b2e593-f3b8-4185-94df-7d0c6705bdb6",
          "title_en": "Labore est accusantium.",
          "title_ar": "Incidunt alias ex.",
          "description_en": "Cumque ut et et dolor hic. Consequatur voluptatum possimus dolorum commodi. Sit in laboriosam ut est rerum praesentium aperiam aliquam.",
          "description_ar": "Voluptatem eligendi quae in placeat deserunt necessitatibus. Dignissimos officia asperiores quia voluptas perspiciatis est cum. Omnis praesentium voluptatibus et consequuntur quod fuga laborum.",
          "cover_img": "https://via.placeholder.com/640x480.png/009922?text=nemo",
          "button_url": "http://schmeler.com/eos-molestiae-et-doloremque-fugiat-harum",
          "button_label_en": "Learn More",
          "button_label_ar": "اعرف المزيد"
        }
      },
      {
        "feature_key": "DEVICE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "DISCOUNT",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "DRIVER",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "GENERAL_SETTINGS",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "INVENTORY_INGREDIENT",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "INVENTORY_RECIPE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "INVENTORY_FACTORY",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "KITCHEN",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "ORDER",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "ORDER_CASH_DRAWER",
            "authorize": false
          },
          {
            "control_key": "ORDER_FAST_OFFER",
            "authorize": false
          },
          {
            "control_key": "ORDER_PAY_NOW",
            "authorize": false
          },
          {
            "control_key": "ORDER_PAY_LATER",
            "authorize": false
          },
          {
            "control_key": "ORDER_PRINT_INVOICE",
            "authorize": false
          },
          {
            "control_key": "ORDER_RETURN",
            "authorize": false
          },
          {
            "control_key": "ORDER_SPLIT_PAYMENT",
            "authorize": false
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "ORDER_TYPE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "ORDER_TYPE_CREATE",
            "authorize": false
          },
          {
            "control_key": "ORDER_TYPE_UPDATE",
            "authorize": false
          },
          {
            "control_key": "ORDER_TYPE_DELETE",
            "authorize": false
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PAYMENT_METHOD",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PAYMENT_TRANSFER",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PERMISSION",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "PERMISSION_CREATE",
            "authorize": false
          },
          {
            "control_key": "PERMISSION_UPDATE",
            "authorize": false
          },
          {
            "control_key": "PERMISSION_DELETE",
            "authorize": false
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PRODUCT",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PRODUCT_CATEGORY",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [
          {
            "control_key": "PRODUCT_CATEGORY_CREATE",
            "authorize": false
          },
          {
            "control_key": "PRODUCT_CATEGORY_UPDATE",
            "authorize": false
          },
          {
            "control_key": "PRODUCT_CATEGORY_DELETE",
            "authorize": false
          }
        ],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "PROFILE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "RATING",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "REPORT_ATTENDANCE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "REPORT_ORDER",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "REPORT_PRODUCT",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "REPORT_PURCHASE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": {
          "id": "d97a63a7-bded-4266-ab3e-ed7041d15afd",
          "title_en": "Minus cum rerum qui.",
          "title_ar": "Et aspernatur omnis.",
          "description_en": "Deleniti quia qui hic et voluptatem minus quia. Dolor et aliquid qui architecto optio iure. Consequuntur inventore placeat dolor est illum est aut. Quibusdam maiores tempora velit itaque autem.",
          "description_ar": "Adipisci vel at vel id placeat. Modi perferendis incidunt similique. Debitis natus harum eveniet ex non reiciendis.",
          "cover_img": "https://via.placeholder.com/640x480.png/006622?text=nisi",
          "button_url": "http://www.denesik.com/",
          "button_label_en": "Learn More",
          "button_label_ar": "اعرف المزيد"
        }
      },
      {
        "feature_key": "REPORT_SUMMARY",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "SCHEDULE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "SCREEN_CASHIER",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "SCREEN_CUSTOMER",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "SCREEN_WAITING",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "SUBSCRIPTION",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "TABLE",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      },
      {
        "feature_key": "TAX",
        "authorize": false,
        "scopes": {
          "permission": false,
          "sector": true,
          "plan": true
        },
        "controls": [],
        "restriction": null,
        "banner": null
      }
    ]
  }
}
{
  "meta": {
    "code": 401,
    "status": "error",
    "message": "Unauthenticated."
  },
  "data": null
}
{
  "meta": {
    "code": 403,
    "status": "error",
    "message": "Unauthorized."
  },
  "data": null
}
{
  "meta": {
    "code": 404,
    "status": "error",
    "message": "Resource not found."
  },
  "data": null
}
{
  "meta": {
    "code": 500,
    "status": "error",
    "message": "Internal server error."
  },
  "data": null
}