Skip to main content

Pay Components

Payroll → Masters → Pay Components (/components) — the master list of every earning, deduction and employer-contribution that can appear on a salary. Requires payroll:read to view, payroll:master to create/edit.

Pay Components pagePay Components page
Pay Components — table with filters and CSV tools

What a component is​

A pay component is a named line on the payroll: BASIC, HRA, PF_EMPLOYEE, PT, TDS and so on. Each has:

FieldMeaning
Code / NameStable identifier (BASIC) and display name
Component TypeEARNING / DEDUCTION / EMPLOYER_CONTRIBUTION / STATUTORY / BENEFIT
CategoryREGULAR / REIMBURSEMENT / STATUTORY / etc.
Calculation TypeHow its value is derived (see below)
Tax TreatmentTAXABLE / EXEMPT (+ exemption rule like HRA_EXEMPTION)
Include in CTCWhether it counts toward Cost-to-Company total
Show on PayslipHidden items (e.g. employer PF) stay hidden on payslip but appear on salary certificate when in CTC
ActiveInactive components are kept for history, not offered on new structures

Calculation types​

TypeWhat you fill inExample
FLATFixed flatAmountConveyance — 1600
PERCENT_OFpercentage + percentOfBase (another component code)HRA — 40% of BASIC
SLABslabRefType → PT (state) or TDS (tax regime). For TDS you may pin a slabRefId (tax regime) or leave blank to follow the employee's declared regimePT — PT slab by state
FORMULAformulaExpression with vocabulary of component codes (validated via checkFormula)GROSS = BASIC + HRA + OTHER
CALCULATORcalculatorKey → a statutory calculator (pf_configs / esi_configs / pt_slabs / statutory_rules). Only STATUTORY category components may use thisPF — PF calculator

Additional controls on the form:

  • Display Order, Description, Rounding Mode (HALF_UP etc.) and Rounding Unit.
  • The form validates locally before the API call: percent needs a base and 0 < pct ≤ 100, flat needs an amount, slab needs a slab set, formula is syntax-checked, calculator needs a key.

Working with the list​

  • Search by code or name; filter by Component Type, Category and Active only.
  • Export CSV — exports what the filters match (not just the visible page). The filter is the scope.
  • Import CSV — Upload → template download → fill → upload. Result shows Rows / Created / Updated / Rejected and per-row failures; ignored columns are warned.
  • Row actions: Edit (/components/:id/edit) and Delete (with confirm; fails if in use).
  • Help overlay (top bar) explains each field and how a file of components moves.

:::tip Payroll-certificate visibility A component hidden on payslip (showOnPayslip = false) is still visible on the salary certificate when includeInCtc is true — employer contributions often work this way. :::