Chapter 07
Payroll and payslips
This chapter covers the whole pay cycle in MusterHR: setting up each person's salary structure, creating a monthly payroll run, generating and adjusting payslips, publishing them to employees and recording the payment. It also covers the other end — My payslips, where every employee downloads their own payslip as a PDF. If you only want your own payslips, skip to My payslips.
This chapter covers the whole pay cycle in MusterHR: setting up each person's salary structure, creating a monthly payroll run, generating and adjusting payslips, publishing them to employees and recording the payment. It also covers the other end — My payslips, where every employee downloads their own payslip as a PDF. If you only want your own payslips, skip to My payslips.
Who can do what
Payroll in MusterHR is Finance-managed. HR Ops does not get access to salaries or payslips, even though HR can see other sensitive fields on an employee record — that separation is deliberate.
| Role | Salary structures | Payroll runs and payslips | Own payslips |
|---|---|---|---|
| Super Admin | Yes | Yes | Yes |
| Finance | Yes | Yes | Yes |
| HR Ops | No | No | Yes |
| Manager | No | No | Yes |
| Employee | No | No | Yes |
| Reporting | No | No | Only through its own link — the Reporting role alone does not put My payslips in the sidebar |
If Payroll is missing from your sidebar under Payroll & reports, you do not hold the Finance or Super Admin role. See Roles and permissions. Every rule here is enforced on the server; hiding the menu item is only tidiness.
Every time someone other than the employee opens a salary structure, opens a payslip or downloads a payslip PDF, it is written to the audit log with the amount. See Reports, settings and administration.
Salary structures
A salary structure is the recurring monthly shape of somebody's pay: what they earn, what is deducted, and what the company pays on top. Payroll copies the current structure into every payslip it generates, so this is the thing to get right before you run anything.
Go to Payroll & reports → Payroll, then click Salary structures (or open /payroll/salary from the ⌘K command palette).
The list shows every active employee with their type and Monthly CTC. Under an amount you may see one of two notes:
| What you see | What it means |
|---|---|
| An amount with no note | This person has a saved salary structure. Payroll will use it. |
| "from the employee record · no structure yet" | No structure. Payroll will fall back to the Monthly salary / stipend figure on their employee record, as a single line. |
| "— no structure or pay on record — payroll will skip them" | Nothing to pay against. This person gets no payslip at all until you fix it. |
Use Find an employee to search by name or employee code, and the Only employees without a structure (N) checkbox to see just the people still to set up. Clear filters resets both.
Creating a structure
- Click Set up (or Edit) on the person's row.
- Set Effective from. It defaults to today in IST.
- Add a Note (optional) — for example "Annual revision" or "Promotion to Senior Engineer".
- Fill in a Monthly amount (₹) against each seeded component, and delete rows that do not apply using the × at the end of the row.
- Add rows you need with + Earning, + Deduction or + Employer contribution.
- Check the totals strip at the bottom, then click Save salary structure.
Each row has a Type, a Component name, a Code (a short reference like BASIC; if you leave it blank MusterHR derives one from the label), a monthly amount, and — for earnings only — a Taxable tick.
At least one row with a label is required, and no amount may be negative, otherwise saving returns "Add at least one salary component." or "Amounts cannot be negative."
Earnings, deductions and employer contributions
| Type | Effect | Typical use |
|---|---|---|
| Earning | Adds to gross earnings, and to net pay | Basic, HRA, Special Allowance, stipend, contract fee, reimbursement |
| Deduction | Subtracts from net pay | Employee PF share, TDS, Professional Tax, advance recovery |
| Employer contribution | Adds to Monthly CTC only | Employer PF share, ESI, gratuity provision |
Employer contributions never touch net pay, and never appear in gross earnings. They are what the company spends on top of the salary. The run page says it in the same words: "Employer contributions are paid on top and are not included in these totals."
The Taxable tick only applies to earnings. Untick it for money that is repaid rather than earned — a reimbursement is money the person genuinely receives, so it raises net pay, but it stays out of the taxable base. Deductions and employer contributions never enter taxable gross, so their Taxable cell shows a dash.
What "Monthly CTC" means here
The totals strip under the table gives you four figures for one month:
| Figure | How it is worked out |
|---|---|
| Gross earnings | The sum of every earning row (with "taxable ₹…" underneath when some earnings are untaxed) |
| Deductions | The sum of every deduction row |
| Net pay | Gross earnings minus deductions — "paid to the employee". Never below ₹0.00 |
| Monthly CTC | Gross earnings plus employer contributions |
An example. Priya Sharma in Engineering is set up as:
| Type | Component | Monthly amount |
|---|---|---|
| Earning | Basic | ₹35,000.00 |
| Earning | House Rent Allowance | ₹17,500.00 |
| Earning | Special Allowance | ₹17,500.00 |
| Deduction | Provident Fund | ₹1,800.00 |
| Deduction | Professional Tax | ₹200.00 |
| Deduction | Tax Deducted at Source | ₹2,400.00 |
| Employer contribution | Employer PF | ₹1,800.00 |
| Employer contribution | Gratuity provision | ₹2,400.00 |
That gives gross earnings ₹70,000.00, deductions ₹4,400.00, net pay ₹65,600.00 and Monthly CTC ₹74,200.00. Priya receives ₹65,600.00; the company spends ₹74,200.00.
The seeded components differ by employment type
When you set up someone for the first time, MusterHR seeds the table from their employment type and shows a short explanation above it. These are starting points to edit, not statutory advice.
Full-time employee — "Standard salaried structure — enter a monthly amount against each component and remove any that do not apply."
| Type | Component | Note shown under the row |
|---|---|---|
| Earning | Basic | The base of the salary — other components are usually set against it |
| Earning | House Rent Allowance | Paid towards rent; part of it may be exempt from tax |
| Earning | Special Allowance | The balance that brings gross earnings up to the agreed figure |
| Deduction | Provident Fund | The employee's own share — the employer's share is an employer contribution |
| Deduction | Tax Deducted at Source | Income tax withheld each month |
| Deduction | Professional Tax | State levy — the amount depends on the state |
Nothing employer-side is seeded, and the page tells you so: "Employer contributions (employer PF, ESI, gratuity) are not seeded. Add them as employer contributions if the CTC you quote includes them." If your offer letter quotes a CTC that includes employer PF and gratuity, add those rows yourself or your Monthly CTC will read low.
Intern — "Interns are paid a stipend, not a salary — no PF, ESI or HRA."
| Type | Component | Note shown under the row |
|---|---|---|
| Earning | Internship Stipend | The fixed monthly stipend |
| Earning | Performance Bonus | Leave at zero — add a one-off bonus as an adjustment on that month's payslip |
| Earning | Other Incentive | Referral, project or milestone incentive |
| Earning | Reimbursement | Repayment of an expense, not income (not taxable) |
| Deduction | Deduction / Adjustment | Advance recovery, excess paid, asset damage |
| Deduction | Tax Deducted at Source | Usually nil — confirm before entering an amount |
The page adds: "PF and ESI are omitted: they apply to employees, not stipendiary trainees. Leave TDS at zero unless your CA confirms the stipend is taxable." Whether a stipend is taxable depends on whether the internship is employment-like or genuinely educational — that is a question for your CA, not for this software.
Contractor seeds a Contract Fee, Reimbursement, Deduction / Adjustment and TDS (contract), and notes that contractor TDS is normally u/s 194C. Consultant is the same shape with a Professional Fee and TDS (professional), normally u/s 194J. In both cases MusterHR tells you to confirm the rate with your CA.
Revisions and effective dates
Saving never edits a structure in place. It supersedes it: the existing structure becomes revision N and the new one becomes revision N+1, effective from the date you set. The button reads Save as revision 2, Save as revision 3 and so on, and a Revision history card appears once there is more than one, listing every revision with its start date and Monthly CTC, with the live one badged Current.
Because a new revision needs its own date, Effective from resets to today rather than carrying the old revision's date forward. If you pick a date earlier than the current revision's start, a warning appears — "This date is before revision N began (…), so the new revision would be backdated. Check the date before saving." — but it does not stop you saving.
Two things to be careful about.
- The effective date is a record of when the change applies. It does not decide which revision a payroll run picks up. A run always copies whichever revision is current at the moment you click Generate payslips, whatever month the run is for. Saving a revision dated 1 October will therefore be used by a September run generated afterwards.
- Revisions cannot be deleted. The only way to change a structure is to save a further revision on top of it.
Worth knowing. A blank monthly salary and a genuine zero are stored the same way, so an unpaid intern and someone whose pay was never agreed both render as ₹0.00. Check the person's record rather than trusting the zero.
The payroll run
One run covers one month, and a month can only ever have one run. Go to Payroll & reports → Payroll.
Run statuses
| Status | What it means | What you can still do |
|---|---|---|
| Draft | The run exists and its figures can change | Generate payslips, adjust individual payslips, finalise, cancel |
| Finalised | The figures are locked | Publish to employees, mark paid, cancel |
| Paid | Closed. "Its figures and payslips can no longer be changed" | Nothing — view and download only |
| Cancelled | Abandoned. Payslips cancelled, totals zeroed, the month blocked for good | Nothing |
Each payslip inside a run carries its own status: Draft while the run is being prepared, Published once it has been released to the employee, Cancelled if the run was cancelled.
The order of work
- Create the run. Pick the Month and Year — they default to the current month in IST — and click Create run. You get "Payroll run created. Open it to generate payslips." If a run already exists you are told so, including the reminder that "A month keeps its run even after it is cancelled."
- Open it from the runs table using Open →.
- Click Generate payslips. This copies each active employee's current salary structure into the run, one payslip each. You get back "This run now holds 12 payslips."
- Check the totals and the list. Three cards show Total gross earnings, Total deductions and Total net pay across the run. Use Find a payslip to search by name or employee code.
- Adjust anyone who needs it — see Adjusting one payslip. Adjustments are only possible now, while both the run and the payslip are drafts.
- Click Finalise. You get "Run finalised. Its figures are locked — publish the payslips when you are ready."
- Click Publish to employees, then confirm. This cannot be undone.
- Set the Pay date and click Mark paid once the salaries have actually left the bank.
Generating payslips
Generation includes every employee whose status is Active. People still on Onboarding, on notice as Exited, or with no salary structure and no monthly amount on their employee record are skipped silently.
If nothing is generated you get: "Nothing generated — no active employee has a salary structure, or a monthly amount on their employee record to fall back on. Set those up first."
You can click Generate payslips again as people are added — anyone who already has a payslip in the run is skipped, so nobody is duplicated and nobody's existing figures are overwritten. That also means editing a salary structure after generating does not change this month's payslips. To change this month, use an adjustment.
Worth knowing. An employee added through Add employee can get stuck on "Onboarding" and never reach Active, which quietly keeps them out of payroll. Inviting people through Onboarding is the route that works end to end — see Hiring, offers and onboarding.
Finalising
Finalise locks the figures. It refuses if the run has no payslips ("Generate payslips before finalising."). After finalising you can no longer generate or adjust anything; the only way back is to cancel the run, which cannot be undone either.
Publishing to employees
Publish to employees appears once the run is finalised. The confirmation says exactly what happens: "Every employee in this run gets access to their payslip straight away and is notified. Publishing cannot be undone — correct any figures before you publish."
Confirming moves every draft payslip in the run to Published, and sends each employee an in-app notification, "Payslip available — Your payslip for August 2026 is ready", linking to My payslips. There is no unpublish and no way to recall a payslip. Employees with no linked user account get no notification and cannot see the payslip until the accounts are linked.
Publishing does not change the run's status — it stays Finalised. Once everything is published the button is replaced by a Published to employees badge.
Marking paid
Mark paid takes a Pay date — the date the salaries left the bank, defaulting to today in IST — and closes the run. A paid run cannot be cancelled, and its payslips can no longer be published. Publish first, then mark paid; the page warns you when payslips are still unpublished.
Cancelling a run
Cancel run sits at the bottom of the actions card while the run is Draft or Finalised. It is permanent and it does three things at once:
- Every payslip in the run is set to Cancelled, including payslips that were already published — which removes them from those employees' My payslips.
- The run's totals and payslip count are zeroed.
- The month is blocked for good. No new run can ever be created for it.
The confirmation spells this out: "This cancels 12 payslips and zeroes the run totals. Cancelling cannot be undone, and no new run can be created for August 2026 afterwards." Click Cancel this run to go ahead or Keep the run to back out. A cancelled run's page afterwards reads "12 payslips cancelled" above its zeroed totals.
Adjusting one payslip
Adjustments are one-off money for a single month — a Diwali bonus, a referral incentive, a travel reimbursement, an advance recovery — that should not become part of the recurring structure. Putting a bonus in the salary structure makes it recur every month until someone clears it.
Open a run and click Adjust on the person's row (the button reads View wherever the payslip is read-only). The page shows five figures — Gross earnings, Taxable gross, Total deductions, Employer contributions, Net pay — and splits the lines into two groups.
From the salary structure lists the lines copied in at generation, grouped into Earnings, Deductions and Employer contributions with a subtotal each. These lines cannot be removed. Trying returns: "That line came from the salary structure. Change the structure instead — removing it here would rewrite what the structure said."
Adjustments for this run only lists what you have added. To add one:
- Choose a Type of adjustment.
- Enter the Amount (₹) as a positive number — the type decides whether it adds or deducts.
- Optionally set a Label (for example "Diwali bonus") and a Reason (for example "Q2 target achieved"). The reason is visible to whoever reviews the run.
- Click Add adjustment. The payslip and the run totals recompute straight away.
| Type of adjustment | Direction | Taxable |
|---|---|---|
| Performance Bonus | Earning | Yes |
| Other Incentive | Earning | Yes |
| Reimbursement | Earning | No — raises net pay, stays out of taxable gross |
| Arrears | Earning | Yes |
| Deduction / Adjustment | Deduction | — |
| Advance Recovery | Deduction | — |
Amounts must be greater than zero, and anything above ₹1,00,00,000 is refused with "That amount looks wrong. Enter it in rupees."
To remove an adjustment, click the × on its row and confirm. Removing recomputes the payslip and the run totals immediately.
Adjustment is only possible while both the run and the payslip are drafts. Otherwise the form is replaced by an explanation:
| Situation | What the page says |
|---|---|
| Run is Finalised or Paid | "This run is finalised, so its figures are locked. Adjustments are only possible while a run is still a draft." |
| Run is Cancelled | "This run was cancelled, so its payslips are frozen as they were and nothing here can be changed." |
| Payslip is Published or Cancelled | "This payslip is published and can no longer be adjusted." |
If someone had no salary structure when the run was generated, their payslip shows "No structure lines" and you can build the month entirely out of adjustments — but set a structure up as well, so later runs pick it up.
What MusterHR does not calculate
Be clear about the boundary before you rely on it.
- MusterHR does not compute statutory rates. PF, ESI, Professional Tax and TDS are amounts you enter. Nothing is derived from a slab, a wage ceiling or a state schedule.
- MusterHR does not file returns. No PF or ESI challans, no TDS return, no Form 16, no bank payment file. Your CA or filing agent still does all of that.
- Pay is not pro-rated. There is no loss-of-pay or part-month calculation: a mid-month joiner or somebody with unpaid leave gets their full structure amount unless you reduce it with an adjustment. The payslip PDF prints "Paid days —" and "LOP days 0" because nothing sets those fields.
- Approved leave does not flow into payroll. Leave and holidays and Attendance are separate records; check them yourself before you finalise.
My payslips (for employees)
Go to My space → My payslips. The page lists every payslip that has been published to you, newest first:
| Column | What it shows |
|---|---|
| Period | The month, as "August 2026" |
| Net pay | The amount credited to your account for that month, after deductions |
| Download | A PDF button |
Click PDF to download that month's payslip. The file is named after your employee code and the period, for example payslip-FDT-2026-0002-2026-08.pdf.
You will get a notification when a payslip is ready — "Payslip available" in your Notifications. Until then, the page reads "No payslips yet — Payslips appear here after each month's payroll is published."
If the page instead says "No employee record linked", your sign-in has not been connected to an employee record, so there is nothing to show. Ask HR to link the two; see Employee records and profiles.
Drafts are never visible to you, and a payslip disappears from this list if its run is later cancelled.
What is on the PDF
Your company's name and legal name in your company's brand colour, the period, and then:
- Employee, Employee code, Designation, Department, Paid days, LOP days, Bank A/C and PAN. The bank account and PAN are masked to their last four digits (
XXXX1234), never printed in full. - Earnings, line by line, totalling to Gross earnings, with an "Of which taxable" line when some of your earnings are not taxable.
- Deductions, line by line, totalling to Total deductions.
- Employer contributions (CTC), if your structure has any. These are what your employer pays on top — they are not deducted from you and are not part of your net pay.
- Net pay in the brand colour, and the footer "This is a computer-generated document and does not require a signature."
If you are an intern, the document is headed Stipend Slip rather than Payslip, and the final figure reads Net stipend payable.
Why the PDF says "Rs." and the screen says ₹. The standard font used to build the PDF cannot encode the ₹ symbol, so every amount in a payslip PDF is written as "Rs. 65,600" with Indian digit grouping. On screen you always see ₹65,600.00. It is the same number.
Where payroll figures show up elsewhere
- Payroll & reports → Reports → Payroll summary shows current monthly CTC by department for active employees, with a CSV download. It reflects the salaries in force today, not a past month's run, and says so on the page: "These are current CTC figures, not a payroll run for a past month." Anyone with no salary on record counts as nil, which pulls the average down. See Reports, settings and administration.
- Full and final settlement during offboarding starts from the person's current structure's gross earnings, or the monthly amount on their employee record if there is no structure. See Assets and offboarding.
- Every salary view, payslip view and PDF download by someone other than the employee is recorded in the audit log with the amount.
Something unclear on this page? Tell us.