Alunos
Os alunos são o recurso central da plataforma To Aqui Escola. Use estes endpoints para consultar, obter dados detalhados e gerenciar fotos de alunos vinculados às escolas do seu cliente.
O modelo aluno
O modelo aluno contém os dados de matrícula, identificação, controle de acesso e foto do aluno.
Use o enrollment_number junto com o
CNPJ da escola para identificar unicamente um aluno.
enrollment_number
string
Número de matrícula do aluno na escola.
name
string
Nome completo do aluno.
birthdate
date
Data de nascimento do aluno.
sex
string|null
Sexo do aluno. Ex: "Masculino", "Feminino".
race
string|null
Raça/cor do aluno. Ex: "Branca", "Parda", "Negra", "Indígena", "Amarela", "Não Declarada".
nationality
string|null
Nacionalidade do aluno. Ex: "Brasileiro(a)", "Estrangeiro(a)", "Naturalizado(a)".
cpf
string|null
CPF do aluno (somente dígitos).
rg
string|null
RG do aluno.
rg_issuer
string|null
Órgão emissor do RG. Ex: "SSP/SP".
rg_issue_date
date|null
Data de emissão do RG.
filiation_1
string|null
Nome do pai, mãe ou primeiro responsável.
filiation_2
string|null
Nome do segundo responsável.
additional_info
string|null
Considerações adicionais sobre o aluno.
address
object|null
Endereço residencial do aluno. Contém: address_type, cep, address, number, complement, district, city_id, city, state_id, state.
responsible_cpf
string
CPF do responsável principal.
additional_responsibles
array
Lista de CPFs de responsáveis adicionais.
free_from_school_access
boolean
Indica se o aluno pode sair sem necessidade de verificação dupla.
school_management_can_release
boolean
Permite que a gestão da escola libere a saída do aluno.
photo
string (base64)
Foto do aluno em base64. Retornado quando with_photo=true.
client_cnpj
string
CNPJ do cliente ao qual o aluno pertence.
school_cnpj
string
CNPJ da escola do aluno.
qrcode
string
Valor do QR Code para identificação do aluno ({id}-{enrollment_number}).
{ "enrollment_number": "7.553", "name": "João da Silva", "birthdate": "2015-03-14", "sex": "Masculino", "race": "Parda", "nationality": "Brasileiro(a)", "cpf": "12345678900", "rg": "123456789", "rg_issuer": "SSP/RJ", "rg_issue_date": "2020-06-10", "filiation_1": "Maria da Silva", "filiation_2": null, "additional_info": null, "address": { "address_type": "Residencial", "cep": "20040020", "address": "Rua da Assembléia", "number": "10", "complement": null, "district": "Centro", "city": "Rio de Janeiro", "state": "RJ" }, "responsible_cpf": "123.456.789-00", "additional_responsibles": [], "free_from_school_access": false, "school_management_can_release": true, "photo": "iVBORw0KGgoAAAANS...", "client_cnpj": "12345678000199", "school_cnpj": "26019466000122", "qrcode": "9faea287-2f03-4b26-b234-7.553" }
/v1/partners/students/all
Listar todos os alunos
Retorna todos os alunos vinculados ao cliente autenticado, independente da escola. A resposta é paginada, com os registros em data.
Atributos opcionais (query string)
with_photo
boolean
Inclui o campo photo em base64 na resposta. Padrão:
true.
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/students/all', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]); $students = json_decode($response->getBody(), true);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/students/all', { headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, }); const students = await response.json();
{ "data": [ { "enrollment_number": "7.553", "name": "João da Silva", "school_cnpj": "26019466000122", // ... } ], "links": { /* URLs de paginação */ }, "meta": { "current_page": 1, "per_page": 25, // ... } }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/students/all
Alunos por escola
Retorna todos os alunos de uma escola específica, identificada pelo CNPJ.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Atributos opcionais (query string)
with_photo
boolean
Inclui o campo photo em base64 na resposta. Padrão:
true.
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/school/26019466000122/students/all', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]); $students = json_decode($response->getBody(), true);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/students/all', { headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, }); const students = await response.json();
{ "data": [ { "enrollment_number": "7.553", "name": "João da Silva", // ... } ], "links": { /* URLs de paginação */ }, "meta": { "current_page": 1, "per_page": 25, // ... } }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment}
Obter um aluno
Retorna os dados completos de um aluno específico, identificado pelo número de matrícula e pelo CNPJ da escola.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos).
enrollment_number
string
obrigatório
Número de matrícula do aluno.
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Recurso não encontrado.
-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/school/26019466000122/student/7.553', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]); $student = json_decode($response->getBody(), true);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553', { headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, }); const student = await response.json();
{ "data": { "enrollment_number": "7.553", "name": "João da Silva", "birthdate": "2015-03-14", "sex": "Masculino", "race": "Parda", "nationality": "Brasileiro(a)", "cpf": "12345678900", "rg": "123456789", "rg_issuer": "SSP/RJ", "rg_issue_date": "2020-06-10", "filiation_1": "Maria da Silva", "filiation_2": null, "additional_info": null, "address": { "address_type": "Residencial", "cep": "20040020", "address": "Rua da Assembléia", "number": "10", "complement": null, "district": "Centro", "city": "Rio de Janeiro", "state": "RJ" }, "responsible_cpf": "123.456.789-00", "free_from_school_access": false, "school_cnpj": "26019466000122" } }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment}/photo
Foto do aluno
Retorna a foto do aluno como stream de imagem (content-type image/*). Se a foto não estiver
cadastrada, retorna 404.
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Recurso não encontrado.
-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/school/26019466000122/student/7.553/photo', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]); // $response->getBody() streams the image content
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/photo', { headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, }); // response.blob() returns the image as a Blob const blob = await response.blob();
// Binary image data (image/jpeg, image/png, etc.)
{ "success": false, "message": "Foto não encontrada." }
{ "message": "Autenticação inválida." }
/v1/partners/school/{cnpj}/student/{enrollment}/photo
Enviar foto do aluno
Envia ou substitui a foto de um aluno. A imagem deve ser enviada como string base64 no corpo da requisição.
Atributos obrigatórios (body)
photo
string
obrigatório
Imagem do aluno em formato base64. Apenas formatos de imagem válidos são aceitos.
Códigos de resposta
200
Sucesso.
400
Dados inválidos.
401
Autenticação inválida.
404
Recurso de referência não encontrado.
-H "Content-Type: application/json" \
-H "X-Authorization: {api_token}" \
-d '{"photo": "iVBORw0KGgoAAAANS..."}'
use GuzzleHttp\Client; $client = new Client(); $response = $client->put('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/photo', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], 'json' => ['photo' => 'iVBORw0KGgoAAAANS...'], ]);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/photo', { method: 'PUT', headers: { 'Content-Type': 'application/json', 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, body: JSON.stringify({ photo: 'iVBORw0KGgoAAAANS...' }), });
{ "success": true }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment}/photo/status
Atualizar status da foto
Atualiza o status de aprovação da foto de um aluno no sistema, sem substituir a imagem.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos).
enrollment_number
string
obrigatório
Número de matrícula do aluno.
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Recurso não encontrado.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
use GuzzleHttp\Client; $client = new Client(); $response = $client->patch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/photo/status', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/photo/status', { method: 'PATCH', headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, });
{ "success": true }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment_number}
Excluir um aluno
Exclui permanentemente um aluno identificado pelo número de matrícula e pelo CNPJ da escola. A operação é irreversível.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos).
enrollment_number
string
obrigatório
Número de matrícula do aluno.
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Recurso não encontrado.
-X DELETE \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
use GuzzleHttp\Client; $client = new Client(); $response = $client->delete('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553', { method: 'DELETE', headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, });
{ "success": true }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
{ "success": false, "message": "Aluno não encontrado." }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment_number}/responsible/{cpf}
Vincular responsável legal
Define o responsável legal (primário) de um aluno. O responsável deve estar previamente cadastrado no sistema. Um aluno pode ter apenas um responsável legal por vez.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
enrollment_number
string
obrigatório
Número de matrícula do aluno.
cpf
string
obrigatório
CPF do responsável a ser vinculado (11 dígitos, sem formatação).
Códigos de resposta
200
Sucesso.
400
Dados inválidos.
401
Autenticação inválida.
404
Recurso de referência não encontrado.
-X POST \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
use GuzzleHttp\Client; $client = new Client(); $response = $client->post('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/responsible/12345678900', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/responsible/12345678900', { method: 'POST', headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, });
{ "success": true }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
{ "success": false, "message": "Aluno não encontrado." // ou "Responsável não encontrado." }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment_number}/responsible/{cpf}
Desvincular responsável legal
Remove o vínculo do responsável legal (primário) de um aluno. O responsável não é excluído do sistema, apenas desvinculado deste aluno. O CPF informado deve corresponder ao responsável legal atual do aluno.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
enrollment_number
string
obrigatório
Número de matrícula do aluno.
cpf
string
obrigatório
CPF do responsável legal atual (11 dígitos, sem formatação).
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Recurso não encontrado.
-X DELETE \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
use GuzzleHttp\Client; $client = new Client(); $response = $client->delete('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/responsible/12345678900', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/responsible/12345678900', { method: 'DELETE', headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, });
{ "success": true }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
{ "success": false, "message": "Aluno não encontrado." // ou "Responsável não encontrado." }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment_number}/additional-responsibles
Listar responsáveis adicionais
Retorna todos os responsáveis adicionais vinculados a um aluno específico. O aluno é identificado pelo CNPJ da escola e pelo número de matrícula.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
enrollment_number
string
obrigatório
Número de matrícula do aluno.
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/school/26019466000122/student/7.553/additional-responsibles', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]); $responsibles = json_decode($response->getBody(), true);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/additional-responsibles', { headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, }); const responsibles = await response.json();
{ "data": [ { "name": "Maria da Silva", "birthdate": "1985-06-20", "cpf": "12345678900", "email": "maria@exemplo.com", "school_cnpj": "26019466000122" } ] }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment_number}/additional-responsible/{cpf}
Vincular responsável adicional
Vincula um responsável já cadastrado como responsável adicional de um aluno. O responsável é identificado pelo CPF e deve estar cadastrado no sistema.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
enrollment_number
string
obrigatório
Número de matrícula do aluno.
cpf
string
obrigatório
CPF do responsável a ser vinculado (11 dígitos, sem formatação).
Códigos de resposta
200
Sucesso.
400
Dados inválidos.
401
Autenticação inválida.
404
Recurso de referência não encontrado.
-X POST \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
use GuzzleHttp\Client; $client = new Client(); $response = $client->post('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/additional-responsible/12345678900', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/additional-responsible/12345678900', { method: 'POST', headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, });
{ "success": true }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
{ "success": false, "message": "Aluno não encontrado." // ou "Responsável não encontrado." }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
/v1/partners/school/{cnpj}/student/{enrollment_number}/additional-responsible/{cpf}
Desvincular responsável adicional
Remove o vínculo de um responsável adicional com o aluno. O responsável não é excluído do sistema, apenas desvinculado deste aluno em específico.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
enrollment_number
string
obrigatório
Número de matrícula do aluno.
cpf
string
obrigatório
CPF do responsável a ser desvinculado (11 dígitos, sem formatação).
Códigos de resposta
200
Sucesso.
401
Autenticação inválida.
404
Recurso não encontrado.
-X DELETE \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
use GuzzleHttp\Client; $client = new Client(); $response = $client->delete('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/additional-responsible/12345678900', [ 'headers' => [ 'X-Authorization' => '{api_token}', 'X-Partner' => '{partner_token}', 'X-Client' => '{client_slug}', ], ]);
const response = await fetch('https://toakiescola.com.br/api/v1/partners/school/26019466000122/student/7.553/additional-responsible/12345678900', { method: 'DELETE', headers: { 'X-Authorization': '{api_token}', 'X-Partner': '{partner_token}', 'X-Client': '{client_slug}', }, });
{ "success": true }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }
{ "success": false, "message": "Aluno não encontrado." // ou "Responsável não encontrado." }
{ "message": "Autenticação inválida." }
{ "message": "Recurso não encontrado." }