Companies

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

AttributeDescriptionType
idThe unique identifier of that table entity.Integer
name_enCompany name in English.String
name_arCompany name in Arabic. Optional — may be null.String or Null
logoURL of the company logo. null if no logo has been uploaded.String or Null
website_urlThe company's website. Optional — when present, T-Gate enforces a valid URL format.String or Null
commercial_recordThe company's commercial registration number. Unique across the platform and at least 8 characters long.String
countryJSON 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 Implicit

The GET /partner_portal/v1/company endpoint 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 Shape

The embedded country object follows the partner portal's nested country shape — name_en, name_ar, dial_code, and short_code. It does not include the country's id or localized name.

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 Branches

Every 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_record is 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:

  • BrandsGET /partner_portal/v1/brands returns the brands granted to the partner application under this company.
  • BranchesGET /partner_portal/v1/branches returns the branches under those brands.
  • MenusGET /partner_portal/v1/menus returns the menus configured for the company's brands and branches.
  • Orders — created and read through POST /partner_portal/v1/orders and GET /partner_portal/v1/orders/:id against 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.