Plano de Curso (BNCC)

O plano de curso registra, para um determinado ano letivo, série e disciplina (ou campo de experiência da BNCC), as habilidades e objetivos pedagógicos a serem trabalhados.

O modelo plano de curso

id uuid

Identificador do plano.

school_year_id uuid

UUID do ano letivo.

grade_id uuid

UUID da série.

subject_id uuid|null

UUID da disciplina (quando aplicável).

campo_id uuid|null

UUID do campo de experiência BNCC (Educação Infantil).

period integer|null

Bimestre/trimestre (1–255).

notes text|null

Observações.

items array

Lista de habilidades e/ou objetivos.

items[].habilidade_id uuid|null

UUID da habilidade BNCC.

items[].objetivo_id uuid|null

UUID do objetivo BNCC.

Modelo plano de curso
{
  "id": "...",
  "school_year_id": "...",
  "grade_id": "...",
  "subject_id": "...",
  "period": 1,
  "items": [
    { "habilidade_id": "..." }
  ]
}
GET /v1/partners/school/{cnpj}/curriculum-plans/all

Listar Planos de curso

Lista todos os planos de curso da escola.

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 ou recurso não encontrado.

Requisição GET
GET /v1/partners/school/{cnpj}/curriculum-plans/all
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/curriculum-plans/all \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "data": [
    {
    "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
      "school_year_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901",
      "grade_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
      "subject_id": "d4e5f6a7-b8c9-0123-de45-fa67bc890123",
      "campo_id": null,
      "period": 1,
      "notes": "Revisão dos conceitos básicos de numeração.",
      "grade": "5º Ano",
      "subject": "Matemática",
      "school_year": "2025",
      "items": []
    }
  ],
  "links": { /* paginação */ },
  "meta": { /* paginação */ }
}
GET /v1/partners/school/{cnpj}/curriculum-plan/{id}

Obter Plano de curso

Retorna um plano de curso pelo UUID.

Parâmetros de rota

cnpj string obrigatório

CNPJ da escola (14 dígitos, sem formatação).

id uuid obrigatório

UUID do plano de curso.

Códigos de resposta

200

Sucesso.

401

Autenticação inválida.

404

Escola ou recurso não encontrado.

Requisição GET
GET /v1/partners/school/{cnpj}/curriculum-plan/{id}
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/curriculum-plan/{id} \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
    "school_year_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901",
    "grade_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
    "subject_id": "d4e5f6a7-b8c9-0123-de45-fa67bc890123",
    "campo_id": null,
    "period": 1,
    "notes": "Revisão dos conceitos básicos de numeração.",
    "grade": "5º Ano",
    "subject": "Matemática",
    "school_year": "2025",
    "items": []
  }
}
POST /v1/partners/school/{cnpj}/curriculum-plan

Criar Plano de curso

Cria um plano de curso.

Parâmetros de rota

cnpj string obrigatório

CNPJ da escola (14 dígitos, sem formatação).

Parâmetros do corpo

school_year_id uuid obrigatório

UUID do ano letivo.

grade_id uuid obrigatório

UUID da série.

subject_id uuid opcional

UUID da disciplina (use quando não for campo de experiência BNCC).

campo_id uuid opcional

UUID do campo de experiência BNCC (Educação Infantil).

period integer opcional

Bimestre/trimestre (1–255).

notes text opcional

Observações livres.

items array opcional

Lista de habilidades/objetivos. Cada item: habilidade_id ou objetivo_id.

Códigos de resposta

201

Recurso criado com sucesso.

400

Dados inválidos.

401

Autenticação inválida.

404

Escola ou recurso não encontrado.

Requisição POST
POST /v1/partners/school/{cnpj}/curriculum-plan
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/curriculum-plan \
  -X POST \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}" \
  -H "Content-Type: application/json" \
  -d '{ "school_year_id"*: "...", "grade_id"*: "...", "subject_id": "...", "campo_id": "...", "period": "...", "notes": "...", "items": "..." }'
Resposta
{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
    "school_year_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901",
    "grade_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
    "subject_id": "d4e5f6a7-b8c9-0123-de45-fa67bc890123",
    "campo_id": null,
    "period": 1,
    "notes": "Revisão dos conceitos básicos de numeração.",
    "grade": "5º Ano",
    "subject": "Matemática",
    "school_year": "2025",
    "items": []
  }
}
PUT /v1/partners/school/{cnpj}/curriculum-plan/{id}

Editar Plano de curso

Atualiza um plano de curso.

Parâmetros de rota

cnpj string obrigatório

CNPJ da escola (14 dígitos, sem formatação).

id uuid obrigatório

UUID do plano de curso.

Parâmetros do corpo

period integer opcional

Bimestre/trimestre.

notes text opcional

Observações.

items array opcional

Quando enviado, substitui todos os itens existentes.

Códigos de resposta

200

Sucesso.

400

Dados inválidos.

401

Autenticação inválida.

404

Escola ou recurso não encontrado.

Requisição PUT
PUT /v1/partners/school/{cnpj}/curriculum-plan/{id}
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/curriculum-plan/{id} \
  -X PUT \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}" \
  -H "Content-Type: application/json" \
  -d '{ "period": "...", "notes": "...", "items": "..." }'
Resposta
{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
    "school_year_id": "b2c3d4e5-f6a7-8901-bc23-de45fa678901",
    "grade_id": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
    "subject_id": "d4e5f6a7-b8c9-0123-de45-fa67bc890123",
    "campo_id": null,
    "period": 1,
    "notes": "Revisão dos conceitos básicos de numeração.",
    "grade": "5º Ano",
    "subject": "Matemática",
    "school_year": "2025",
    "items": []
  }
}
DELETE /v1/partners/school/{cnpj}/curriculum-plan/{id}

Excluir Plano de curso

Remove um plano de curso. A exclusão é bloqueada quando a disciplina vinculada ao plano está sendo utilizada no quadro de horários de ao menos uma turma (retorna IN_USE_BY_TIMETABLE com HTTP 422).

Parâmetros de rota

cnpj string obrigatório

CNPJ da escola (14 dígitos, sem formatação).

id uuid obrigatório

UUID do plano de curso.

Códigos de resposta

200

Sucesso.

422

Exclusão bloqueada. A disciplina associada está em uso no quadro de horários de ao menos uma turma (IN_USE_BY_TIMETABLE).

401

Autenticação inválida.

404

Escola ou recurso não encontrado.

Requisição DELETE
DELETE /v1/partners/school/{cnpj}/curriculum-plan/{id}
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/curriculum-plan/{id} \
  -X DELETE \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "message": "Recurso removido com sucesso."
}