Horários (Entrada / Saída / Tolerância)
Gerencie os horários de entrada, saída e tolerância da escola. Existem dois modos: o horário global, que define um único horário por turno válido para todos os dias; e o horário semanal, que permite configurar horários distintos para cada dia da semana.
Horário Global
Um único conjunto de horários por turno, aplicado a todos os dias da semana. Existe um único registro por escola.
O modelo horários
A resposta agrupa os horários em schedule
por turno. Para enviar atualizações use os campos planos no formato
{shift}_{checkin|checkout|checkin_tolerance}.
Turnos disponíveis
morning– Manhãafternoon– Tardenight– Noitefullshift– Integral
Formato dos horários: HH:mm (24h).
{ "school_cnpj": "26019466000122", "schedule": { "morning": { "checkin": "07:30", "checkout": "12:00", "checkin_tolerance": "00:15" } } }
/v1/partners/school/{cnpj}/global-schedule
Obter horários
Retorna os horários de entrada, saída e tolerância da escola. Retorna 404 caso ainda não tenham sido definidos.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Escola não encontrada ou horários não definidos.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('.../global-schedule');
await fetch('.../global-schedule');
{ "data": { "morning_checkin": "07:30", "morning_checkout": "12:00", "morning_checkin_tolerance": "00:15", "afternoon_checkin": "13:00", "afternoon_checkout": "17:00" } }
{ "message": "Autenticação inválida." }
{ "message": "Escola não encontrada." }
/v1/partners/school/{cnpj}/global-schedule
Atualizar horários
Atualiza os horários da escola. Campos enviados são atualizados; campos omitidos permanecem inalterados. Se não existir registro, ele é criado.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Parâmetros do corpo
morning_checkin
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
morning_checkout
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
morning_checkin_tolerance
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
afternoon_checkin
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
afternoon_checkout
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
afternoon_checkin_tolerance
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
night_checkin
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
night_checkout
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
night_checkin_tolerance
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
fullshift_checkin
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
fullshift_checkout
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
fullshift_checkin_tolerance
string|null
opcional
Horário no formato HH:MM. Aceita null para remover.
Códigos de resposta
200
Horários atualizados com sucesso.
400
Formato de horário inválido.
401
Autenticação inválida.
404
Escola não encontrada.
-X PUT \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}" \
-H "Content-Type: application/json" \
-d '{"morning_checkin":"07:30","morning_checkout":"12:00"}'
$client->put('.../global-schedule', [ 'json' => [ 'morning_checkin' => '07:30', 'morning_checkout' => '12:00', ], ]);
await fetch('.../global-schedule', { method: 'PUT', body: JSON.stringify({ morning_checkin: '07:30', morning_checkout: '12:00', }), });
{ "data": { "school_cnpj": "26019466000122", "schedule": { "morning": { "checkin": "07:30", "checkout": "12:00", "checkin_tolerance": "00:15" }, "afternoon": { "checkin": "13:00", "checkout": "17:30", "checkin_tolerance": "00:15" }, "night": { "checkin": null, "checkout": null, "checkin_tolerance": null }, "fullshift": { "checkin": null, "checkout": null, "checkin_tolerance": null } } } }
{ "message": "Formato de horário inválido." }
{ "message": "Autenticação inválida." }
{ "message": "Escola não encontrada." }
Horário Semanal
Permite configurar horários distintos para cada dia da semana e cada turno (manhã, tarde, noite). Inclui tolerância de entrada global e suporte opcional a sábado e domingo.
O modelo horário semanal
A resposta agrupa os horários por dia da semana e turno. Os dias disponíveis são
monday a
sunday.
Os turnos são morning,
afternoon e
night.
A tolerância de entrada (checkin_tolerance)
é única e se aplica a todos os dias.
name
string
Nome do horário semanal.
checkin_tolerance
string
Tolerância de entrada (HH:mm) aplicada a todos os dias.
has_saturday
boolean
Indica se a escola opera aos sábados.
has_sunday
boolean
Indica se a escola opera aos domingos.
week
object
Objeto com as chaves dos dias da semana, cada uma contendo os turnos com checkin e checkout.
{ "school_cnpj": "26019466000122", "name": "Padrão 2025", "checkin_tolerance": "00:15", "has_saturday": false, "has_sunday": false, "week": { "monday": { "morning": { "checkin": "07:30", "checkout": "12:00" }, "afternoon": { "checkin": "13:00", "checkout": "17:30" }, "night": { "checkin": null, "checkout": null } }, "tuesday": { ... } } }
/v1/partners/school/{cnpj}/weekly-schedule
Obter horário semanal
Retorna o horário semanal configurado para a escola. Retorna 404 caso ainda não tenha sido definido.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Escola não encontrada ou horário semanal não definido.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('.../weekly-schedule');
await fetch('.../weekly-schedule');
{ "data": { "school_cnpj": "26019466000122", "name": "Padrão 2025", "checkin_tolerance": "00:15", "has_saturday": false, "has_sunday": false, "week": { "monday": { "morning": { "checkin": "07:30", "checkout": "12:00" }, "afternoon": { "checkin": "13:00", "checkout": "17:30" } }, ... } } }
{ "message": "Autenticação inválida." }
{ "message": "Escola não encontrada ou horário semanal não definido." }
/v1/partners/school/{cnpj}/weekly-schedule
Atualizar horário semanal
Atualiza o horário semanal da escola. Campos enviados são atualizados; campos omitidos permanecem inalterados. Se não existir registro, ele é criado. Os campos de horário seguem o padrão {dia}_{turno}_checkin e {dia}_{turno}_checkout.
⚠ Regra — Configuração completa de segunda a sexta
Para cada turno que possua ao menos um horário preenchido, todos os dias de segunda a sexta devem estar configurados (checkin e checkout). Se qualquer dia de segunda a sexta estiver faltando para um turno já iniciado, a API retorna 422 com uma mensagem indicando quais turnos estão incompletos.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Parâmetros do corpo
name
string|null
opcional
Nome do horário semanal (até 100 caracteres).
checkin_tolerance
string|null
opcional
Tolerância de entrada no formato HH:MM, aplicada a todos os dias.
has_saturday
boolean|null
opcional
Define se a escola opera aos sábados.
has_sunday
boolean|null
opcional
Define se a escola opera aos domingos.
monday_morning_checkin
string|null
opcional
Segunda – Manhã: horário de entrada (HH:MM).
monday_morning_checkout
string|null
opcional
Segunda – Manhã: horário de saída (HH:MM).
monday_afternoon_checkin
string|null
opcional
Segunda – Tarde: horário de entrada (HH:MM).
monday_afternoon_checkout
string|null
opcional
Segunda – Tarde: horário de saída (HH:MM).
monday_night_checkin
string|null
opcional
Segunda – Noite: horário de entrada (HH:MM).
monday_night_checkout
string|null
opcional
Segunda – Noite: horário de saída (HH:MM).
tuesday_morning_checkin
string|null
opcional
Terça – Manhã: horário de entrada (HH:MM).
tuesday_morning_checkout
string|null
opcional
Terça – Manhã: horário de saída (HH:MM).
tuesday_afternoon_checkin
string|null
opcional
Terça – Tarde: horário de entrada (HH:MM).
tuesday_afternoon_checkout
string|null
opcional
Terça – Tarde: horário de saída (HH:MM).
tuesday_night_checkin
string|null
opcional
Terça – Noite: horário de entrada (HH:MM).
tuesday_night_checkout
string|null
opcional
Terça – Noite: horário de saída (HH:MM).
wednesday_morning_checkin
string|null
opcional
Quarta – Manhã: horário de entrada (HH:MM).
wednesday_morning_checkout
string|null
opcional
Quarta – Manhã: horário de saída (HH:MM).
wednesday_afternoon_checkin
string|null
opcional
Quarta – Tarde: horário de entrada (HH:MM).
wednesday_afternoon_checkout
string|null
opcional
Quarta – Tarde: horário de saída (HH:MM).
wednesday_night_checkin
string|null
opcional
Quarta – Noite: horário de entrada (HH:MM).
wednesday_night_checkout
string|null
opcional
Quarta – Noite: horário de saída (HH:MM).
thursday_morning_checkin
string|null
opcional
Quinta – Manhã: horário de entrada (HH:MM).
thursday_morning_checkout
string|null
opcional
Quinta – Manhã: horário de saída (HH:MM).
thursday_afternoon_checkin
string|null
opcional
Quinta – Tarde: horário de entrada (HH:MM).
thursday_afternoon_checkout
string|null
opcional
Quinta – Tarde: horário de saída (HH:MM).
thursday_night_checkin
string|null
opcional
Quinta – Noite: horário de entrada (HH:MM).
thursday_night_checkout
string|null
opcional
Quinta – Noite: horário de saída (HH:MM).
friday_morning_checkin
string|null
opcional
Sexta – Manhã: horário de entrada (HH:MM).
friday_morning_checkout
string|null
opcional
Sexta – Manhã: horário de saída (HH:MM).
friday_afternoon_checkin
string|null
opcional
Sexta – Tarde: horário de entrada (HH:MM).
friday_afternoon_checkout
string|null
opcional
Sexta – Tarde: horário de saída (HH:MM).
friday_night_checkin
string|null
opcional
Sexta – Noite: horário de entrada (HH:MM).
friday_night_checkout
string|null
opcional
Sexta – Noite: horário de saída (HH:MM).
saturday_morning_checkin
string|null
opcional
Sábado – Manhã: horário de entrada (HH:MM).
saturday_morning_checkout
string|null
opcional
Sábado – Manhã: horário de saída (HH:MM).
saturday_afternoon_checkin
string|null
opcional
Sábado – Tarde: horário de entrada (HH:MM).
saturday_afternoon_checkout
string|null
opcional
Sábado – Tarde: horário de saída (HH:MM).
saturday_night_checkin
string|null
opcional
Sábado – Noite: horário de entrada (HH:MM).
saturday_night_checkout
string|null
opcional
Sábado – Noite: horário de saída (HH:MM).
sunday_morning_checkin
string|null
opcional
Domingo – Manhã: horário de entrada (HH:MM).
sunday_morning_checkout
string|null
opcional
Domingo – Manhã: horário de saída (HH:MM).
sunday_afternoon_checkin
string|null
opcional
Domingo – Tarde: horário de entrada (HH:MM).
sunday_afternoon_checkout
string|null
opcional
Domingo – Tarde: horário de saída (HH:MM).
sunday_night_checkin
string|null
opcional
Domingo – Noite: horário de entrada (HH:MM).
sunday_night_checkout
string|null
opcional
Domingo – Noite: horário de saída (HH:MM).
Códigos de resposta
200
Horário semanal atualizado com sucesso.
422
Formato de horário inválido.
401
Autenticação inválida.
404
Escola não encontrada.
-X PUT \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}" \
-H "Content-Type: application/json" \
-d '{"checkin_tolerance":"00:15","monday_morning_checkin":"07:30","monday_morning_checkout":"12:00"}'
$client->put('.../weekly-schedule', [ 'json' => [ 'checkin_tolerance' => '00:15', 'monday_morning_checkin' => '07:30', 'monday_morning_checkout' => '12:00', 'monday_afternoon_checkin' => '13:00', 'monday_afternoon_checkout' => '17:30', ], ]);
await fetch('.../weekly-schedule', { method: 'PUT', body: JSON.stringify({ checkin_tolerance: '00:15', monday_morning_checkin: '07:30', monday_morning_checkout: '12:00', }), });
{ "data": { "school_cnpj": "26019466000122", "name": "Padrão 2025", "checkin_tolerance": "00:15", "has_saturday": false, "has_sunday": false, "week": { "monday": { "morning": { "checkin": "07:30", "checkout": "12:00" } } } } }
{ "message": "Formato de horário inválido." }
{ "message": "Autenticação inválida." }
{ "message": "Escola não encontrada." }