Frappe HR + Naarvin: salary slips in one payroll register

What Naarvin reads from Frappe HR (ERPNext HRMS): submitted salary slips by employee and month, with pay components recognised in English or Arabic. Read only.

4 min read
In short

Naarvin reads submitted salary slips from Frappe HR, the HR and payroll app of ERPNext, into its payroll register: each employee's basic pay, allowances, deductions and net pay by month. It uses a read-only Frappe user's API key, reads nothing until someone with payroll access switches the payroll register on, and never writes to Frappe.

What does Naarvin read from Frappe HR?

Three Frappe document types, and only these: Company, for each company's currency and country; Employee, for joining and leaving dates and the employee number; and Salary Slip, for pay. Only submitted slips are read. Drafts and cancelled slips are not.

How a Frappe HR salary slip fills the payroll register
Payroll register fieldFrom the salary slip
Employee codeThe Frappe employee ID (HR-EMP-…), or the employee number field if you choose it
Name and departmentThe employee name and department on the slip
Basic, housing, transport, overtimeEarnings rows recognised by component name or abbreviation, in English or Arabic
Other allowancesEvery other earnings row, added up
GOSI employee shareA deductions row named like GOSI, social insurance or تأمينات
Deductions and net payThe slip's total deduction and net pay

Component names are each company's own, which is why Naarvin recognises them by name. Check the first sync: a basic-pay component with an unusual name lands in other allowances until it is renamed.

How does it relate to ERPNext?

Frappe HR runs on the same framework as ERPNext, and often on the same site. The two are separate connections in Naarvin. ERPNext brings the ledger and can receive approved journals; Frappe HR brings only the payroll register. A Frappe HR connection can link to a company the ERPNext connection already loads, so payroll detail sits next to that company's books.

Which months are read, and how much?

The first sync reads the last 12 months; later syncs read again from the month before the last sync. Each slip counts in the month of its end date, and two slips for one employee in the same month are added together. Frappe returns a slip's earnings and deductions only when the slip is read on its own, so a sync reads at most 5,000 slips. Above that, the sync stops and asks you to import the payroll register as a file for now.

Each month the connection reads replaces only what this connection loaded before, so a cancelled slip disappears with its month. A month imported from a payroll file, or loaded by another connection, is kept, and the sync warns with the month.

Which companies and currencies does it handle?

Every Frappe company the user can read is listed, and each one you choose links to a company in Naarvin with the same currency. A slip in a currency other than its company's is left out and counted in a warning.

Who can switch payroll on, and who sees it?

A new Frappe HR connection reads nothing. Someone who manages connections and may see payroll detail for every company of the connection switches the payroll register on from the connection card, and the change is audited. Afterwards only people with payroll detail access for a company see its lines; sync statistics count lines and warnings name months, never people.

What does the connection not do?

  • It never writes to Frappe.
  • It does not read nationality, bank accounts or IBANs, the employer's GOSI share, or leave balances.
  • It brings no ledger, invoices or payments: those come from the ERPNext connection.

How do you connect Frappe HR?

  1. Create a read-only user in FrappeGive the user read access to Company, Employee and Salary Slip only, and generate its API key and secret.
  2. Add the connectionEnter the site address, choose which employee code to use (the Frappe ID, or the employee number if your other payroll files use it), then the key and secret. They are encrypted when saved and never shown again.
  3. Link the companiesLink each Frappe company to its company in Naarvin, often the one your ERPNext connection already loads.
  4. Switch on the payroll registerFrom the connection card, by someone with payroll detail access for every linked company.
  5. Run the first sync and check the componentsCompare one month with the salary register in Frappe, and look for basic pay that landed in other allowances.

Questions people ask

Do we need ERPNext to use the Frappe HR connection?

No. It reads Frappe HR on its own. If you also use ERPNext, both can link to the same company in Naarvin.

Which employee code should we choose?

The one your other payroll files use. If those files carry the employee number rather than the Frappe ID, choose the employee number, so the same person matches across sources.

What if we have more than 5,000 slips in the months read?

The sync stops with a message, because each slip is read on its own. Import the payroll register as a file for those months for now.

Where Naarvin helps

See it on your own books

A guided demo on Demo Group's books, then we connect one of your companies. In Arabic or English.