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 usando chamadas reais à API. Você vai criar as entidades mínimas necessárias e emitir um certificado em uma única sessão.
Todas as entidades devem pertencer ao mesmo tenant. Obtenha suas credenciais de integração junto ao seu gerente de conta DokStamp antes de começar.
Pré-requisitos
Credenciais de integração (client_id e client_secret) — fornecidas pelo seu gerente de conta DokStamp
Seu identificador X-Tenant
Um arquivo 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"
Salve o access_token da resposta. Ele é válido por 12 horas . Use-o em todas as requisições subsequentes.
Passo 2 — Criar uma Instituição
Uma instituição é o órgão emissor. Ela 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"
}'
Salve o uuid da resposta — você vai precisar dele 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}"
}'
Salve 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"
}'
Salve o uuid como student_uuid.
Passo 5 — Fazer Upload do PDF
Faça o upload do arquivo 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 retorna um array. Salve o uuid do primeiro item como file_uuid.
Passo 6 — Emitir o Certificado
Agora combine tudo em um 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 compartilhável para verificação da credencial.
O que fazer a seguir?
Ordem de Cadastro 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.