Pontue Integration Docs (2.1.0)

Fernando Candiani: fernandocandiani@pontue.com.br License: Proprietary

Documentação de Integração da Plataforma Pontue

OAuth

Operações de autenticação via OAuth

Obtém um token de acesso

Obtém um token de acesso para fazer o login de um usuário.

IMPORTANTE:
Caso for fazer o Login SSO, insira a seguinte informação no campo scope: login-sso.
Se não for fazer o Login SSO, não envie o campo scope.

Para o Login SSO, redirecionar o usuário para a URL: https://sso.dev.pontue.com.br com os seguintes parâmetros na query string: ssoAccessToken (access_token recebido nesse endpoint) e uma das três opções id (ID do usuário na nossa plataforma) ou idRef (ID de referência do usuário) ou email (e-mail do usuário).

Request Body schema: multipart/form-data
grant_type
required
string
Default: "client_credentials"

O tipo de concessão da solicitação de token (Utilize: client_credentials).

client_id
required
string

ID fornecido pela nossa equipe de TI.

client_secret
required
string

Token fornecido pela nossa equipe de TI.

scope
string

Escopo da solicitação de token. Todos os escopos disponíveis são separados por espaço.
Caso for fazer o Login SSO, insira login-sso, caso contrário, não envie esse campo.

Responses

Response samples

Content type
application/json
{
  • "token_type": "string",
  • "expires_in": 0,
  • "access_token": "string"
}

Obter token de acesso de usuário

Obtém dados de acesso do usuário.

IMPORTANTE:
No Header Authorization, utilizar o token_type + access_token retornado pelo endpoint /oauth/token.
Exemplo: Authorization: Bearer eyJ0eXAiOiJ....
Porém, aqui na documentação, adicione apenas o access_token, pois o token_type é adicionado automaticamente.

Authorizations:
Authorization
Request Body schema: application/json
email
required
string

Email do usuário cadastrado na Plataforma Pontue.

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Proposal

Operações de propostas

Criação de proposta

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
Request Body schema: multipart/form-data
name
required
string

O nome da proposta

gridId
required
string <uuid>

ID da grade da proposta

subjectId
string <uuid>

O ID da disciplina (caso a proposta seja disponibilizada para uma disciplina)

hasTask
boolean
Default: true

Indica se a proposta possui tarefa ou não

isPontueCorrection
boolean
Default: false

Indica se a proposta é vai ser corrigida pelos time de corretores Pontue (utilize true) ou pelos professores da escola (utilize false)

guidance
string

Orientação para o corretor.

comment
string

Orientação para o aluno.

Array of objects

Labels dos arquivos. Campo obrigatório se enviado arquivos.

file-1
string <binary>

Arquivo para a proposta.

Campo obrigatório se não enviado links.
Formatos permitidos: pdf, jpg, jpeg e png.

O 1 descrito no final do nome deste campo é o ID do arquivo especificado no campo file_labels.

Exemplo:
Com file_labels[0].id: 'nomeDoArquivo1', o arquivo deve ter ser enviado com o seguinte nome do campo: file-nomeDoArquivo1.
Com file_labels[1].id: 'nomeDoArquivo2', o arquivo deve ter ser enviado com o seguinte nome do campo: file-nomeDoArquivo2.

file-2
string <binary>

Arquivo para a proposta.

Campo obrigatório se não enviado links.
Formatos permitidos: pdf, jpg, jpeg e png.

O 2 descrito no final do nome deste campo é o ID do arquivo especificado no campo file_labels.

Exemplo:
Com file_labels[0].id: 'nomeDoArquivo1', o arquivo deve ter ser enviado com o seguinte nome do campo: file-nomeDoArquivo1.
Com file_labels[1].id: 'nomeDoArquivo2', o arquivo deve ter ser enviado com o seguinte nome do campo: file-nomeDoArquivo2.

Array of objects

Links para a proposta. Campo obrigatório se não enviado arquivos.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Show de proposta

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
proposalId
string <uuid>

ID da proposta

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Update de proposta

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
proposalId
string <uuid>

ID da proposta

Request Body schema: multipart/form-data
name
required
string

O nome da proposta

gridId
required
string <uuid>

ID da grade da proposta

subjectId
string <uuid>

O ID da disciplina (caso a proposta seja disponibilizada para uma disciplina)

hasTask
boolean
Default: true

Indica se a proposta possui tarefa ou não

isPontueCorrection
boolean
Default: false

Indica se a proposta é vai ser corrigida pelos time de corretores Pontue (utilize true) ou pelos professores da escola (utilize false)

guidance
string

Orientação para o corretor.

comment
string

Orientação para o aluno.

Array of objects

Labels dos arquivos.
Campo obrigatório se enviado arquivos.

file-1
string <binary>

Arquivo para a proposta.

Formatos permitidos: pdf, jpg, jpeg e png.

O 1 descrito no final do nome deste campo é o ID do arquivo especificado no campo file_labels.

Exemplo:
Com file_labels[0].id: 'nomeDoArquivo1', o arquivo deve ter ser enviado com o seguinte nome do campo: file-nomeDoArquivo1.
Com file_labels[1].id: 'nomeDoArquivo2', o arquivo deve ter ser enviado com o seguinte nome do campo: file-nomeDoArquivo2.

file-2
string <binary>

Arquivo para a proposta.

Formatos permitidos: pdf, jpg, jpeg e png.

O 2 descrito no final do nome deste campo é o ID do arquivo especificado no campo file_labels.

Exemplo:
Com file_labels[0].id: 'nomeDoArquivo1', o arquivo deve ter ser enviado com o seguinte nome do campo: file-nomeDoArquivo1.
Com file_labels[1].id: 'nomeDoArquivo2', o arquivo deve ter ser enviado com o seguinte nome do campo: file-nomeDoArquivo2.

removeIds
Array of strings <uuid> [ items <uuid > ]

Array de IDs dos arquivos/links que serão removidos.

Array of objects

Links para a proposta.

Responses

Response samples

Content type
application/json
{ }

Delete de proposta

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
proposalId
string <uuid>

ID da proposta

Responses

Response samples

Content type
application/json
[ ]

Liberar propostas

Liberar propostas para turmas ou disciplina.
OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.
OBS: se enviado disciplina e as turmas, dará preferência pra disciplina.

Authorizations:
Authorization
path Parameters
proposalId
string <uuid>

ID da proposta

Request Body schema: application/json
subjectId
string <uuid>

ID da disciplina

Array of objects

Array de objetos com os ID's das turmas

releaseAt
string

Data que a proposta deve ser liberada.
Formato: DD/MM/YYYY HH:mm:ss (Ex.: 23/09/2022 08:00:00)

removeAt
string

Data que a proposta deve ser removida.
Formato: DD/MM/YYYY HH:mm:ss (Ex.: 23/09/2022 08:00:00)

Responses

Request samples

Content type
application/json
{
  • "subjectId": "68460e63-0717-47f9-8fd8-d28f152cb30b",
  • "schoolClasses": [
    ],
  • "releaseAt": "string",
  • "removeAt": "string"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Essay

Operações de redações

Criação de redação

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
Request Body schema: multipart/form-data
proposalId
required
string <uuid>

ID da proposta.

studentId
required
string <uuid>

ID do aluno.

files
Array of strings <binary> [ items <binary > ]

Arquivos com as imagens da redação (redação por foto).
Obrigatório se não enviado essayTypedText.
Se enviado junto com essayTypedText, esse campo terá preferência!

essayTypedText
string

Texto digitado pelo aluno (redação digitada).
Obrigatório se não enviado files.
Se enviado junto com files, dará preferência para files!

object

Tipo da redação.

type: (string) Tipo da redação (rewriting ou secondView).
acceptedTerms: (boolean) Indica se o aluno aceitou os termos de uso do envio da reescrita da redação.
gradeReason: (string) Motivo da nota para segunda vista da redação.
correctorReason: (string) Motivo para o corretor para segunda vista da redação.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Show de redação

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
essayId
string <uuid>

ID da redação

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Update de redação

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
essayId
string <uuid>

ID da redação

Request Body schema: multipart/form-data
proposalId
required
string <uuid>

ID da proposta.

files
Array of strings <binary> [ items <binary > ]

Arquivos com as imagens da redação (redação por foto).
Se enviado junto com essayTypedText, esse campo terá preferência!

essayTypedText
string

Texto digitado pelo aluno (redação digitada).
Se enviado junto com files, dará preferência para files!

Array of objects

Array com os ID's e a ordem das imagens que irá MANTER na redação.
Caso queira que a imagem não seja mantida, não envie o ID dela nesse array.
Lembrando que deverá permanecer pelo menos uma imagem na redação.
Caso não seja enviado esse campo, nenhuma imagem será apagada. (Será atualizado em breve para caso envie novas imagens e não enviar esse campo, apagar todas as imagens existentes)

object

Objeto com os nomes dos novos arquivos (com o tipo do arquivo) que serão adicionados e a ordem que o arquivo deverá permanecer na redação.
OBRIGATÓRIO se enviado files (novos arquivos).

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Delete de redação

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
essayId
string <uuid>

ID da redação

Responses

Response samples

Content type
application/json
{
  • "data": { }
}

Obtém as imagens de uma redação corrigida

Obtém as imagens de uma redação corrigida e não reportada.
OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
essayId
string <uuid>

ID da redação

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

School Class

Operações de turmas

Criação de turmas

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
Request Body schema: application/json
required
Array of objects

Array de objetos com os nomes e ID's de referência das turmas

Responses

Request samples

Content type
application/json
{
  • "schoolClasses": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Listagem de turmas

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
Request Body schema: multipart/form-data
search
string
Default: null

Filtrar pelo nome da turma.

page
integer
Default: 1

Quantidades de páginas.

perPage
integer
Default: 15

Quantidades de turmas por página.

sort
string
Default: "name"

Organizar lista por id, name, idRef, students, createdAt ou updatedAt.

order
string
Default: "asc"

Ordenar por asc ou desc.

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

Show de turma

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
schoolClassId
string <uuid>

ID da turma

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Update de turma

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
schoolClassId
string <uuid>

ID da turma

Request Body schema: application/json
name
required
string

O nome da turma

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Delete de turma

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
schoolClassId
string <uuid>

ID da turma

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Student

Operações de alunos

Criação de alunos

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
Request Body schema: application/json
schoolClassId
string <uuid>

ID da turma que todos os alunos serão vinculados.

Array of objects

Array de objetos com os nomes, sobrenomes, emails e ID's de referência dos alunos

Responses

Request samples

Content type
application/json
{
  • "schoolClassId": "32ad2012-6b66-4a81-84a0-de848cad73c0",
  • "students": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Listagem de alunos

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
Request Body schema: application/json
search
string
Default: null

Filtrar pelo nome do aluno.

schoolClassId
string <uuid>
Default: null

Filtrar pelo id da turma.

page
integer
Default: 1

Quantidades de páginas.

perPage
integer
Default: 12

Quantidades de alunos por página.

sort
string
Default: "name"

Organizar lista por id, name, surname, fullName, idRef, createdAt, updatedAt, schoolClassId, schoolClassName ou schoolClassIdRef.

order
string
Default: "asc"

Ordenar por asc ou desc.

Responses

Request samples

Content type
application/json
{
  • "search": null,
  • "schoolClassId": null,
  • "page": 1,
  • "perPage": 12,
  • "sort": "name",
  • "order": "asc"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

Show de aluno

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
studentId
string <uuid>

ID da aluno

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Update de aluno

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
studentId
string <uuid>

ID do aluno

Request Body schema: application/json
schoolClassId
required
string <uuid>

ID da turma

name
required
string

O nome do aluno

surname
required
string

O sobrenome do aluno

email
required
string

O email do aluno

idRef
string or null

O id de referência do aluno

Responses

Request samples

Content type
application/json
{
  • "schoolClassId": "32ad2012-6b66-4a81-84a0-de848cad73c0",
  • "name": "string",
  • "surname": "string",
  • "email": "string",
  • "idRef": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": { }
}

Delete de aluno

OBS: Utilize o access_token retornado pelo endpoint /oauth/token para autenticação.

Authorizations:
Authorization
path Parameters
studentId
string <uuid>

ID do aluno

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Webhook

Operações de webhooks para envio das redações corrigidas

URL para enviar os webhooks de redação corrigida

Endpoint para receber os webhooks da Plataforma Pontue.
Esse endpoint não é cadastrado no nosso sistema, é o POST que iremos fazer para a URL que vocês nos passarem.

Request Body schema: application/json
object

Redação

object

Correção

Array of objects

Imagens da redação com a correção. Se a redação for denunciada, esse campo será null.

object

Aluno

Request samples

Content type
application/json
{
  • "essay": {
    },
  • "correction": {
    },
  • "essayImages": [
    ],
  • "student": {
    }
}