Documentation Index Fetch the complete documentation index at: https://docs.dokstamp.com/llms.txt
Use this file to discover all available pages before exploring further.
Quick Start
Este guia mostra como emitir um certificado digital de ponta a ponta utilizando chamadas reais à API. O utilizador vai criar as entidades mínimas necessárias e emitir um certificado numa única sessão.
Todas as entidades devem pertencer ao mesmo tenant. Obtenha as suas credenciais de integração junto ao seu gestor de conta DokStamp antes de começar.
Pré-requisitos
Credenciais de integração (client_id e client_secret) — fornecidas pelo seu gestor de conta DokStamp
O seu identificador X-Tenant
Um ficheiro PDF do certificado a ser emitido
Passo 1 — Obter um Token de Serviço
curl -X POST https://api.dokstamp.com/oauth/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
Guarde o access_token da resposta. É válido por 12 horas . Utilize-o em todos os pedidos subsequentes.
Passo 2 — Criar uma Instituição
Uma instituição é o órgão emissor. Deve existir antes de cursos ou certificados.
curl -X POST https://api.dokstamp.com/institutions \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Tenant: {TENANT}" \
-d '{
"name": "Minha Universidade",
"legal_name": "Fundação Minha Universidade",
"tax_id": "00.000.000/0001-00",
"country": "Brazil",
"website": "https://minhauniversidade.edu.br",
"status": "active"
}'
Guarde o uuid da resposta — será necessário como institution_uuid.
Passo 3 — Criar um Curso
curl -X POST https://api.dokstamp.com/courses \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Tenant: {TENANT}" \
-d '{
"name": "Bacharelado em Ciência da Computação",
"code": "BCC-2024",
"description": "Curso de graduação de 4 anos em ciência da computação.",
"workload_hours": 3200,
"status": "active",
"institution_uuid": "{INSTITUTION_UUID}"
}'
Guarde o uuid como course_uuid.
Passo 4 — Criar um Estudante
curl -X POST https://api.dokstamp.com/students \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Tenant: {TENANT}" \
-d '{
"name": "Maria Fernanda Silva",
"email": "maria@email.com",
"date_of_birth": "1998-05-20",
"gender": "female"
}'
Guarde o uuid como student_uuid.
Passo 5 — Carregar o PDF
Carregue o ficheiro PDF do certificado assinado:
curl -X POST https://api.dokstamp.com/files \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "X-Tenant: {TENANT}" \
-F "files[]=@/caminho/para/certificado.pdf"
A resposta devolve um array. Guarde o uuid do primeiro item como file_uuid.
Passo 6 — Emitir o Certificado
Agora combine tudo num certificado:
curl -X POST https://api.dokstamp.com/certificates \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Tenant: {TENANT}" \
-d '{
"institution_uuid": "{INSTITUTION_UUID}",
"course_uuid": "{COURSE_UUID}",
"student_uuid": "{STUDENT_UUID}",
"file_uuid": "{FILE_UUID}",
"status": "issued",
"issued_at": "2024-12-01T00:00:00Z"
}'
Resposta:
{
"data" : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
"status" : "issued" ,
"issued_at" : "2024-12-01T00:00:00.000000Z" ,
"public_verification_url" : "https://verificar.dokstamp.eu/a1b2c3d4" ,
"student" : { "name" : "Maria Fernanda Silva" },
"course" : { "name" : "Bacharelado em Ciência da Computação" },
"institution" : { "name" : "Minha Universidade" }
}
}
O public_verification_url é o link partilhável para verificação da credencial.
O que fazer a seguir?
Ordem de Registo de Entidades Veja o mapa completo de dependências antes de construir integrações.
Ciclo de Vida do Certificado Saiba como os certificados passam de rascunho a emitido, revogado e expirado.
Guia: Emitir Certificado Um guia mais detalhado com módulos, turmas, matrículas e templates.
Referência da API Referência completa de parâmetros para cada endpoint.