ZyanDocs

Payroll

Run a semi-monthly pay period end to end — create drafts, set how each member is paid, approve, record the payment you made, and review the archive.

FinancePayroll is the owner's payroll workspace. Payroll runs on semi-monthly periods — the 1–15 and 16–end halves of each month — and each member gets one statement per period.

Zyan records payroll. It does not pay anyone. There is no pay button anywhere on this page, and "Paid" means you told Zyan that you paid it.

Before you start

You need the Payroll plan feature and the Payroll permission. Members without it see "You do not have permission to view payroll. Ask the workspace owner for the Payroll permission." Set each member's pay settings before the first run, or every statement will come out at zero.

Missing

An eligible member with no statement yet

Draft

Run payroll builds it from pay settings, hours and commissions

Approved

Approve drafts. This is what the member sees in My Pay

You pay them

Bank, check, wire or your payroll provider. Outside Zyan entirely

Paid

Record manual payment files the method, date and reference

The fourth step is the one Zyan has no part in. Every status on this page describes something you did elsewhere.

Run a period

Pick the period

Use the period navigator to select the month and the 1–15 or 16–end half.

Click Run payroll

Confirm Create statements. This generates a draft for everyone who is eligible and does not already have one. The button is disabled when nothing is missing.

Check the drafts

Open a member to review their pay items before approving. Amounts come from their pay settings plus imported hours and commissions.

Approve

Select rows with the checkboxes and use Approve drafts. Approved statements are what your team sees under My Pay.

Pay them, then record it

Pay through your bank or payroll provider, then select the approved rows and use Record manual payment.

Export CSV

Hand the period to your bookkeeper.

The stat strip above the roster shows Total payroll plus Missing, Drafts, Approved and Paid counts and amounts. Missing is the number of eligible members without a statement for this period — that is what Run payroll fills in.

Settings reference

SettingWhat it changesDefault
Current payroll | ArchiveSwitches between the live period and past periods.Current payroll
All | Sales Reps | Developers | OperationsFilters the roster by member role. Each carries a count.All
Search team...Filters the roster by name or email.
CompensationFilters by All compensation, Hourly, Salary or Custom mix.All compensation
Run payrollCreates the missing draft statements for the selected period. Disabled when nothing is missing.
Export CSVDownloads the selected period's statements.
RefreshReloads the period.

Set your payroll timezone

Until the workspace timezone is set, Payroll shows "Payroll timezone not set — clock times display in UTC." The default schedule timezone is UTC with pay dates shifted to the previous business day, which will not match your team's clock-ins. Set it in Settings; for one person, use Work timezone on their payroll detail.

A member's payroll detail

Clicking a member opens their own workspace with four tabs.

TabWhat is on it
SummaryPay settings, Stripe Connect reference data, the upsell catalog and assigned projects
StatementsThe period list and the workflow actions for this member
Items & AuditItems, Sources, Hours and Adjustments, plus the Completed Task Audit and Won Deal Audit
HistoryYear-to-date totals, past statements and payout records

The tab set is the same for everyone, but the content is not: sales reps get commissions, while developers and operations get hours and project breakdowns.

Do not delete a pay item the Hours sync owns

Items created by the hours import are labelled Managed by the Hours sync. Deleting one is undone the next time hours sync. Fix the timesheet instead.

Pay settings

FinancePayrollthe memberPay settings decides how they are paid. The dialog has two tabs, and the difference matters.

  • Profile defaults — how this person is paid from now on.
  • This statement — a one-off override on the statement you have selected. The tab only appears when a statement is selected.
SettingWhat it changesDefault
Base payStanding base pay per period.0.00
Pay typeHourly, Salary or Custom mix.
Hourly rateThe rate applied when hours are imported.0.00
Monthly %Commission share on recurring service revenue.placeholder 10
Upfront %Commission share on build and upfront revenue.placeholder 25
Upsell %Commission share on upsells.placeholder 10
Statement notesInternal notes kept on that one statement.

The three percentages are for sales-rep style compensation. Developer and operations members are normally base pay plus hours, and can leave them empty.

An upsell commission is already quantity-inclusive

The amount shown against an upsell covers the full quantity. Do not multiply it by quantity again when you are checking a statement by hand.

Record a payment

Select approved statements

Use the row checkboxes. You can record several at once.

Click Record manual payment

Describe the payment you already made

Choose the Payment method and Payment date, enter the Reference (check number, ACH ref, wire ref, payroll batch id), and add a Reconciliation note.

Click Save payment

The statements move to Paid. You can add or edit a reference later with Save details on the payout row.

This records history, it never initiates a transfer

Record manual payment stores what happened. No money leaves any account when you save it, and there is no payout execution anywhere in Zyan.

Including and excluding people

Members you do not pay through Zyan can be excluded. They collapse under Excluded from payroll on the roster, and their own My Pay page disappears for them — existing data is untouched. Use Include on the roster, or Include in payroll on their detail page, to bring them back.

The Archive

Switch to PayrollArchive to review past runs. The stat tiles — Archived Periods, Archived Statements, Archive Payroll, Archive Settled — are read-only totals across every archived period.

Open a period to get its ledger: every statement in that period, filterable by status, member type and payment method, with a free-text search and an export.

Deleting an archived period is permanent

It "removes statement records, line items, adjustments, payout records, and stored pay-stub PDFs from the portal. It does not reverse recorded payments or delete team members." Export the period first if you may ever need it.

Troubleshooting

SymptomCauseFix
Run payroll is disabled or creates nothingEvery eligible member already has a statement — Missing is zeroCheck the period navigator is on the right half-month, and check Excluded from payroll for anyone who should be included
A member is missing, and their My Pay is emptyThey are marked excluded from payrollExpand Excluded from payroll and click Include, or use Include in payroll on their detail
"Payroll timezone not set — clock times display in UTC."The workspace payroll schedule timezone was never configuredSet it in Settings; for one person use Work timezone on their detail
"Approve with unsynced hour changes?"Timesheet hours changed after the statement's pay items were builtRe-sync hours from the member's Hours tab, or choose Approve anyway if the statement is already correct
"Clocked-hours reference could not load for this period"The hour notes could not be loadedIt means missing reference data, not zero hours — reload, then check the member's Hours tab
A deleted pay item comes backIt is Managed by the Hours syncCorrect the underlying timesheet rather than the statement
Statements come out at zeroThe member has no pay settingsOpen their detail, click Pay settings, and set base pay, pay type and rate