Eventos
Eventos da escola — festas, reuniões, feiras — com confirmação de presença das famílias, lista de convidados e check-in na entrada. Publique eventos a partir do seu calendário e acompanhe as confirmações e a presença.
O modelo evento
id
uuid
Identificador do evento.
status
string
DRAFT, PUBLISHED, ONGOING, CLOSED ou CANCELLED.
starts_at / ends_at
datetime
Início e término.
capacity / max_guests_per_responsible
integer
Lotação e convidados por família.
rsvp_enabled / rsvp_deadline
boolean / datetime
Confirmação de presença e seu prazo.
payment_enabled / payment_amount
boolean / number
Evento pago e valor do ingresso (configurados pela escola).
registrations_count / attendees_count / checked_in_count
integer
Inscrições, participantes e quantos já entraram.
{ "id": "01a02d07-1702-7155-a2a3-09064f1cd32d", "name": "Festa da Família", "description": "Confraternização anual das famílias.", "location": "Quadra poliesportiva", "status": "PUBLISHED", "status_label": "Publicado", "school_year_id": "019e6e4b-30ff-7140-89ff-810f32d19a18", "starts_at": "2026-11-07T15:00:00-03:00", "ends_at": "2026-11-07T19:00:00-03:00", "capacity": 300, "max_guests_per_responsible": 2, "rsvp_enabled": true, "rsvp_deadline": "2026-10-31T23:59:00-03:00", "payment_enabled": false, "payment_amount": null, "registrations_count": 84, "attendees_count": 211, "checked_in_count": 0, "created_at": "2026-09-20T10:00:00-03:00", "updated_at": "2026-09-20T10:00:00-03:00" }
/v1/partners/school/{cnpj}/events/all
Listar eventos
Eventos da escola com contagem de inscrições, participantes e check-ins, do mais recente para o mais antigo. Paginado (25 por página).
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
Filtros (query string)
status
string
opcional
DRAFT, PUBLISHED, ONGOING, CLOSED ou CANCELLED.
from
date
opcional
Eventos que começam a partir de (AAAA-MM-DD).
to
date
opcional
Eventos que começam até (AAAA-MM-DD).
Códigos de resposta
200
Sucesso.
401
Credenciais inválidas (X-Partner, X-Client ou X-Authorization).
403
Cliente fora do plano Gestão Escolar (ERP_REQUIRED) ou módulo exclusivo de escolas privadas (PRIVATE_CLIENT_REQUIRED).
404
Escola ou recurso não encontrado.
422
Parâmetros inválidos — veja errors.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$response = $client->get('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/events/all', [ 'headers' => $headers, // X-Authorization, X-Partner, X-Client ]);
const res = await fetch('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/events/all', { method: 'GET', headers: { /* X-Authorization, X-Partner, X-Client */ 'Content-Type': 'application/json' }, });
{ "data": [ { "id": "01a02d07-1702-7155-a2a3-09064f1cd32d", "name": "Festa da Família", "description": "Confraternização anual das famílias.", "location": "Quadra poliesportiva", "status": "PUBLISHED", "status_label": "Publicado", "school_year_id": "019e6e4b-30ff-7140-89ff-810f32d19a18", "starts_at": "2026-11-07T15:00:00-03:00", "ends_at": "2026-11-07T19:00:00-03:00", "capacity": 300, "max_guests_per_responsible": 2, "rsvp_enabled": true, "rsvp_deadline": "2026-10-31T23:59:00-03:00", "payment_enabled": false, "payment_amount": null, "registrations_count": 84, "attendees_count": 211, "checked_in_count": 0, "created_at": "2026-09-20T10:00:00-03:00", "updated_at": "2026-09-20T10:00:00-03:00" } ], "links": { /* first, prev, next */ }, "meta": { "current_page": 1, "per_page": 25 } }
{ "success": false, "message": "Escola não encontrada." }
/v1/partners/school/{cnpj}/event/{id}
Obter evento
Um evento.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID do evento.
Códigos de resposta
200
Sucesso.
401
Credenciais inválidas (X-Partner, X-Client ou X-Authorization).
403
Cliente fora do plano Gestão Escolar (ERP_REQUIRED) ou módulo exclusivo de escolas privadas (PRIVATE_CLIENT_REQUIRED).
404
Escola ou recurso não encontrado.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$response = $client->get('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}', [ 'headers' => $headers, // X-Authorization, X-Partner, X-Client ]);
const res = await fetch('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}', { method: 'GET', headers: { /* X-Authorization, X-Partner, X-Client */ 'Content-Type': 'application/json' }, });
{ "data": { "id": "01a02d07-1702-7155-a2a3-09064f1cd32d", "name": "Festa da Família", "description": "Confraternização anual das famílias.", "location": "Quadra poliesportiva", "status": "PUBLISHED", "status_label": "Publicado", "school_year_id": "019e6e4b-30ff-7140-89ff-810f32d19a18", "starts_at": "2026-11-07T15:00:00-03:00", "ends_at": "2026-11-07T19:00:00-03:00", "capacity": 300, "max_guests_per_responsible": 2, "rsvp_enabled": true, "rsvp_deadline": "2026-10-31T23:59:00-03:00", "payment_enabled": false, "payment_amount": null, "registrations_count": 84, "attendees_count": 211, "checked_in_count": 0, "created_at": "2026-09-20T10:00:00-03:00", "updated_at": "2026-09-20T10:00:00-03:00" } }
{ "success": false, "message": "Escola não encontrada." }
/v1/partners/school/{cnpj}/event
Criar evento
Cria um evento no ano letivo corrente da escola. Dispara o webhook event.created.
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 evento.
starts_at
datetime
obrigatório
Início (AAAA-MM-DD HH:MM:SS, horário de Brasília).
ends_at
datetime
opcional
Término — igual ou posterior ao início.
description
string
opcional
Descrição (até 6000 caracteres).
location
string
opcional
Local.
capacity
integer
opcional
Lotação máxima.
max_guests_per_responsible
integer
opcional
Convidados por responsável (0–100, padrão 0).
rsvp_enabled
boolean
opcional
Pede confirmação de presença às famílias (padrão false).
rsvp_deadline
datetime
opcional
Prazo para confirmar — até o início do evento.
status
string
opcional
DRAFT (padrão) ou PUBLISHED.
Eventos criados pela API são sempre gratuitos (payment_enabled: false). Cobrança de ingressos é configurada apenas pela escola, que é quem recebe os valores.
Códigos de resposta
201
Recurso criado.
401
Credenciais inválidas (X-Partner, X-Client ou X-Authorization).
403
Cliente fora do plano Gestão Escolar (ERP_REQUIRED) ou módulo exclusivo de escolas privadas (PRIVATE_CLIENT_REQUIRED).
404
Escola ou recurso não encontrado.
422
Parâmetros inválidos — veja errors.
-X POST \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}" \
-H "Content-Type: application/json" \
-d '{"name":"Feira de Ciências","starts_at":"2026-11-20 09:00:00","ends_at":"2026-11-20 12:00:00","location":"Auditório","rsvp_enabled":true}'
$response = $client->post('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event', [ 'headers' => $headers, // X-Authorization, X-Partner, X-Client 'json' => json_decode('{"name":"Feira de Ciências","starts_at":"2026-11-20 09:00:00","ends_at":"2026-11-20 12:00:00","location":"Auditório","rsvp_enabled":true}', true), ]);
const res = await fetch('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event', { method: 'POST', headers: { /* X-Authorization, X-Partner, X-Client */ 'Content-Type': 'application/json' }, body: JSON.stringify({"name":"Feira de Ciências","starts_at":"2026-11-20 09:00:00","ends_at":"2026-11-20 12:00:00","location":"Auditório","rsvp_enabled":true}), });
{ "data": { "id": "01a02d07-1702-7155-a2a3-09064f1cd32d", "name": "Feira de Ciências", "description": "Confraternização anual das famílias.", "location": "Quadra poliesportiva", "status": "DRAFT", "status_label": "Rascunho", "school_year_id": "019e6e4b-30ff-7140-89ff-810f32d19a18", "starts_at": "2026-11-07T15:00:00-03:00", "ends_at": "2026-11-07T19:00:00-03:00", "capacity": 300, "max_guests_per_responsible": 2, "rsvp_enabled": true, "rsvp_deadline": "2026-10-31T23:59:00-03:00", "payment_enabled": false, "payment_amount": null, "registrations_count": 0, "attendees_count": 0, "checked_in_count": 0, "created_at": "2026-09-20T10:00:00-03:00", "updated_at": "2026-09-20T10:00:00-03:00" } }
{ "success": false, "message": "Escola não encontrada." }
/v1/partners/school/{cnpj}/event/{id}
Editar evento
Atualiza um evento. Somente os campos enviados são alterados; as datas resultantes precisam continuar coerentes (término após o início, prazo de confirmação antes do início). Dispara o webhook event.updated.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID do evento.
Parâmetros do corpo
name
string
opcional
Nome do evento.
starts_at
datetime
opcional
Início (AAAA-MM-DD HH:MM:SS, horário de Brasília).
ends_at
datetime
opcional
Término — igual ou posterior ao início.
description
string
opcional
Descrição (até 6000 caracteres).
location
string
opcional
Local.
capacity
integer
opcional
Lotação máxima.
max_guests_per_responsible
integer
opcional
Convidados por responsável (0–100, padrão 0).
rsvp_enabled
boolean
opcional
Pede confirmação de presença às famílias (padrão false).
rsvp_deadline
datetime
opcional
Prazo para confirmar — até o início do evento.
Códigos de resposta
200
Sucesso.
401
Credenciais inválidas (X-Partner, X-Client ou X-Authorization).
403
Cliente fora do plano Gestão Escolar (ERP_REQUIRED) ou módulo exclusivo de escolas privadas (PRIVATE_CLIENT_REQUIRED).
404
Escola ou recurso não encontrado.
422
Dados inválidos, ou datas incoerentes (INVALID_DATES).
-X PUT \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}" \
-H "Content-Type: application/json" \
-d '{"location":"Ginásio","capacity":400}'
$response = $client->put('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}', [ 'headers' => $headers, // X-Authorization, X-Partner, X-Client 'json' => json_decode('{"location":"Ginásio","capacity":400}', true), ]);
const res = await fetch('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}', { method: 'PUT', headers: { /* X-Authorization, X-Partner, X-Client */ 'Content-Type': 'application/json' }, body: JSON.stringify({"location":"Ginásio","capacity":400}), });
{ "data": { "id": "01a02d07-1702-7155-a2a3-09064f1cd32d", "name": "Festa da Família", "description": "Confraternização anual das famílias.", "location": "Ginásio", "status": "PUBLISHED", "status_label": "Publicado", "school_year_id": "019e6e4b-30ff-7140-89ff-810f32d19a18", "starts_at": "2026-11-07T15:00:00-03:00", "ends_at": "2026-11-07T19:00:00-03:00", "capacity": 400, "max_guests_per_responsible": 2, "rsvp_enabled": true, "rsvp_deadline": "2026-10-31T23:59:00-03:00", "payment_enabled": false, "payment_amount": null, "registrations_count": 84, "attendees_count": 211, "checked_in_count": 0, "created_at": "2026-09-20T10:00:00-03:00", "updated_at": "2026-09-20T10:00:00-03:00" } }
{ "success": false, "message": "Escola não encontrada." }
/v1/partners/school/{cnpj}/event/{id}/status
Alterar status
Publica, inicia, encerra ou cancela um evento. Dispara o webhook event.status_changed.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID do evento.
Parâmetros do corpo
status
string
obrigatório
DRAFT, PUBLISHED, ONGOING, CLOSED ou CANCELLED.
Códigos de resposta
200
Sucesso.
401
Credenciais inválidas (X-Partner, X-Client ou X-Authorization).
403
Cliente fora do plano Gestão Escolar (ERP_REQUIRED) ou módulo exclusivo de escolas privadas (PRIVATE_CLIENT_REQUIRED).
404
Escola ou recurso não encontrado.
422
Parâmetros inválidos — veja errors.
-X PATCH \
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}" \
-H "Content-Type: application/json" \
-d '{"status":"PUBLISHED"}'
$response = $client->patch('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/status', [ 'headers' => $headers, // X-Authorization, X-Partner, X-Client 'json' => json_decode('{"status":"PUBLISHED"}', true), ]);
const res = await fetch('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/status', { method: 'PATCH', headers: { /* X-Authorization, X-Partner, X-Client */ 'Content-Type': 'application/json' }, body: JSON.stringify({"status":"PUBLISHED"}), });
{ "data": { "id": "01a02d07-1702-7155-a2a3-09064f1cd32d", "name": "Festa da Família", "description": "Confraternização anual das famílias.", "location": "Quadra poliesportiva", "status": "PUBLISHED", "status_label": "Publicado", "school_year_id": "019e6e4b-30ff-7140-89ff-810f32d19a18", "starts_at": "2026-11-07T15:00:00-03:00", "ends_at": "2026-11-07T19:00:00-03:00", "capacity": 300, "max_guests_per_responsible": 2, "rsvp_enabled": true, "rsvp_deadline": "2026-10-31T23:59:00-03:00", "payment_enabled": false, "payment_amount": null, "registrations_count": 84, "attendees_count": 211, "checked_in_count": 0, "created_at": "2026-09-20T10:00:00-03:00", "updated_at": "2026-09-20T10:00:00-03:00" } }
{ "success": false, "message": "Escola não encontrada." }
/v1/partners/school/{cnpj}/event/{id}/registrations
Listar inscrições
Confirmações de presença (RSVP) das famílias, com convidados e situação do pagamento quando o evento é pago. Paginado.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID do evento.
Códigos de resposta
200
Sucesso.
401
Credenciais inválidas (X-Partner, X-Client ou X-Authorization).
403
Cliente fora do plano Gestão Escolar (ERP_REQUIRED) ou módulo exclusivo de escolas privadas (PRIVATE_CLIENT_REQUIRED).
404
Escola ou recurso não encontrado.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$response = $client->get('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/registrations', [ 'headers' => $headers, // X-Authorization, X-Partner, X-Client ]);
const res = await fetch('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/registrations', { method: 'GET', headers: { /* X-Authorization, X-Partner, X-Client */ 'Content-Type': 'application/json' }, });
{ "data": [ { "id": "01a3c4d5-0000-7000-8000-000000000601", "responsible": { "id": "019e6e4b-5106-7232-8bd1-370c6df31d1c", "name": "Mariana Costa", "cpf": "86727354051" }, "source": "portal", "status": "confirmed", "guests_count": 2, "attendees_count": 3, "payment_status": null, "billing_type": null, "paid_at": null, "created_at": "2026-09-22T19:12:00-03:00" } ], "links": { /* first, prev, next */ }, "meta": { "current_page": 1, "per_page": 25 } }
{ "success": false, "message": "Escola não encontrada." }
/v1/partners/school/{cnpj}/event/{id}/attendees
Listar participantes
Lista de presença do evento (responsáveis e convidados), em ordem alfabética, com o check-in na entrada. Paginado.
Parâmetros de rota
cnpj
string
obrigatório
CNPJ da escola (14 dígitos, sem formatação).
id
uuid
obrigatório
UUID do evento.
Filtros (query string)
checked_in
boolean
opcional
1 quem já entrou, 0 quem ainda não entrou.
Códigos de resposta
200
Sucesso.
401
Credenciais inválidas (X-Partner, X-Client ou X-Authorization).
403
Cliente fora do plano Gestão Escolar (ERP_REQUIRED) ou módulo exclusivo de escolas privadas (PRIVATE_CLIENT_REQUIRED).
404
Escola ou recurso não encontrado.
422
Parâmetros inválidos — veja errors.
-H "X-Authorization: {api_token}" \
-H "X-Partner: {partner_token}" \
-H "X-Client: {client_slug}"
$response = $client->get('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/attendees', [ 'headers' => $headers, // X-Authorization, X-Partner, X-Client ]);
const res = await fetch('https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/attendees', { method: 'GET', headers: { /* X-Authorization, X-Partner, X-Client */ 'Content-Type': 'application/json' }, });
{ "data": [ { "id": "01a3c4d5-0000-7000-8000-000000000701", "registration_id": "01a3c4d5-0000-7000-8000-000000000601", "type": "GUEST", "name": "Rosa Costa", "checked_in": true, "checked_in_at": "2026-11-07T15:12:40-03:00" } ], "links": { /* first, prev, next */ }, "meta": { "current_page": 1, "per_page": 25 } }
{ "success": false, "message": "Escola não encontrada." }