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 – Tarde
  • night – Noite
  • fullshift – Integral

Formato dos horários: HH:mm (24h).

Modelo horários
{
  "school_cnpj": "26019466000122",
  "schedule": {
    "morning": {
      "checkin": "07:30",
      "checkout": "12:00",
      "checkin_tolerance": "00:15"
    }
  }
}
GET /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.

Requisição GET
GET /v1/partners/school/{cnpj}/global-schedule
curl https://toakiescola.com.br/api/v1/partners/school/26019466000122/global-schedule \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "data": {
    "morning_checkin": "07:30",
    "morning_checkout": "12:00",
    "morning_checkin_tolerance": "00:15",
    "afternoon_checkin": "13:00",
    "afternoon_checkout": "17:00"
  }
}
PUT /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.

Requisição PUT
PUT /v1/partners/school/{cnpj}/global-schedule
curl https://toakiescola.com.br/api/v1/partners/school/26019466000122/global-schedule \
  -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"}'
Resposta
{
  "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 }
    }
  }
}

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.

Modelo horário semanal
{
  "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": { ... }
  }
}
GET /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.

Requisição GET
GET /v1/partners/school/{cnpj}/weekly-schedule
curl https://toakiescola.com.br/api/v1/partners/school/26019466000122/weekly-schedule \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "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" } },
      ...
    }
  }
}
PUT /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.

Requisição PUT
PUT /v1/partners/school/{cnpj}/weekly-schedule
curl https://toakiescola.com.br/api/v1/partners/school/26019466000122/weekly-schedule \
  -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"}'
Resposta
{
  "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" } } }
  }
}