Colunas da exportação

A exportação do registo de tempo de trabalho (ver Acesso e cópia do registo) tem colunas estáveis: o nome de cada coluna é uma chave em inglês que não se traduz e não muda de um idioma para o outro. Se quiseres importar o ficheiro para outro sistema, podes contar com elas: quando se acrescenta uma coluna, vai para o fim da sua secção, e nenhuma se renomeia nem se retira.

Como é o ficheiro

  • O CSV é um único ficheiro com todas as secções. A sua primeira coluna é section (entry, change, day_total ou month_total) e depois vão as colunas das quatro secções, uma a seguir à outra; as que não se aplicam a uma linha ficam vazias. Leva marca BOM (abre bem no Excel) e as células que se poderiam interpretar como fórmula são neutralizadas.
  • O Excel (XLSX) leva uma folha info (empresa, NIF, intervalo, fuso horário, vista e data da transferência) e uma folha por secção: entries, changes, day_totals e month_totals, cada uma só com as suas colunas.
  • Os instantes vão em ISO 8601 com o desfasamento do fuso horário da empresa (2026-10-15T09:00+02:00), os dias como AAAA-MM-DD e os meses como AAAA-MM. As durações são minutos inteiros, os booleanos true ou false e os valores enumerados vão pelo seu código.
  • O que não se aplica ou não se registou vai vazio: o People não inventa dados.
  • Na vista minimizada dos representantes dos trabalhadores, o NIF, os IP e as medidas de conciliação (chave e texto) continuam a ser colunas, mas vazias, para que o ficheiro tenha a mesma forma para todos.

Troços: entries (entry)

Uma linha por troço (o registo de início e, se o houver, o que o fecha). Os troços anulados também saem, marcados.

ColunaO que contém
employee_idIdentificador da pessoa
employee_last_nameApelidos
employee_first_nameNome
employee_tax_idNIF (vazio na vista minimizada)
dateDia do início, no fuso horário da empresa
kindSituação: WORK (jornada), BREAK (pausa), WAITING (espera), ON_CALL (à disposição) ou DISCONNECTION_INTERRUPTION
startInstante de início
endInstante de fim (vazio se não houver saída)
duration_minutesDuração do troço em minutos
start_clocking_idIdentificador do registo de início
end_clocking_idIdentificador do registo de fim
start_channelCanal por onde se fez o início: WEB, MCP, CHAT, SYSTEM, TECHNICAL_INCIDENT ou LEGACY (anterior ao histórico)
end_channelCanal do fim, com os mesmos valores
modalityON_SITE (presencial) ou REMOTE (à distância)
hours_natureORDINARY, OVERTIME ou COMPLEMENTARY
overtime_compensationREST (descanso) ou PAY (retribuídas), nas extraordinárias
force_majeuretrue se as horas são por força maior
conciliation_measure_keyChave da medida de conciliação (vazia na vista minimizada)
conciliation_measure_textDetalhe da medida (vazio na vista minimizada)
automatic_endtrue se o fim foi posto pelo fecho automático anterior a este registo
incompletetrue se é uma entrada sem saída de um dia já terminado
voided_atInstante em que se anulou o troço
end_voided_atInstante em que se anulou só a saída
has_conciliation_measuretrue se o troço leva uma medida (é a única coisa que a representação vê)

Alterações: changes (change)

Uma linha por cada revisão aplicada e por cada proposta de alteração, com quem propõe, quem autoriza, a discrepância e as marcas de «posterior ao fecho» e de incidente técnico.

ColunaO que contém
employee_id, employee_last_name, employee_first_nameA pessoa afetada
recordrevision (alteração aplicada) ou proposal (proposta)
idIdentificador da linha
proposal_idProposta de que vem uma revisão
clocking_idRegisto afetado
actionCREATE (registo), MOVE (mudança de hora), VOID (anulação) ou RECLASSIFY (reclassificação)
atInstante da alteração
statusPENDING, ACCEPTED, REJECTED ou WITHDRAWN
channelCanal por onde se fez
technical_incidenttrue se é um incidente técnico
after_closetrue se é posterior ao fecho do mês
reasonMotivo da alteração
before, afterComo estava e como fica o registo (em JSON)
authorQuem fez a alteração
author_ipIP a partir do qual se fez (vazio na vista minimizada)
proposed_byQuem propôs
proposed_forEm nome de que parte: EMPLOYEE ou COMPANY
proposer_ipIP de quem propôs
decided_byQuem decidiu
decided_forEm nome de que parte decidiu
decided_atInstante da decisão
decider_ipIP de quem decidiu
decision_reasonMotivo da decisão, se foi rejeitada
employee_discrepancyDiscrepância da pessoa
discrepancy_atQuando a deixou
applied_atQuando se aplicou ao registo
representation_notified_atQuando se avisou os representantes dos trabalhadores

Totais diários: day_totals (day_total)

Uma linha por pessoa e dia. Todos os tempos estão em minutos.

ColunaO que contém
employee_id, employee_last_name, employee_first_nameA pessoa
dateO dia
worked_minutesTrabalho efetivo (inclui as interrupções da desconexão)
ordinary_minutesDele, normais
overtime_minutesDele, extraordinárias
complementary_minutesDele, complementares
unclassified_minutesDele, por classificar (não se usa a proposta, só o guardado)
break_minutesPausas
waiting_minutesEsperas
on_call_minutesTempo à disposição
disconnection_minutesInterrupções da desconexão (já incluídas no trabalho efetivo)
incompletetrue se nesse dia há entradas sem saída
workday_regimeFULL_TIME ou PART_TIME, segundo o contrato em vigor
part_time_percentagePercentagem do tempo parcial
schedule_modeFIXED ou FLEXIBLE
ordinary_limit_exceededtrue se se ultrapassa o máximo diário de horas normais
short_rest_minutesMinutos de descanso desde a jornada anterior, se foi menos de 12 horas

Totais mensais: month_totals (month_total)

Uma linha por pessoa e mês. Repete as nove colunas de minutos dos totais diários (worked_minutes … disconnection_minutes), agora somadas por mês, e acrescenta:

ColunaO que contém
employee_id, employee_last_name, employee_first_nameA pessoa
monthO mês (AAAA-MM)
days_workedDias com trabalho
incomplete_daysDias incompletos
flexible_target_minutesObjetivo do mês em horário flexível
flexible_worked_minutesTrabalhado no mês em horário flexível
flexible_excess_minutesExcesso sobre o objetivo (nunca negativo)
flexible_deficit_minutesDéfice face ao objetivo (nunca negativo)

O cômputo flexível só sai nos meses inteiros que caem dentro do intervalo transferido. O saldo vai dividido em excesso e défice, duas colunas que nunca são negativas.

Colunas da exportação