Payroll Operations in Muin
How payroll works in Muin: connect your provider, import registers or sync from QuickBooks, and let Muin post the GL, reconcile the bank debit and serve pay stubs.
Muin is a Payroll Operations Layer: it owns your payroll workflow, onboarding, approvals, GL posting, bank reconciliation, and employee self-service, while your existing payroll provider (QuickBooks, ADP, Paychex, or any other) handles the tax-filing step. Bring whatever provider you already run payroll in: Muin does not replace it.
The honest boundary: Muin does not process payroll, calculate taxes, or remit to state agencies. Your payroll provider does that. Muin orchestrates everything around it and brings the results into your books automatically.
How Payroll Works in Muin
| Step | Who does it | How |
|---|---|---|
| Collect employee data (W-4, I-9, direct deposit) | Muin | Onboarding portal |
| Approve hours and time off | Muin | Time tracking and leave |
| Run payroll and file taxes | Your provider (QBO / ADP / Paychex) | Outside Muin |
| Import payroll results | Muin | Connect your provider, CSV upload, QuickBooks sync, or manual entry |
| Post wages / taxes / benefits to GL | Muin | Automatic |
| Match payroll debit to bank feed | Muin | Automatic |
| Show pay stubs to employees | Muin | Employee self-service |
Four ways to get payroll results into Muin
Pick one. They all land in the same neutral register, so GL posting, reconciliation and pay stubs work identically whichever you use.
| Way | Where | Best when |
|---|---|---|
| Connect payroll | HR → Payroll & Benefits → Connect payroll | You want each pay run pulled in automatically instead of hand-keyed. A paid add-on. |
| CSV import | HR → Payroll → Enter Payroll Register | Your provider exports a register and you are happy to upload it each period. |
| QuickBooks sync | Settings → Integrations → QuickBooks → Payroll | You already run payroll in QuickBooks. |
| Manual entry | HR → Payroll → Enter Payroll Register | You write checks or use a spreadsheet. This is the guaranteed floor and needs no provider at all. |
Connect payroll (paid add-on)
To open it: Sidebar → HR → Payroll & Benefits → Connect payroll.
Bring payroll in from your provider connects Muin to the payroll system you already run, so each completed pay run is read back automatically rather than exported and uploaded. Employees then self-serve their own pay stubs, compensation and tax documents, and the payroll debit reconciles against your bank feed without anyone matching it.
This is a paid monthly add-on, charged per connected payroll provider, for as long as a provider is connected. The screen states the exact rate under What this costs, and what it buys, and the confirmation dialog repeats it before anything is charged. Cancelling it later is done from Billing.
To connect:
- Go to HR → Payroll & Benefits → Connect payroll.
- Press Add the payroll-connect add-on and confirm. The dialog tells you the monthly rate and that the charge recurs.
- Enter the Provider identifier - the identifier your payroll provider is listed under - and the Access credential. A credential is required the first time you connect; on a later edit, leave it blank to keep the one already stored.
- Press Save connection.
- Press Let the first import run. You will see Import started. Pay runs appear here once the provider read finishes.
The connection reports its own state honestly, and the states are distinct on purpose:
| State | Means |
|---|---|
| Connected | Checked and working |
| Connected, unverified | A connection exists but has never been checked |
| Connected, degraded | Checked, and the provider reported a problem |
| Not connected | No live connection |
| Not connected, check failed | The check itself could not run, so nothing is claimed either way |
Pause importing stops new pay runs being pulled without ending the connection; the screen says Importing is paused. Disconnect payroll ends it, and if the provider does not confirm, Muin says Your payroll provider has not confirmed the disconnect rather than reporting a clean disconnect it did not get.
Connection capacity is finite. When it is nearly used up the screen warns Connection capacity is running low, and when it is exhausted it says New connections are not available right now instead of taking a payment it cannot fulfil.
Importing a Payroll Register
HR → Payroll → Enter Payroll Register
Muin accepts a CSV export from any payroll provider (ADP, Paychex, QuickBooks Payroll, etc.) using standard column names:
| Column | Required |
|---|---|
employee_number or email |
One of these (both is best) |
gross_pay |
Yes |
net_pay |
Yes |
federal_tax, state_tax, social_security, medicare |
Optional |
ytd_gross, ytd_net |
Optional |
If your provider uses different headers, Muin’s column-mapping step lets you drag each column to the right field before importing.
After import:
- Muin resolves each row to a Muin employee
- Preview shows totals and any unmatched rows
- On commit: GL entries post (wages DR 5300, employer taxes DR 5310, employer benefits DR 5320, cash CR 1000)
- The bank-feed reconciliation engine auto-matches the ACH payroll debit
- Each employee’s paystub appears in HR → My Pay
QuickBooks Payroll Sync
If your organization uses QuickBooks for payroll, Muin can read completed payroll runs directly from your QuickBooks account.
Settings → Integrations → QuickBooks → Payroll tab → Read Payroll from QuickBooks
Select a date range and Muin fetches the payroll summary, matches employees by email, and imports the run into the same neutral register. GL posting, reconciliation, and paystubs work identically to a manual import.
What Muin reads from QuickBooks:
- Completed payroll runs (gross pay, net pay, aggregate taxes per employee)
- Employee directory (name, email · for matching)
What Muin does not get from QuickBooks: per-line tax breakdowns (federal / state / SS / Medicare). These appear in the paystub as a single “QuickBooks taxes” line.
Posting back to QuickBooks: If you also want Muin’s payroll GL entries to appear in QuickBooks, go to Settings → Integrations → QuickBooks → Payroll → Post payroll GL to QuickBooks and map the three GL codes (wages 5300, employer taxes 5310, cash 1000) to your QuickBooks accounts. Muin then creates a balanced JournalEntry in QuickBooks for each payroll run you approve.
GL Posting and Labor-Cost Allocation
Every imported payroll run automatically posts to the general ledger:
| Account | Debit / Credit | Amount |
|---|---|---|
| 5300 Payroll Wages Expense | DR | Total gross pay |
| 5310 Employer Payroll Taxes | DR | Employer tax amount |
| 5320 Employer Benefits Expense | DR | Benefits (if entered) |
| 1000 Operating Cash | CR | Total disbursed |
Allocate labor cost by program: Go to any payroll run in the dashboard and click Allocate. Muin splits the fully-loaded labor cost (wages + taxes + benefits) across your programs, funds, and departments based on each employee’s fund allocation settings: the same dimensions your grant reports use. This makes “what did the food program cost in Q2, including staff” answerable with one click.
Employee Self-Service
Employees see their own pay stubs (payslips) at HR → My Portal → My Pay on the web, and in the My Pay tab of the Muin Go mobile app. No login to the payroll provider’s employee portal is required.
Each pay stub shows:
- Pay period, check date, gross / net pay
- Deduction and tax breakdown (as imported)
- Year-to-date totals
Benefit deductions
An employee’s benefit deduction comes from the cost stored on their own election, not from what the plan costs today. Every enrollment keeps its own employee-cost and employer-cost snapshot taken at the moment of election, so correcting a plan’s price never re-prices a paycheck that has already been issued. See benefits and enrollment.
Pre-Payroll Checklist
Before each payroll run, go to HR → Payroll → Pre-Payroll Audit. Muin automatically checks:
- New hires missing compensation setup
- Compensation changes in the pay period
- Approved PTO overlapping the pay period
- Anomalies vs. the previous run (net-pay swings > 15%, missing employees)
Each finding is flagged as warning or critical. Critical findings block the run recommendation until resolved.
Payroll Reports
Navigate to HR → Payroll → Labor Cost by Program for a period-scoped view of your fully-loaded labor cost (wages + taxes + benefits) broken down by program. Useful for grant reports and board presentations.
Troubleshooting
Employee not resolving on import:
- Check that the
emailoremployee_numberin the CSV matches the employee’s record in Muin HR - The employee must be Active in Muin HR
Duplicate run warning:
- Muin detected an identical register was already imported for this period
- If this is a correction, use a unique
referencefield to distinguish the two runs
QuickBooks sync not finding runs:
- Verify the QuickBooks integration is connected (Settings → Integrations → QuickBooks)
- Confirm the payroll was completed (not in draft) in QuickBooks before syncing
“We could not read your payroll connection.”
- The read failed, and nothing is claimed about whether payroll is connected until it succeeds. Retry. Do not treat a failed read as “not connected”.
“Payroll connect subscribe failed” / “We could not add the payroll-connect add-on.”
- The add-on was not added and nothing was charged. Try again; if it keeps failing, check Billing for an existing subscription.
“Payroll connect provisioning failed.”
- The add-on is in place but the connection was not created. Re-enter the provider identifier and credential and press Save connection.
“We could not start the payroll import.”
- Nothing was imported. Check the connection state first: an import cannot run while the state is Not connected or while No credential is on file, so nothing can be imported yet.
“New connections are not available right now.”
- Connection capacity is exhausted. This is a refusal rather than a failure, and it is deliberately raised before a charge.
Next Steps
- Employee Onboarding: collect W-4, I-9, and direct-deposit before the first payroll run
- Time off and time tracking: approve the hours payroll is run from
- Benefits and enrollment, where benefit deduction amounts come from
- Reconciliation Hub: review the posted payroll GL entries alongside your bank activity
- QuickBooks Integration: full QuickBooks settings reference