Create Attendance Mark
Records one attendance mark of a person — entry, break start, break end or exit — with the real time it happened. Built for biometric clocks and access-control systems that send each mark as it occurs, or later in a batch. Step-by-step guide: Send attendance marks.
The mark goes through the same rules as a mark made in Crehana: it is assigned to the person’s shift for that day, classified for punctuality and included in the daily attendance.
marked_atis the real time of the mark, with UTC offset. Marks sent hours later keep their original time.timezoneis the IANA zone where the person marked. It decides the local day of the mark: 23:30 on the 6th in Mexico City is the 6th, not the 7th in UTC. See the time zones guide.- Sending the same mark again (same person, type and minute) does not duplicate it: the answer is
200withalready_registered: true. Retrying after a timeout is safe. - A different time for a type the shift already has (a second
ENTRY) is a409. - A mark out of order (an
EXITwith no openENTRY, a break the shift does not have, two marks in the same minute) is a400, with the rule in the message. - The person must be set up in Attendance in the organization, otherwise
404. - Requires credentials of an administrator of the organization.
Authentication
API key of the organization. Always sent together with the Secret-Access header.
Path parameters
Headers
Request
Centralized id of the person who marked: user.id in GET /org/{organization_slug}/users/user-organizations/. Not the learning user id. The person must be set up in Attendance in the organization.
ENTRY starts the workday, BREAK_START / BREAK_END wrap a break, EXIT ends it. A day goes ENTRY → BREAK_START → BREAK_END → EXIT.
Real date and time of the mark in ISO 8601 with UTC offset (2026-10-07T08:58:00-06:00) or in UTC with Z (2026-10-07T14:58:00Z). A value without offset is rejected. It cannot be in the future; seconds are ignored.
IANA time zone of the place where the person marked, with its exact upper/lower case (America/Mexico_City, America/Lima). It decides the local day of the mark and the shift it is compared with. Offsets (-06:00) and abbreviations (CST) are not time zones.
Response
The same mark had already been sent; nothing new
attendance-001 when the mark was created, attendance-002 when it already existed. Not an HTTP status.
