Training evidence
Outcomes, completions, certificates and check codes, and how to find training that is missing.
The registers record what Kapi saw: what each employee owed, by when, and what they did about it. Your integration decides what that means for its own controls and notifications.
Find missing training
Join training records to people and courses by their stable IDs, then compare them with your own employee roster and training policy. A person missing from Kapi has no records, so find them from your roster. People and requirements have to be in Kapi before the registers can show them.
Your integration can use these facts to flag missing evidence, tell its users, and clear the warning after a later complete pull. Kapi does not choose another platform's control mappings or notification policy.
Outcomes
Every training record has an outcome:
| Outcome | Meaning |
|---|---|
completed_on_time | Completed by the deadline, or completed when there is no deadline. completed_at holds the time. |
completed_late | Completed after the deadline. days_late says by how many days. |
completed_before_requirement | Completed before the requirement began. Review it against your policy. |
not_due_yet | Not completed, and the deadline has not passed or there is none. |
overdue | Not completed, and the deadline has passed. |
missed | The record stopped applying after its deadline, without a completion. |
excused | The record stopped applying before its deadline, without a completion. An exception, not a completion. |
waived | An administrator waived it, or it is no longer required. An exception, not a completion. |
optional_not_done | Optional training not completed. Not a failure of required training. |
v1 can add outcome values. Treat an outcome you do not know as needing review, not as completed.
A person with no_required_records set to true has no required records open at that moment. Decide whether that agrees with your policy; do not mark the person as trained because of it.
What completion means
Completion is the completion Kapi recorded, not a separate exam score. completed_at is when Kapi's server received it; training finished offline arrives when the device next syncs, so a completion can arrive after its deadline. joined_at is when the person joined Kapi, not when they started work, and joiner deadlines count from joining Kapi.
Certificates
A certificate record is not a PDF. Its status at the requested moment is valid, expired, revoked or replaced. kind is completion or assessed.
A person who finished the course by attending a Kapi live session in full has the session on their certificate record: live_session_id, live_session_format (online or on_site), live_session_starts_at, live_session_ends_at, live_session_minutes and live_session_marked_by (trainer, or kapi when Kapi changed the mark after an ask). With people:read it also has trainer_name. These fields are null for a course finished online.
With people:read, each certificate has a check_code. Anyone can confirm a certificate at https://www.kapiworks.com/verify/<check_code>; that page shows the holder's name, which is why the code needs people:read.
People who were erased
When Kapi erases a person at the company's instruction, their training records and certificates stay under their IDs, so the company's evidence stays complete. person_name reads "Erased person" and work_email is null. The people register shows access_state as erased, and records that were still open end with ended_reason source_removed. Their certificate check page shows nothing. This holds for any as_at, including moments before the erasure, because names and work emails always come from current records, not from history.
The company that asked for the erasure should tell you the person_id. When you see "Erased person" or access_state erased for a person you hold, delete the name, work email and anything else you copied that identifies them, unless the company tells you otherwise. You may keep the IDs and dates so your counts stay right. Do not try to find out who the person was.
What the API covers
The registers cover employee-targeted training only: the employees of the company that created the key, including employees in shares that also reach partners or customers. Partner and customer learners are not in v1.