Escolas
As escolas representam as unidades escolares vinculadas à rede do cliente autenticado. Utilize estes endpoints para consultar todas as escolas disponíveis e seus dados cadastrais.
O modelo escola
O modelo escola contém os dados cadastrais das unidades vinculadas ao seu cliente. Utilize o
cnpj como identificador
para filtrar outros recursos por escola.
id
string (uuid)
Identificador único da escola no sistema.
social_name
string
Razão social da escola.
name
string
Nome fantasia da escola.
cnpj
string
CNPJ da escola (14 dígitos, sem formatação). Usado como chave nos demais endpoints.
director
object|null
Dados do(a) diretor(a) da escola. Null se não houver diretor(a) cadastrado(a).
director.id
string (uuid)
Identificador único do(a) diretor(a).
director.name
string
Nome completo do(a) diretor(a).
director.email
string
E-mail do(a) diretor(a).
director.birthdate
string|null
Data de nascimento do(a) diretor(a) (formato Y-m-d).
{ "id": "9faea287-2f03-4b26-b234-3d3c1a2bc4e1", "social_name": "Colégio Exemplo LTDA", "name": "Colégio Exemplo", "cnpj": "26019466000122", "director": { "id": "9faea287-0000-0000-0000-000000000099", "name": "Ana Oliveira", "email": "diretora@colegio.com.br", "birthdate": "1980-03-15" } }
/v1/partners/schools/all
Listar todas as escolas
Retorna a lista paginada de escolas vinculadas ao cliente autenticado. Os dados incluem o CNPJ de cada
escola, que é necessário para consultar alunos, responsáveis e registros de frequência. Os resultados
vem dentro do campo data, com metadados de paginação nos campos links e meta.
Cabeçalhos obrigatórios
X-Authorization
obrigatório
X-Partner
obrigatório
X-Client
obrigatório
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
use GuzzleHttp\Client; $client = new Client(); $response = $client->get('https://toakiescola.com.br/api/v1/partners/schools/all', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]); $schools = json_decode($response->getBody(), true);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/schools/all', { headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, }); const schools = await response.json();
{ "data": [ { "id": "9faea287-2f03-4b26-b234-3d3c1a2bc4e1", "social_name": "Colégio Exemplo LTDA", "name": "Colégio Exemplo", "cnpj": "26019466000122", "director": { "id": "9faea287-0000-0000-0000-000000000099", "name": "Ana Oliveira", "email": "diretora@colegio.com.br", "birthdate": "1980-03-15" } }, { // ... } ], "links": { "first": "https://api.toaquiescola.com.br/v1/partners/schools/all?page=1", "last": null, "prev": null, "next": null }, "meta": { "current_page": 1, "per_page": 25, "from": 1, "to": 25 } }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
O modelo espaço físico
Os espaços físicos representam os ambientes disponíveis na escola para uso pelos alunos (por exemplo: quadra poliesportiva, auditório, laboratório de informática, etc.).
id
uuid
Identificador único.
name
string
Nome do espaço físico (até 100 caracteres).
maximum_capacity
integer
Capacidade máxima de pessoas no espaço.
description
string|null
Descrição opcional do espaço físico.
school_cnpj
string
CNPJ da escola.
{ "id": "a1b2c3d4-...", "name": "Quadra Poliesportiva", "maximum_capacity": 200, "description": "Quadra coberta para atividades esportivas.", "school_cnpj": "26019466000122" }
/v1/partners/school/{cnpj}/physical-spaces/all
Listar espaços físicos
Retorna todos os espaços físicos cadastrados na escola. Resposta paginada.
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.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('https://toakiescola.com.br/api/v1/partners/school/26019466000122/physical-spaces/all', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]);
const res = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/physical-spaces/all', { headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, });
{ "data": [ { "id": "a1b2c3d4-...", "name": "Quadra Poliesportiva", "maximum_capacity": 200, "description": "Quadra coberta para atividades esportivas.", "school_cnpj": "26019466000122" } ], "meta": { /* metadados de paginação */ } }
{ "message": "Autenticação inválida." }
{ "message": "Escola não encontrada." }
/v1/partners/school/{cnpj}/physical-space/{id}
Obter espaço físico
Retorna um espaço físico 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 espaço físico.
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Escola ou espaço físico não encontrado.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$client->get('.../physical-space/{id}');
await fetch('.../physical-space/{id}');
{ "data": { "id": "a1b2c3d4-...", "name": "Quadra Poliesportiva", "maximum_capacity": 200, "description": "Quadra coberta para atividades esportivas.", "school_cnpj": "26019466000122" } }
{ "message": "Autenticação inválida." }
{ "message": "Escola ou espaço físico não encontrado." }
Portões de Entrada
Cadastre os portões físicos da escola usados nos registros de entrada e saída de alunos.
O modelo portão
id
uuid
Identificador do portão.
name
string
Nome (até 50 caracteres).
school_cnpj
string
CNPJ da escola.
{ "id": "...", "name": "Portão Principal", "school_cnpj": "26019466000122" }
/v1/partners/school/{cnpj}/entrances/all
Listar Portões
Lista todos os portões 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}/entrances/all');
await fetch('.../v1/partners/school/{cnpj}/entrances/all');
{ "data": [ { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "name": "Portão Principal", "school_cnpj": "26019466000122" } ], "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}/entrance/{id}
Obter Portão
Retorna um portão 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 portã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}/entrance/{id}');
await fetch('.../v1/partners/school/{cnpj}/entrance/{id}');
{ "data": { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "name": "Portão Principal", "school_cnpj": "26019466000122" } }
{ "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}/entrance
Criar Portão
Cria um portão.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Parâmetros do corpo
name
string
obrigatório
Nome do portão (até 50 caracteres).
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 '{ "name"*: "..." }'
$client->post('.../v1/partners/school/{cnpj}/entrance', ['json' => [/* ... */]]);
await fetch('.../v1/partners/school/{cnpj}/entrance', {
method: 'POST',
body: JSON.stringify({/* ... */})
});
{ "data": { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "name": "Portão Principal", "school_cnpj": "26019466000122" } }
{ "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}/entrance/{id}
Editar Portão
Atualiza um portão.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID do portão.
Parâmetros do corpo
name
string
opcional
Novo nome do portão.
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 '{ "name": "..." }'
$client->put('.../v1/partners/school/{cnpj}/entrance/{id}', ['json' => [/* ... */]]);
await fetch('.../v1/partners/school/{cnpj}/entrance/{id}', {
method: 'PUT',
body: JSON.stringify({/* ... */})
});
{ "data": { "id": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890", "name": "Portão Principal", "school_cnpj": "26019466000122" } }
{ "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}/entrance/{id}
Excluir Portão
Remove um portão.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID do portão.
Códigos de resposta
200
Sucesso.
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}/entrance/{id}');
await fetch('.../v1/partners/school/{cnpj}/entrance/{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." }