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.
{ "id": "...", "school_year_id": "...", "grade_id": "...", "subject_id": "...", "period": 1, "items": [ { "habilidade_id": "..." } ] }
/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.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('.../v1/partners/school/{cnpj}/curriculum-plans/all');
await fetch('.../v1/partners/school/{cnpj}/curriculum-plans/all');
{ "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 */ } }
{ "message": "Autenticação inválida. Verifique os cabeçalhos X-Authorization, X-Partner e X-Client." }
{ "message": "Escola ou recurso não encontrado." }
/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.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('.../v1/partners/school/{cnpj}/curriculum-plan/{id}');
await fetch('.../v1/partners/school/{cnpj}/curriculum-plan/{id}');
{ "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": [] } }
{ "message": "Autenticação inválida. Verifique os cabeçalhos X-Authorization, X-Partner e X-Client." }
{ "message": "Escola ou recurso não encontrado." }
/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.
-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": "..." }'
$client->post('.../v1/partners/school/{cnpj}/curriculum-plan', ['json' => [/* ... */]]);
await fetch('.../v1/partners/school/{cnpj}/curriculum-plan', {
method: 'POST',
body: JSON.stringify({/* ... */})
});
{ "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": [] } }
{ "message": "Os dados fornecidos são inválidos.", "errors": { "name": ["O campo nome é obrigatório."] } }
{ "message": "Autenticação inválida. Verifique os cabeçalhos X-Authorization, X-Partner e X-Client." }
{ "message": "Escola ou recurso não encontrado." }
/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.
-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": "..." }'
$client->put('.../v1/partners/school/{cnpj}/curriculum-plan/{id}', ['json' => [/* ... */]]);
await fetch('.../v1/partners/school/{cnpj}/curriculum-plan/{id}', {
method: 'PUT',
body: JSON.stringify({/* ... */})
});
{ "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": [] } }
{ "message": "Os dados fornecidos são inválidos.", "errors": { "name": ["O campo nome é obrigatório."] } }
{ "message": "Autenticação inválida. Verifique os cabeçalhos X-Authorization, X-Partner e X-Client." }
{ "message": "Escola ou recurso não encontrado." }
/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.
-X DELETE \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->delete('.../v1/partners/school/{cnpj}/curriculum-plan/{id}');
await fetch('.../v1/partners/school/{cnpj}/curriculum-plan/{id}', {
method: 'DELETE'
});
{ "message": "Recurso removido com sucesso." }
{ "message": "Autenticação inválida. Verifique os cabeçalhos X-Authorization, X-Partner e X-Client." }
{ "message": "Escola ou recurso não encontrado." }