hr.attendances
Recorded attendance feeds payroll: when you generate it, the manager reviews the absences and overtime detected and decides which ones to apply.
Send clock-ins
Behavior
- Idempotent: if a record already exists for the employee on that date, it is updated. Resending the same batch does not create duplicates.
- You can send the check-in first and the check-out of the same day later: omitted fields keep their previous value.
- Each record is processed separately: an error does not stop the rest of the batch.
- If you send
check_in_at/check_out_atorpunches, they take priority overcheck_in/check_out.dateis the day the shift starts. - With
punches, the day’s check-in is the firstinpunch and the check-out is the lastout; gaps between an out and the next in count as break time. Punches are stored individually and resending them does not duplicate them. - Each clock-in recalculates the day’s result (tardiness, overtime, etc.).
200 response
index corresponds to the position of the record in records. If all records fail, the response has code 422.
Query attendance
check_in_at and check_out_at are null on older records that only have a time. For night shifts, check_out_at shows the actual check-out date.
For schedule compliance and the classified hours of each day, see Attendance results.