xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField Sales & SFACRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
Auto DMSConsumer Goods DMSSales Force Automation (SFA) FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Platform Concepts/Tenants, companies and organizations
CONCEPT · Last reviewed

Tenants, companies and organizations

A tenant is your organization's own, isolated xMatix environment, and the companies inside it are the legal entities your organization transacts through. Tenant isolation is built in and needs no setup. Companies, branches and company-level access are things your administrator configures on one screen, Org settings, so that xMatix matches the real shape of the business: one company or several, one location or many, and whether users are kept to their own company's records.

An earlier capture of Org settings under Setup → Feature Hub → Administration, showing the General tab with the default locale, currency, time zone and date format fields above the Workspace interface switches, and the Custom settings, Companies and Company access tabs. The screen has since gained the Organisation shape switches and moved Save to the page header.

Overview

Three layers decide what a person sees in xMatix:

LayerWhat it separatesWho controls it
TenantYour organization from every other organizationThe platform — always on, cannot be configured
Organization shapeWhether the company and branch fields appear at allYour administrator, on Org settings → General
Company accessWhich companies each user may see or post intoYour administrator, on Org settings → General and Company access

Ordinary record-level security sits on top of all three: a user still needs permission on the entity and access to the record.

A tenant is your organization's environment

Every user account, record, customization and setting belongs to exactly one tenant. Tenants are strictly isolated: every read and every save is scoped to your tenant, your data is never visible to another organization, and no report, search, integration or AI feature crosses that boundary. No setting on this page can widen it. Sandboxes are separate copies of your tenant for testing.

Companies within a tenant

Many organizations transact through more than one legal entity: group companies, partner firms, distributors keeping their own books. xMatix models each of these as a company inside your tenant, and keeps three ideas apart:

  • A partner account is just an account. Any account can have Partner Account ticked on its form. A partner account can exist and never transact.
  • Onboarding makes it a company. A partner account becomes a company when it has a company profile, created by Onboard company on the Companies tab or by automatic onboarding (see Configuration). Only an onboarded company can be named on a transaction once company access is restricted.
  • Company access is a permission layer on top. Users can then be restricted to particular companies.

On orders, invoices, journals and other transactions, the company is the Partner Account field. Some masters are shared by every company: items and customer accounts carry no company. Others, such as price lists, tax groups and branches, carry a company and can be company-specific. Transactions and balances are kept per company, which is what makes per-company statements possible.

Which company a new record gets

When a user saves a new record that names no company or branch, xMatix fills them in, in this order:

  1. the document's own source, where it has one (for a sales order, the visit or visit plan it was taken on);
  2. the record owner's default company from the Company access tab;
  3. the company and branch on the owner's resource record;
  4. if the organization has exactly one onboarded company, that company.

A value the user picked themselves is never replaced.

Organization shape: show only the dimensions you use

Under Organisation shape on the General tab, two independent switches decide whether the company and branch dimensions appear anywhere in the product. Both are on by default.

  • We run multiple companies. Off: the company fields are hidden from every screen, list, report and dashboard, and the organization's single company is stamped on new records automatically. Partner-only screens (partner resources, stores, microsites, service areas, settlements, targets and account mappings) are hidden too.
  • We operate from multiple locations. Off: branch fields are hidden everywhere and records are saved without a branch. Branches, branch postal codes, branch time slots and transfers are hidden too. See Branches.

These switches control what is shown, not who may see which data. A one-company, many-branch dealer and a many-company, one-branch group are both valid shapes.

Restricting users to their own companies

Restrict users to their own companies (General tab) is the data-access switch. When it is on, users only see and post to the companies they have been granted, and transactions may only name onboarded companies. Access is recorded per user on the Company access tab:

  • View (see only) — the user may see the company's records, for example for consolidated reporting, but not post into it.
  • Transact (see + post) — the user may see and post into the company.

A common pattern is Transact in the user's home company and View across the rest. Two things bypass the restriction entirely: the Access all companies switch on the user, and the equivalent flag on a security profile (the built-in System Admin profile carries it). No setup screen edits the profile flag.

Two facts matter before you rely on it:

  • Enforcement also needs the platform switched on. The org switch takes effect only once platform-level enforcement is enabled for your environment by the xMatix operations team. Until then, Company access rows record intent but restrict no one. Test with a representative restricted user before treating it as a control.
  • It only narrows. The restriction applies to records that carry a company, and it never widens what record-level security allows.

Prerequisites

  • The setup.org.settings.manage capability for the General and Custom settings tabs.
  • The setup.companies.manage capability to onboard companies, change company settings and use the Company access tab.
  • For Enable finance, a chart-of-accounts template to seed from. For Set default bank, a ledger account with control type Bank in that company's chart.

Procedure

Step 1 — Open Org settings

Go to Setup → Feature Hub → Administration → Org settings. The page opens on General if you hold setup.org.settings.manage, otherwise on Companies.

Step 2 — Set the organization defaults

On General, fill in Default locale, Default currency (ISO code), Default time zone and Default date format. A user's own locale and time zone override the defaults. Select Save in the page header; Discard restores the last saved values. Both stay disabled until you change something.

Step 3 — Set the organization shape

Under Organisation shape, turn off We run multiple companies or We operate from multiple locations only if the organization genuinely has one company or one location, then select Save.

  • With no company onboarded yet, turning off We run multiple companies creates the organization's single company for you, named after the organization.
  • With more than one company onboarded, the save is refused (see Common problems).

Step 4 — Onboard a company

On Companies, select Onboard company in the page header. Enter Name (required), and optionally Label, Locale, Currency (ISO code) and Document name prefix (up to 10 characters), then select OK. xMatix creates a new partner account and its company profile together, and the company appears in the list with Finance showing Off.

Onboard company always creates a new account. To make an existing partner account a company, use automatic onboarding (see Configuration).

Step 5 — Enable finance for the company

In the company's row, select Enable finance, choose a template (shown as name, country and version) and select Seed Chart of Accounts. The company's chart of accounts is seeded, posting to the general ledger is turned on for it, and the Finance column shows the template. The action disappears once finance is on, and running it on an already-seeded chart changes nothing.

Step 6 — Set the default bank and withholding timing

  • Set default bank (or Change default bank): choose one of the company's Bank control accounts and select Save. Payroll's payment batch pays from it when a disbursement names no bank account. A company with more than one bank account must set it, or the payment batch stops.
  • Withholding tax timing: choose At invoice posting, At receipt, or Use organisation setting to follow the Finance module setting. It decides when tax a customer withholds from this company's invoices is recognised. Changing it never re-posts invoices already recognised.

Step 7 — Turn on company restriction

On General, switch on Restrict users to their own companies and select Save. It cannot be on while We run multiple companies is off.

Step 8 — Grant company access

On Company access, pick a user in Select a user. The table lists their access rows.

  1. Select Grant company access in the page header.
  2. Choose the Company (only onboarded companies are offered), optionally a Branch (leave empty for the whole company), and the Access kind.
  3. Tick Use as the user's default company if new records the user owns should be prefilled with it. Only a Transact access can be the default, and a user has one default.
  4. Select OK.

To change the default later, use Make default or Clear in the Default column. To take access away, use Remove access and confirm.

To let a user see everything, switch on Access all companies next to the user picker. Their per-company rows are then ignored for access, but you can still set a Default company for prefilling new records.

Step 9 — Add a custom setting

On Custom settings, select Add setting. Enter Key (required), an optional Namespace to group it (for example sales), the Data type, the Value, a Description and Active, then select OK. Use Edit or Delete in the row to change or remove it.

Fields

General tab

FieldWhat it meansNotes
Default localeLanguage and number formatting, for example en-INA user's own locale overrides it. Formulas and scripts read it as Org.Locale
Default currency (ISO code)Organization currency code, for example INRRead as Org.Currency
Default time zoneTime zone id, for example Asia/KolkataA user's own time zone overrides it. Read as Org.TimeZone
Default date formatDisplay format, for example dd-MM-yyyy
Restrict users to their own companiesCompany data access on or offOff by default. Cannot be on while We run multiple companies is off
We operate from multiple locationsShow the branch dimensionOn by default
We run multiple companiesShow the company dimensionOn by default
Enable tabbed interfaceWorkspace tabs on entity screensOn by default. Saved as soon as you flip it
Enable nested tabbed interfaceRelated records open as nested tabsOn by default. Needs the tabbed interface
Keep the first tab loadedThe list a record was opened from stays loadedNeeds the tabbed interface

Onboard company

FieldWhat it meansNotes
NameThe company's nameRequired. Also names the new partner account
LabelDisplay nameDefaults to Name
LocaleThe company's localeOptional
Currency (ISO code)The company's currencyOptional
Document name prefixA short code for the companyOptional, up to 10 characters. It is stored on the company; document numbering itself is set per entity under Document numbering

Grant company access

FieldWhat it meansNotes
CompanyThe onboarded companyRequired
BranchA branch within itOptional; empty means the whole company. Hidden when the branch dimension is off
Access kindTransact (see + post) or View (see only)Defaults to Transact
Use as the user's default companyPrefill new records with this companyTransact only; one per user

Custom settings

FieldWhat it meansNotes
KeyThe setting's nameRequired
NamespaceOptional groupThe branding namespace is refused here; it is managed on the Branding screen
Data typeString, Number, Boolean, DateTime or JsonDecides how formulas read the value
ValueThe setting's value
DescriptionWhat it is for
ActiveWhether formulas and scripts see itInactive settings are ignored

Business rules

  • Tenant isolation is applied to every read and save and cannot be configured.
  • Restrict users to their own companies cannot be saved on while We run multiple companies is off.
  • Turning We run multiple companies off needs zero or one onboarded company. With none, the single company is created; with two or more, the save is refused.
  • With restriction on and platform enforcement active, a save is refused when it names a partner account that is not an onboarded company. This applies to every user, including those with access to all companies.
  • With restriction on and platform enforcement active, a user can create, change or re-key a record only in companies where they hold Transact. Both the old and the new company are checked.
  • A user's company access is re-read within about 90 seconds of a change. Changes made on the Company access tab apply to that user straight away.
  • Automatic onboarding never creates the organization's first company, and never re-onboards a company whose profile was removed.

Example

A distributor runs two legal entities, Riverbend Trading Pvt Ltd and Riverbend Logistics LLP, from four branches. Riverbend Trading is already onboarded.

  1. The administrator selects Onboard company, enters Name "Riverbend Logistics LLP", Currency INR, and selects OK. The company appears with Finance Off.
  2. They select Enable finance, choose the India template and select Seed Chart of Accounts. Finance now shows the template.
  3. They select Set default bank and choose the logistics company's current-account ledger.
  4. On Company access they pick a sales user and grant Riverbend Trading with Transact and Use as the user's default company ticked, then Riverbend Logistics with View.
  5. They switch on Restrict users to their own companies and select Save.

Once platform enforcement is active, the sales user's new orders are prefilled with Riverbend Trading. They can open Riverbend Logistics invoices but cannot save one.

Training

Practice exercise

In a sandbox, onboard a company called "Practice Co", grant a test user View on it and Transact on your main company as their default, then switch on Restrict users to their own companies.

Expected result: the Company access table shows two rows for the user, with Default on the Transact row. Signed in as that user, new records are prefilled with your main company. Where platform enforcement is active, saving a record in Practice Co fails with "You do not have permission to transact on the selected company."

Quick reference

  • Everything on this page lives in Setup → Feature Hub → Administration → Org settings.
  • Tenant isolation is automatic; company and branch handling is configured.
  • Organisation shape switches hide dimensions; they do not restrict data.
  • Restrict users to their own companies restricts data, and needs platform enforcement to bite.
  • Onboard company always creates a new partner account.
  • Enable finance seeds the chart of accounts once and turns on posting.
  • View = see only; Transact = see and post; only Transact can be the default company.
  • Access all companies bypasses per-company rows but keeps the default company for prefilling.

Permissions

TaskNeeds
See or change the General and Custom settings tabssetup.org.settings.manage
See the Companies listEither capability
Onboard a company, enable finance, set default bank or withholding timingsetup.companies.manage
See and change the Company access tabsetup.companies.manage

A user with neither capability sees "Permission required" on the page. Capabilities are granted through security profiles.

Configuration

SettingWhereWhat it affects
Organization defaultsOrg settings → GeneralLocale, currency, time zone and date format users inherit; formula variables Org.Locale, Org.Currency, Org.TimeZone
Organisation shapeOrg settings → General → Organisation shapeWhether company and branch fields and screens appear anywhere
Company restrictionOrg settings → General → Restrict users to their own companiesCompany-level data access for every user
Workspace interfaceOrg settings → General → Workspace interfaceWorkspace tabs for everyone; saved as soon as you flip a switch, and other sessions pick it up on refresh
CompaniesOrg settings → CompaniesOnboarding, finance, default bank and withholding timing per company
Company accessOrg settings → Company accessPer-user View/Transact rows, default company, Access all companies
Automatic onboardingOrg settings → Custom settings, Namespace companies, Key autoOnboardPartnerAccounts, Data type BooleanWhen on, saving an active partner account that has no company profile onboards it. Not set = on exactly when Restrict users to their own companies is on. Never applies while We run multiple companies is off, and never creates the first company
Custom settingsOrg settings → Custom settingsValues that formulas and business rules read with Org.Get("key"), or Org.Get("namespace", "key") for a namespaced setting

Common problems

"Turn off "Restrict users to their own companies" before saying the organisation runs a single company"

You tried to turn off We run multiple companies while company restriction is on. Users cannot be restricted to a company they are never shown. Turn off Restrict users to their own companies first.

"This organisation has more than one company onboarded, so "we run a single company" is ambiguous"

Two or more companies are onboarded, so xMatix cannot tell which one to stamp on every document. Keep We run multiple companies on.

"Transactions can only be recorded for a partner that has been onboarded as a company."

The record names a partner account that has no company profile. Onboard it: with automatic onboarding on, save the active partner account again; otherwise create the company with Onboard company.

"You do not have permission to transact on the selected company."

The user lacks Transact on the record's company. Grant Transact on the Company access tab, or pick a company the user may post into.

A restricted user still sees every company

Check the user's Access all companies switch and their security profiles (System Admin bypasses restriction). If neither applies, platform enforcement may not yet be active for your environment, in which case access rows restrict no one.

No Bank control account

Set default bank shows this when the company's chart has no ledger account with control type Bank. Create one in the chart of accounts first.

The company or branch field has disappeared

An administrator turned off We run multiple companies or We operate from multiple locations. Turn it back on if the dimension is needed.

Common questions

Is our data separate from other organizations' data?

Yes. Every tenant is isolated: all of your records, users and configuration are scoped to your tenant, and the platform enforces that scoping on every read and save. No user of another tenant can see your data, and no report, search, integration or AI feature crosses tenant boundaries. Company restriction works inside your tenant and is deliberately softer, because cross-company visibility within one organization is often legitimate for consolidation and administration.

Do we need several companies?

Only if your organization transacts through more than one legal entity and needs per-company books or per-user company access. If you are one company, turn off We run multiple companies: the company fields disappear and your single company is stamped on every record. If you grow later, turn it back on, onboard the new company, and decide whether to restrict users.

What is shared across companies and what is separate?

Users, security profiles, customizations, automation and Org settings belong to the tenant, not to any one company. Items and customer accounts are shared by all companies. Price lists, tax groups, branches and similar masters carry a company and can be shared or company-specific. Transactions and balances are always kept per company, so each company can produce its own statements.

Can one user work in more than one company?

Yes. A user can hold access to several companies with a different kind in each, for example Transact in one and View in the others, and one Transact company can be their default for new records. Users who need everything can be given Access all companies, which bypasses the per-company rows while still letting you set a default company.

Does each company get its own chart of accounts?

It can. Enable finance seeds a chart of accounts for one company from a template and turns on posting for it. Each company is enabled separately, and companies can use the same template. Document numbering is set per entity under Document numbering; the company's Document name prefix is stored on the company but is not part of those settings.

Can a company be removed?

The Companies tab has no remove action. Once a company has been onboarded, plan on keeping it. A company whose profile has been removed is not onboarded again automatically.