The Attendance-to-Payroll Interface File: Fields, Cycle and Recurring Errors
Back to blog
automation·September 5, 2026·5 min read·By Yehonatan Saadia

The Attendance-to-Payroll Interface File: Fields, Cycle and Recurring Errors

What is actually inside a monthly attendance-to-payroll file, why every vendor's layout differs, the dates that govern it and the errors that repeat monthly.

Key takeaways

  • The file answers one question per row: which employee, which component, how much. Rates, tax and calculation stay on the payroll side.
  • Layouts are per-payroll-program. A time-clock vendor publishes that its file is named QDIV for Michpal, TAMAL.DAT for Shiklulit-Tamal and SALxxxxx.MM for Trio-Oketz - different names because they are different formats.
  • Almost none of these layouts are published. Where an inbound file is documented, it is documented by the receiving product: Rivhit's knowledge base describes importing a clock file named KLT.TXT built to an ASCII structure through a specific menu path.
  • The interface is governed by a calendar as much as by a format. Period boundaries, the correction window and the approval deadline cause more failures than field types do.
  • Compare that with the pension employer-reporting file, whose XML structure is published by the Capital Market Authority. A regulator-defined interface is documented; a vendor-defined one usually is not.

An attendance-to-payroll interface file is a per-period list saying, for each employee, how much of each salary component to pay. It carries quantities and codes, not money and not calculations. Its layout is defined by the receiving payroll program, differs between vendors, and is almost never published - which is why the same handful of errors recurs monthly.

What is in an attendance-to-payroll interface file?

One row per employee per component per period, in the simplest and most common design. Nothing in it should require the sender to know anything about money.

That constraint is the single most useful rule when designing or reviewing one. If the file contains an amount in shekels, someone has calculated pay outside payroll, and there are now two systems that can produce a different answer for the same person. Quantities and codes only, and let the payroll program apply the rate it holds.

The row is therefore made of five field families, and every real-world layout is some arrangement of them.

The five field families

  • Identity. The employee number as it exists in the payroll program, and the employing entity or company number. A clock or badge number belongs on the sending side only, and ת"ז should travel only if the receiving process genuinely requires it - this file is personal data and the field list is part of what makes it more or less sensitive.
  • Period. The month and year the quantities belong to, and sometimes a date within it. A file without an explicit period is a file that can be loaded into the wrong month.
  • Component. The salary component code, which is the agreed vocabulary between the two systems: base hours, overtime tiers, vacation, sick, reserve duty, absence, travel and whatever else the organisation pays.
  • Quantity. Hours, days or units. The unit is a property of the component, and it must be agreed per component rather than assumed across the file.
  • Control. Record count, total per component, and a run or version identifier. Control fields are what let the receiving side prove nothing was lost, and they are the family most often omitted.

Two extras appear when the organisation needs them: a cost centre or project code where hours are allocated beyond payroll, and a correction flag distinguishing a new quantity from a replacement of an earlier one.

Why is every vendor's file different?

Because the format belongs to the receiving payroll program, not to a standard. There is no cross-vendor Israeli standard for attendance-to-payroll input, and the evidence is visible in the file names themselves.

Receiving payroll programInterface file name published by a time-clock vendor
MichpalQDIV
Shiklulit - TamalTAMAL.DAT
Trio - OketzSALxxxxx.MM
Hilanlisted, no file name published

The same vendor's page also states what must be defined once before any of them will work: the company number in the payroll program, the salary components (100%, 125%, 150%, 200% together with vacation, sick, reserve, absence, travel and others), and for every employee the employee number as it exists in payroll. Those three items are common to all the formats even though the formats differ - which tells you where the real work is.

Documentation does exist in places, usually published by the receiving product rather than the sender. Rivhit's knowledge base, for example, describes importing attendance data from an external system through a file named KLT.TXT built to an ASCII structure it details, reached through a specific menu path in the product. Its own API surface is covered separately in the Rivhit API integration guide. For the Michpal side of the same conversation, see the Michpal attendance and accounting interface.

The monthly cycle in dates, not stages

Point in the cycleWhat must be trueWhat goes wrong if it is not
Period boundaryEvery shift is assigned to exactly one periodOvernight shifts on the last day land in the wrong month, permanently
Correction window closesEmployees can no longer edit their own recordsLate edits change data after a manager has approved it
ApprovalA named manager has approved each departmentHours are exported that nobody stands behind
Pre-export checksEmployee lists reconcile, totals are within toleranceThe file loads cleanly and is wrong
File generatedExactly one file per period per entityA second file is produced "to be safe" and loaded twice
Payroll loadedThe receiving side confirms the record countNobody knows whether all rows arrived

The row that surprises people is the last. A file that loads without an error message has not necessarily loaded completely, and only a control total will tell you the difference.

The errors that come back every month

ErrorRoot causeThe check that catches it
Employee missing from the runNo payroll employee number on the attendance recordReconcile both employee lists before generating
Hours in the wrong monthShift crossing midnight at the period boundaryAssign shifts by start time, and test the boundary every month
Overtime paid at base rateComponent mapping missing a tierCompare component totals month on month
Travel or allowance paid twiceBoth systems believe they own the componentOne written owner per component
Loaded twiceRegeneration after a partial loadUnique run identifier, and refuse a duplicate
Silently truncated fileEncoding or transfer failureRecord count in the control record, verified on load
Absence charged to the wrong balanceTwo absence codes with similar namesCode list reviewed whenever a code is added
Numbers wrong after a vendor upgradeA column added in the middle of the layoutVersion stamp, and a rule that new columns append at the end

Eight items, and none of them are exotic. They repeat because the interface is treated as a technical artefact when most of them are actually failures of an agreement between two teams. The operational review that catches most of them before the file exists is described in automating the monthly attendance review.

Making the file provable

Provable means that a year later you can answer "where did this number come from" without asking anyone to remember. Four practices get you there:

  • Keep every file you sent, exactly as sent, with its period and run identifier. Storage is cheaper than a reconstruction.
  • Log the load result on the receiving side, including the record count accepted, so a mismatch is discoverable rather than theoretical.
  • Version the layout, and stamp the version in the file name or in a header record. Layouts change; undated layouts cannot be reasoned about.
  • Reconcile one total automatically each period between the attendance system and payroll, and report the result whether or not it matched. A reconciliation that only speaks when something is wrong is indistinguishable from one that has stopped running.

It is worth ending on the contrast: employer reporting of pension deposits in Israel runs on the Capital Market Authority's uniform structure, an XML-based format defined in published circulars, so anyone can read the definition before building. The attendance-to-payroll file is the opposite case - defined per vendor, rarely published, and agreed in a conversation. That is not a reason to avoid it. It is a reason to write the agreement down.

Sources

#interface file#attendance#payroll#monthly close#data errors#אינטגרציה

Frequently asked questions

Is there a standard format for attendance-to-payroll files in Israel?

No cross-vendor standard could be found. The receiving payroll program defines the layout, which is why a time-clock vendor publishes a different file name per payroll system. Obtain the layout from the payroll vendor or from the attendance supplier that already produces it.

Should the file contain amounts in shekels?

As a rule, no. Sending quantities and component codes keeps the calculation in one place. An amount in the file means pay was calculated outside payroll, which creates two systems capable of producing different answers for the same employee.

How do I stop a file being loaded twice?

Give every generated file a unique run identifier, record on the receiving side which identifiers have been loaded, and refuse a repeat. Regenerating after a partial load is the common trigger, so a partial load must be an explicit state, not a silent one.

What causes hours to land in the wrong month?

Shifts that cross midnight at the period boundary. Decide once whether a shift belongs to its start date or its end date, write that rule down, apply it in the export, and test the boundary every period rather than assuming last month's behaviour holds.

Keep reading

Related service

Integrations

Make the systems you already pay for talk to each other.

Learn more →←

About the author

Yehonatan Saadia

Freelance automation, web & MVP developer

I'm Yehonatan Saadia, a senior developer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.

Work with me

Have a project like this?

Tell me what you're trying to automate or build. I reply within 24 business hours with a few targeted questions, then we walk through it on a free 30-minute call, with no commitment. You come away with a scope, a timeline and a fixed price - or a straight answer that it isn't worth building.