Reasons
What is it?
Reasons are records that explain occurrences or inconsistencies in point markings — absences, delays, early exits or other events that need to be documented for leaf and audit purposes.
Why It Matters In Integration
- Justifications originated in the ERP/RH (e.g. approved medical consultation, external visit) should be reflected in Pontotel to prevent the system from accounting as missing
- Integration with approval flow: some companies approve justifications in the HR system and synchronize with Pontotel
- Audit history: justifications ensure traceability of adjustments
Business Rules
- A justification is always linked to an employee and a specific date
- Justifications may have approval status:
pendente, aprovado, reprovado - The type of justification must be pre-registered (company configuration)
Available Operations
| Method | Endpoint | Description |
| GET | /justificativas/ | List justifications |
| POST | /justificativas/ | Register justification |
| GET | /justificativas/{id}/ | Get Justification |
| PATCH | /justificativas/{id}/ | Update (e.g. approve) |
Fields
| Field | Type | Required | Description |
id | integer | — | Internal ID |
empregado_id | integer | | Employee ID |
data | date | | Date of occurrence |
tipo | string | | Type of justification (as registered by the company) |
motivo | string | | Reason description |
status | string | — | pendente \ |
Common Types of Justification
| Type | Description |
FALTA | Absence in the day |
ATRASO | Arrival after schedule |
SAIDA_ANTECIPADA | Exit before schedule |
HORA_EXTRA | Work beyond the journey |
ESQUECIMENTO | Marking forgetting |
Example: Justifying Registration
Request
| HTTP |
|---|
| POST /pontotel/api/v4/justificativas/
Authorization: Bearer {token}
Content-Type: application/json
{
"empregado_id": 500,
"data": "2025-01-31",
"tipo": "FALTA",
"motivo": "Consulta médica agendada"
}
|
Response (201 Created)
| JSON |
|---|
| {
"id": 111,
"empregado_id": 500,
"data": "2025-01-31",
"tipo": "FALTA",
"motivo": "Consulta médica agendada",
"status": "pendente"
}
|