A company in T-Gate's platform represents the highest level of organizational structure. It encompasses and organizes all other entities within the system, including brands, branches, menus, and menu items. Companies serve as the primary management unit, allowing for centralized control and oversight of various sub-entities and their operations.
For more details on the hierarchical structure and how different entities relate to each other, please refer to General → High Level Structure Guides.
Model Attributes
| Attribute | Description | Type |
|---|---|---|
| id | The unique identifier of that table entity. | Integer |
| name_en | Company name in English. | String |
| name_ar | Company name in Arabic. Optional — may be null. | String or Null |
| logo | URL of the company logo. null if no logo has been uploaded. | String or Null |
| website_url | The company's website. Optional — when present, T-Gate enforces a valid URL format. | String or Null |
| commercial_record | The company's commercial registration number. Unique across the platform and at least 8 characters long. | String |
| country | JSON object that represents the country the company is registered in. May be null if the company has not been associated with a country. | Object or Null |
The Company Is ImplicitThe
GET /partner_portal/v1/companyendpoint does not take a path parameter. T-Gate resolves the company from the access token presented by the partner (the token's resource owner), so partner integrations should treat this as "read the company tied to this token" rather than "read a company by id".
country Embed ShapeThe embedded
countryobject follows the partner portal's nested country shape —name_en,name_ar,dial_code, andshort_code. It does not include the country'sidor localizedname.Use
short_code(e.g.SA,EG) as a stable identifier when matching the company's country against external systems. See the countries documentation for the full country model.
Company Ownership Of Brands And BranchesEvery brand, branch, menu, and order returned by the partner portal is scoped to the partner's company through the partner application's integration scopes. There is no way to read or modify data belonging to a different company through the same OAuth credentials.
See the integration scopes documentation for how individual brand/branch/menu combinations are granted to a partner application.
commercial_record Is Globally Unique
commercial_recordis enforced to be unique across all companies on the T-Gate platform. Two companies cannot share the same commercial registration number, so the value can be used as a stable, human-meaningful identifier for the company when correlating records with external systems.
Relationship With Other Resources
The company payload itself does not embed lists of its brands, branches, menus, or orders — those are retrieved through their own dedicated endpoints. Specifically:
- Brands —
GET /partner_portal/v1/brandsreturns the brands granted to the partner application under this company. - Branches —
GET /partner_portal/v1/branchesreturns the branches under those brands. - Menus —
GET /partner_portal/v1/menusreturns the menus configured for the company's brands and branches. - Orders — created and read through
POST /partner_portal/v1/ordersandGET /partner_portal/v1/orders/:idagainst the granted brand/branch/menu combinations.
All of these endpoints implicitly filter their results to the partner's own company, so partner integrations do not need to pass a company_id filter manually.
