/v1/attendance/daysCorrect a member’s day
Mark leave (or clear it), add a missed punch-in / punch-out (replacing an automatic punch-out), with a note. Audited; nobody corrects their own attendance.
Access: Signed-in members only (web or Android session) — not for API keys. Permission attendance.manage.
Request body
member_idrequired- Id
Opaque record id.
daterequired- LocalDate
Calendar date YYYY-MM-DD in the company time zone.
status- "leave" or null
punch_in_at- DateTime or null
Instant in ISO 8601, e.g. 2026-10-03T04:30:00.000Z.
punch_out_at- DateTime or null
Instant in ISO 8601, e.g. 2026-10-03T04:30:00.000Z.
noterequired- string
Response · 200
datarequired- AttendanceDay
metarequired- object
curl -X PUT 'https://api.propzolo.com/v1/attendance/days' \
-H 'Authorization: Bearer pz_live_…' \
-H 'Content-Type: application/json' \
-d '{"member_id":"cmusrceel0000q7kaafxqi1om","date":"2026-10-06","status":"leave","punch_in_at":"2026-10-06T05:30:00.000Z","punch_out_at":"2026-10-06T05:30:00.000Z","note":"string"}'{
"data": {
"id": "cmusrceel0000q7kaafxqi1om",
"date": "2026-10-06",
"member_id": "cmusrceel0000q7kaafxqi1om",
"status": "present",
"final": true,
"late": true,
"late_minutes": 0,
"early_leave_minutes": 0,
"punch_in_at": "2026-10-06T05:30:00.000Z",
"punch_out_at": "2026-10-06T05:30:00.000Z",
"worked_minutes": 0,
"break_minutes": 0,
"on_duty": true,
"on_break": true,
"distance_m": 0,
"idle_minutes": 0,
"flags": [
"string"
],
"note": "string",
"corrected": true
},
"meta": {}
}Errors
401No valid session or API key (missing, expired or revoked).403The caller lacks the permission, API-key scope or support grant this operation needs.409A unique value already exists, a concurrent change won, or the Idempotency-Key is still in use or was sent with a different request.422Invalid input; `error.fields` maps field paths to messages.429Too many requests; retry after the Retry-After header.500Unexpected error; quote `error.request_id` to support.

