Skip to content

Keep a company's employee records ​

Who does this: Payroll Executive · Payroll Lead · Admin · Platform Admin When: A company starts with us, an employee joins, or an employee's details change Result: Each employee's details are kept from month to month, with every field Infotech needs, so a joiner is asked once.

The Employees tab (on a payroll company's page) holds one record per employee. It is separate from each month's employee list, which is rebuilt every month and holds only what that month's pay needs. The two meet on the employee code Infotech knows the person by.

The fields follow Infotech's screen order (Basic details, Pay and residency, Bank details, Additional details), so you can copy an employee into Infotech field by field. Fields Infotech needs that the firm's onboarding form does not ask for are marked Not on the onboarding form: days worked per week, leave calculation date, passport number and expiry, work pass number and expiry.

Before you start ​

  • [ ] The company has the Payroll module. The tab is shown only on payroll companies, and only to payroll staff: it holds identity and bank numbers.
  • [ ] The server has its encryption key set (PAYROLL_EMPLOYEE_ENCRYPTION_KEY). Without it, NRIC/FIN, passport, work pass and bank account numbers and birth dates are refused with a message naming the key; everything else saves.

Steps ​

Start the records from a month's employee list ​

When the company already has a month with an employee list, click Start from Month's list. A record is started for each employee who has none yet (matched on the employee code), with their code, name, monthly salary, residency and PR start date, each marked From the month's employee list. Records that exist are never changed. Running it again does nothing. A value on the list that fails the field rules below is left empty, and a message names the employee and the field.

Add an employee ​

  1. Click Add employee, give the full name (as on their NRIC or passport) and, if known, their Infotech code.
  2. The record opens below the list. Fill in the rest.

Fill in or change a value ​

  1. Click Edit on the field, enter the value and click Save.
  2. If the field already had a value, you are asked why you are changing it. The reason is kept with the value.
  3. Each value shows where it came from (Entered by staff, From the month's employee list, and later Typed by the client, Read from a document, From the onboarding form), who set it and when. History shows every earlier value of the field.

Every value is checked by the same rules the client's link and the document reader use, so a value gets the same answer whichever way it arrives. If one fails, Save stays greyed out and the reason shows under the box (the server refuses it too):

FieldWhat is acceptedStored as
NRIC / FINA letter (S, T, F, G or M), seven digits and a letter, with the right check letter. Spaces, hyphens and lower case are fine.S1234567D
ID typeMust agree with the number: S/T is an NRIC, F/G/M a FIN. Left empty, it is filled from the number.NRIC / FIN
DatesDay/month/year (16/09/2026, 16-9-2026, 16 Sep 2026) or 2026-09-16. A two-digit year (16/09/26) is refused, never guessed. A birth date cannot be in the future.2026-09-16
Salary, allowance amountsA number in Singapore dollars, however written (SGD 2000, S$2,000.50, 2000/-). Shorthand (2k), negatives and other currencies are refused.2000.00
Bank account number6 to 17 digits; spaces and hyphens are dropped.1234567890
SWIFT code8 or 11 letters and digits.DBSSSGSG
Mobile, emailsThe same rules as a contact's phone and email.as typed / lower case
Days per week1 to 7, in half days (5.5).5.5
Lists (gender, residency, pass type, fund…)The choice, or the way people write it (Sinda, SPR, M), in any letter case.the choice

Two employees of one company cannot have the same NRIC/FIN. The message names the other employee (never the number); if that person has left and come back, mark them active again instead of adding them twice.

The bank account name must match the employee's full name: the same words in any order, ignoring letter case, punctuation and connectors such as bin, binte, s/o, d/o. An account in the first name only, in initials, or cut short by the bank does not match. The value is kept, but the employee shows Needs attention: account name does not match and is not complete. Nothing clears it except values that match, correcting whichever name is wrong (with your reason), or proof that the account is the employee's (see Requests to the client below). It is never accepted on staff say-so alone.

Only the field you are saving is checked. A value saved before these rules existed does not block an unrelated edit; it is checked when someone changes it.

A field marked needed is still required for this employee. What is required depends on the person: a PR needs the PR start date; a foreigner needs the work pass type and passport; an Employment Pass, S Pass or Work Permit holder also needs the pass number and expiry. Bank details are required while the company has not recorded that the client pays salaries itself.

See a hidden number ​

NRIC/FIN, passport, work pass and bank account numbers and the date of birth are stored encrypted and shown masked: the numbers to their last four characters (for example •••••567D), the date of birth not at all (••/••/••••). Click Reveal to see one. Each reveal is recorded with your name and the field (never the value).

An employee leaves ​

Click Mark as left and give their last day of work. The record stays, marked as left.

Requests to the client ​

Above the employee list, Requests to the client shows one card for each thing the client still has to send. The client sees the same cards under To do on their payroll link and answers them there.

  • Missing detail cards appear by themselves, one for each required field an employee is missing ("Ravi Kumar: NRIC / FIN number needed"). They follow the record: filling the field by any route answers the card, and they cannot be cancelled by hand. When an employee leaves, their open cards are cancelled.
  • A Bank account name card appears for an account name that does not match. The client answers with a corrected name or by uploading proof (a bank letter or the top of a statement).
  • Ask for something adds a card by hand: a document ("Signed offer letter for Tan Wei Ming") or please confirm something ("Is the September bonus S$2,000?"). These can be cancelled, with a reason.
  • Read from a document: the client confirms cards appear by themselves for a figure read from one document only (on a company with a live payroll link), and for an identity, bank or money value read into the record. They follow the figure: a second source agreeing withdraws them, and they cannot be cancelled or answered for the client by hand. See What a document reading may decide.

Cards still waiting on the client are grouped under each employee's name (the client's list is grouped the same way). An answer never closes a card by itself. It moves to Answered — check these, showing who answered, the value they gave and Open the file for an upload. Then:

  1. Confirm closes it. For a bank account name accepted on proof, the accepted name is remembered: the warning stays off while the name is unchanged and comes back if it changes.
  2. Send back reopens it with a reason the client reads ("The NRIC copy shows a different number").

Answer for the client records what the client told you another way (by phone, for example). A different member of staff must then confirm it; so must a value you filled in yourself on the record. Payroll data is never accepted on one person's word.

A card for a particular month that is still open when the month's validation is signed off moves to the next month, marked carried from <month>. Cards about the employee record are not tied to a month; they stay until the gap is filled.

A missing detail is meant to hold that employee (only that employee) out of the payroll file. That does not happen yet, because each month's pay still comes from the month's own list; the screen says nothing about a hold until it does.

How to know it worked ​

  • The list shows the employee as Complete, names what is Missing, or says Needs attention (an account name that does not match).
  • The company's audit trail shows payroll.employee.created, payroll.employee.updated (the fields changed and your reason) and payroll.employee.value_revealed, and for cards payroll.card.* (created, answered, confirmed, reopened, cancelled).

What it does not do yet ​

  • The client fills in only what a card asks for; the full onboarding page comes later.
  • A value read from a document that fails a rule is left out and listed, but does not become a request card yet (the onboarding uploads, ONB-3, will turn it into one).
  • The month's employee list is not filled from these records yet: the month still uses its own list.
  • Allowances are edited as a short JSON list for now.

Internal use only — BreezyCorp