Skip to main content
PUT
Configura o certificado do curso
Ligar vale para quem já concluiu. Todo aluno que já tinha fechado o curso recebe o certificado nos minutos seguintes, em lotes — não é só dali para frente. Desligar não revoga o que já foi emitido: certificado emitido é fato, e desfazê-lo é revogar, com motivo. O body aceita os marcadores {aluno}, {curso}, {club}, {carga_horaria}, {data}, {codigo} e {aulas}. Marcador desconhecido é recusado com invalid_placeholder (422) — ele não sai vazio no certificado de ninguém.

Authorizations

Authorization
string
header
required

Token OPACO de sessão de quem administra, emitido por /v1/auth/admin/sign-in e verificado contra a nossa tabela — o mesmo desenho do studentSession, para a outra identidade.

É o esquema de quem ADMINISTRA — o dashboard. O aluno do classroom usa o studentSession; uma rota consumida pelos dois declara os dois esquemas, e o middleware aceita qualquer um deles. As duas credenciais são opacas e chegam pelo mesmo cabeçalho: quem as separa é a tabela em que cada uma existe.

O dashboard o guarda em cookie httpOnly, que o BFF troca pelo Authorization a cada chamada.

Path Parameters

clubId
string<uuid>
required

Id público da organização — o mesmo que GET /v1/me devolve em organization_id.

Na URL o recurso se chama club; no contrato e no domínio, organization. A divergência é deliberada: clubs é a palavra do produto, e a URL é o que as pessoas leem.

É o identificador do provedor de autenticação, e é assim de propósito: o cliente precisa nomear a organização ao pedir o token, e o token é o que prova o escopo. Um id só nosso obrigaria a traduzir um no outro antes de ter um token — e a tradução exigiria uma chamada escopada, que é justamente a que ainda não dá para fazer.

O uuid interno da organização não aparece no contrato: ele é o que as chaves estrangeiras do domínio referenciam, e continua sendo nosso.

courseId
string<uuid>
required

Body

application/json
enabled
boolean
required
title
string
required
Required string length: 1 - 120
body
string | null
Maximum string length: 600
hours
integer | null
Required range: 1 <= x <= 10000
signature_media_id
string<uuid> | null
signature_name
string | null
Maximum string length: 120
signature_role
string | null
Maximum string length: 120

Response

A configuração gravada

data
object
required

O que o curso imprime no certificado. Curso que nunca configurou nada responde com os padrões e enabled: false.