> ## 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

> Emita seu primeiro certificado em menos de 10 minutos com um guia prático da API.

# 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.

<Note>
  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.
</Note>

***

## 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

```bash theme={null}
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.

```bash theme={null}
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

```bash theme={null}
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

```bash theme={null}
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:

```bash theme={null}
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:

```bash theme={null}
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:**

```json theme={null}
{
  "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?

<CardGroup cols={2}>
  <Card title="Ordem de Cadastro de Entidades" icon="list-ol" href="/pt-BR/core-concepts/entity-registration-order">
    Veja o mapa completo de dependências antes de construir integrações.
  </Card>

  <Card title="Ciclo de Vida do Certificado" icon="arrow-right-arrow-left" href="/pt-BR/core-concepts/certificate-lifecycle">
    Saiba como os certificados passam de rascunho a emitido, revogado e expirado.
  </Card>

  <Card title="Guia: Emitir Certificado" icon="graduation-cap" href="/pt-BR/guides/issue-first-certificate">
    Um guia mais detalhado com módulos, turmas, matrículas e templates.
  </Card>

  <Card title="Referência da API" icon="code" href="/pt-BR/api-reference/authentication/service-token">
    Referência completa de parâmetros para cada endpoint.
  </Card>
</CardGroup>
