ERP · Gestão Escolar Leitura e escrita

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.

O modelo evento
{
  "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"
}
GET /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.

Requisição GET
GET /v1/partners/school/{cnpj}/events/all
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/events/all \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "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 }
}
GET /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.

Requisição GET
GET /v1/partners/school/{cnpj}/event/{id}
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id} \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "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"
  }
}
POST /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.

Requisição POST
POST /v1/partners/school/{cnpj}/event
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event \
  -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}'
Resposta
{
  "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"
  }
}
PUT /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).

Requisição PUT
PUT /v1/partners/school/{cnpj}/event/{id}
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id} \
  -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}'
Resposta
{
  "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"
  }
}
PATCH /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.

Requisição PATCH
PATCH /v1/partners/school/{cnpj}/event/{id}/status
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/status \
  -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"}'
Resposta
{
  "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"
  }
}
GET /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.

Requisição GET
GET /v1/partners/school/{cnpj}/event/{id}/registrations
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/registrations \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "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 }
}
GET /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.

Requisição GET
GET /v1/partners/school/{cnpj}/event/{id}/attendees
curl https://toakiescola.com.br/api/v1/partners/school/{cnpj}/event/{id}/attendees \
  -H "X-Authorization: {api_token}" \
  -H "X-Partner: {partner_token}" \
  -H "X-Client: {client_slug}"
Resposta
{
  "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 }
}