xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse 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
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/Payroll/Employees and salary structures
CONCEPT · Last reviewed

Employees and salary structures

Everything a payroll run computes traces back to three records: the Employee (who is on payroll, for which company, and under what terms), the Resource Compensation record (their cost-to-company and which salary structure applies), and the Salary Structure (the component lines that turn that figure into earnings, deductions and contributions). Get these three right and the run is arithmetic; get them wrong and the run tells you — an employee with no usable compensation record or structure is counted as skipped, not silently paid zero.

Where the records live

In the Payroll app (App Launcher → search Payroll), Resources on the top bar lists the people; Employees is under More where your administrator has added it, otherwise search Employees in the App Launcher. Salary Structures, Salary Components, Payroll Components and Resource Compensations are reached the same way — type the name into the App Launcher search box. All of them are ordinary records: New opens the form, the name opens the detail page, and access follows your security profile.

The employee record

All Employee list in the Payroll app with nine employee records showing employee code, linked Resource, date of joining, employment type, confirmation, probation end and exit dates
The Employee list is where you confirm a person already has a payroll record before creating one: each row is an Employee record keyed to a Resource, with the HR dates that decide eligibility for a run.UI captured
  1. 1

    Employees is reached under More in this app's bar (or by searching the App Launcher); the rest of the Payroll bar holds runs, adjustments, loans, payslips and periods.

  2. 2

    The record name opens the employee detail page with its organisation, dates, pay terms and statutory flags.

  3. 3

    Resource is the person the payroll record extends; bank account, IFSC, PAN and UAN live on that Resource, and payslips and open items are keyed on it.

  4. 4

    Date Of Joining and Employment Type are descriptive HR data; the run does not filter or prorate on them.

  5. 5

    Date Of Exit is stamped by a posted full-and-final settlement; an employee whose status is Exited is left out of every new run.

  6. 6

    New opens the employee form — create the Resource first, because the form's Resource field is required.

Begin on the All Employee list. Each row is one Employee keyed to one Resource, with the employee code and the HR dates. Open a name for the detail page; use New only after confirming the person has no Employee record yet.

New Employee form: Name, Employee Code, Resource, Business Unit, Partner Account and Branch, then a Details group with Employment Type, Payroll Company, Salary Payment Mode, Date Of Joining, Department, Grade, Employment Status and Pay Type
The employee form attaches payroll meaning to an existing Resource: who the person is, which company pays them, and the HR terms. Bank and tax identifiers are not here — they stay on the Resource.UI captured
  1. 1

    Resource (required) — the person record; create it first, because payslips, open items and the payment batch's bank details all key on it.

  2. 2

    Employee Code (required) — the organisation's own staff number, shown on the list beside the name.

  3. 3

    Partner Account (required) and Branch — the legal employer and branch dimension carried onto payroll postings.

  4. 4

    Payroll Company — the run selects employees whose Payroll Company or Partner Account equals the run's company; leave it blank only if Partner Account already is that company.

  5. 5

    Salary Payment Mode defaults to BankTransfer; the payment batch still reads the account number and IFSC from the Resource.

  6. 6

    Employment Status defaults to Active; only Exited excludes a person from runs. Pay Type is descriptive — proration is always by calendar days of the period.

The form's required fields are Name, Employee Code, Resource, Partner Account, Branch, Employment Type and Date Of Joining. The Details group also carries Payroll Company, Salary Payment Mode (defaults to BankTransfer), Department, Grade, Employment Status (defaults to Active) and Pay Type (defaults to Monthly).

Employee detail page with Basic Details, Organization Details, Employment Dates & Status and Statutory & Tax Details groups, header badges for status, type, pay type and joining date, and a TDS Calculation Sheet tab
The saved Employee record is the verification surface before a first run: the linked Resource and payroll company decide inclusion, the status fields decide exit, and the statutory group records the tax regime and applicability flags.UI captured
  1. 1

    Header badges summarise code, employment status, type, pay type and joining date; Active here means the employee is eligible for runs.

  2. 2

    TDS Calculation Sheet opens the read-only salary-tax worksheet for this employee — a preview, it changes no projection.

  3. 3

    Resource links the person record that carries bank account, IFSC, PAN and UAN; postings and payslips are keyed on it.

  4. 4

    Partner Account and Payroll Company: the run selects employees whose Payroll Company or Partner Account equals the run's company.

  5. 5

    Employment dates and Settlement Status: posting a full-and-final settlement sets Settled, Exited and the Date Of Exit.

  6. 6

    Tax Regime drives the salary-TDS projection (New is the default); the PF, ESI, PT and LWF applicability boxes are recorded but not read by the calculation — only Tds Applicable is.

After saving, the detail page groups everything payroll will consult:

GroupFieldsHow payroll uses them
Basic detailsResource, Employee Code, Department, Grade, Employment Type (Full Time, Contract, Consultant, Intern, Permanent), Employment Status (Active, On Notice, Exited), Pay Type (Monthly, Hourly, Daily, Piece Rate), Salary Payment Mode (Bank Transfer, Cash, Cheque)Resource keys every posting, payslip and open item. Only Employment Status = Exited changes the calculation — it excludes the person from new runs. Employment Type, Pay Type and Payment Mode are recorded for HR and reporting; the calculation prorates by calendar days regardless of pay type, and the salary payment batch always reads bank details from the Resource.
Organization detailsPartner Account, Payroll Company, Business Unit, Branch, Cost CenterA run includes employees whose Payroll Company or Partner Account equals the run's company. Branch and Business Unit are dimensions carried onto postings. Department and Cost Center are declared as lookups without a backing entity, so they may offer no values.
Employment dates & statusDate Of Joining, Confirmation Date, Probation End Date, Date Of Exit, Settlement Status (Active, Exit In Process, Settled)Informational until exit: posting a full and final settlement sets Settlement Status to Settled, Employment Status to Exited and fills Date Of Exit from the last working day.
Statutory & tax detailsTax Regime (Old Regime / New Regime), PF Wage Cap Override, Pf / Esi / Pt / Tds / Lwf ApplicableTax Regime selects the regime the salary-TDS projection applies (New when blank) and Tds Applicable unticked skips the projection. The PF, ESI, PT and LWF boxes and the PF wage-cap override are stored as configuration of record but not read by the calculation — whether a person pays PF or ESI is decided solely by the components on their salary structure.

The detail page also has a TDS Calculation Sheet tab — a read-only worksheet that previews the employee's salary-tax computation without writing a projection (see Income tax on salary).

The payment and filing identity — bank account number, IFSC, PAN, UAN, Aadhaar, designation — lives on the linked Resource, not on the Employee. That is deliberate: payroll postings, loans, expense claims and open items are all keyed on the Resource, so one identity reconciles across modules.

Resource compensation records

A Resource Compensation ties a Resource to a Salary Structure with a CTC amount, an Effective From date (optionally Effective To), an Is Active flag and a Revision Reason. When a run calculates, it takes the employee's active compensation record with the latest Effective From that names a salary structure — so a raise is a new record with a later Effective From, and history is preserved rather than overwritten. Effective To is not consulted: deactivate a record (Is Active off) if it must stop applying before a newer one exists. An employee with no such record is skipped and counted on the run header.

The CTC figure is the basis for any component whose calculation is a percentage of CTC, and it is what the salary-TDS projection uses as the monthly earning for a brand-new employee who has no calculated months yet — so enter it in the same unit your structures assume.

Salary structures and their lines

A Salary Structure is a reusable template — "Field staff", "Managers", "Contract" — holding an ordered list of Salary Component lines. The structure header carries Structure Name, Effective From, Pay Frequency (Monthly) and Is Active; of these, only the lines matter to the run — the header's dates and frequency are descriptive.

Each line has a Sequence, a Component Name, a Calculation Type, a Value, optional Min Amount / Max Amount, an Is Active flag and a link to a Payroll Component master. The run loads a structure's active lines in sequence order and computes each:

  • Fixed — the entered Value.
  • Percentage — Value per cent of the compensation record's CTC when Is Percentage of CTC is ticked, otherwise Value per cent of the component named in Percentage Of, which must appear earlier in the sequence (basic pay first, then the allowances that reference it). A basis that cannot be resolved yields zero.
  • Slab on a component whose statutory type is PT — resolved against the professional-tax slab table for the gross accumulated by the lines before it in the sequence (so place PT after the earnings), with the February amount when the period ends in February. See Statutory deductions.
  • A component whose statutory type is TDS takes the month's persisted tax projection instead of a formula. See Income tax on salary.
  • Formula and Manual (and Slab on anything other than PT) fall back to the stored Value — the Formula text is not evaluated.

After the amount is computed, Min/Max clamps apply and it is rounded to two decimals. Components flagged proratable are then scaled by payable days over calendar days when the employee has loss-of-pay days in the period; the shortfall on earnings and reimbursements is recorded as the employee's loss-of-pay amount. Percentage components that depend on another component always use its full, un-prorated amount as the basis, so proration does not compound through the chain.

Two things the line stores but the run ignores: the line's Effective From / Effective To window (all active lines apply in every period — deactivate a line to retire it) and, when a Payroll Component master is linked, the legacy per-line Component Type, Statutory Flag, Taxable and Pro-rata fields, which the master overrides.

The payroll component catalog

Structure lines do not define ledger behaviour themselves — they reference a Payroll Component master, and the master owns what the component is:

On the component masterWhy it matters
Component Code, Component Type: Earning, Deduction, Employer Contribution, ReimbursementDecides which side of the run's totals the amount lands on — earnings and reimbursements raise gross, deductions raise total deductions, employer contributions cost the employer without touching net — and which side of the accrual journal
Statutory Type: PF, ESI, PT, TDS, LWF, GratuityPT and TDS switch the calculation rule described above; PF, ESI and TDS also roll the amount into the run detail's PF / ESI / TDS totals that the register and challans read
Taxability: Taxable, Non Taxable, Partially TaxableCarried onto every calculated line for reporting
GL Account and Payable GL Account (both required)The expense account debited and the liability account credited at posting — a missing mapping fails the post by name rather than guessing
Is Proratable, Sort OrderWhether loss-of-pay days scale the amount; the order of lines on the payslip and register
Display On Payslip, Is Part Of Gross / CTC / Net Pay, Is Arrear Eligible, Formula Expression, Based On Component CodesClassification flags. None of these changes the calculation today: totals follow Component Type, and no formula is evaluated

Because the catalog is shared, "Basic", "HRA" or "PF employee contribution" is defined once — its accounts included — and every structure that uses it stays consistent.

Common questions

Why was an employee skipped by the run?

Because the run could not price them: they have no active Resource Compensation record naming a salary structure, or the structure has no active component lines. The run header shows total, processed and skipped counts, so a skip is visible immediately. Fix the compensation record or the structure and recalculate — recalculation replaces the earlier pass.

How do I give someone a raise mid-year?

Create a new Resource Compensation record for the person with the new CTC and the new Effective From date, leaving the old one in place. The run always picks the active record with the latest Effective From, and the old record remains as history. If the raise also changes the pay mix, point the new record at a different salary structure.

Where do bank details for salary payment come from?

From the Resource record — bank account number and IFSC — read at the moment the payment batch is generated, and shown masked (last four digits) on the payslip. If they are missing, the batch line is still created without them, so keep the Resource current before pay day.

Can two companies in one tenant have different structures?

Yes. Employees carry a Payroll Company, and runs are per company — each legal entity has its own components, structures, professional-tax slabs and control accounts. Salary tax rule tables can be shipped once as shared rows and overridden per company only where they genuinely differ.

I ticked "Pf Applicable" — why is no PF deducted?

Because applicability flags are not consulted by the calculation. PF is deducted only when the employee's salary structure contains a component with statutory type PF — normally a Percentage line based on the basic component, clamped with Max Amount to the wage ceiling. The same applies to ESI and LWF; see Statutory deductions and challans.