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

# Modelos de Certificado

> Criar e gerir modelos reutilizáveis de design de certificados.

# Modelos de Certificado

Os modelos de certificado definem o design visual dos certificados — esquema, tipografia e elementos gráficos. Os modelos são reutilizáveis: um único modelo pode ser aplicado a milhares de certificados. Estão vinculados a uma instituição e, opcionalmente, configurados via Canva para edição visual.

***

## O objeto modelo de certificado

```json theme={null}
{
  "uuid": "i9j0k1l2-m3n4-5678-opqr-789012345678",
  "name": "Diploma de Graduação 2024",
  "version": "1.0",
  "path": "templates/diploma-2024.pdf",
  "preview_image_path": "templates/previews/diploma-2024.png",
  "canva_config": null,
  "is_default": true,
  "status": "active",
  "institution": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Federal University of Technology"
  }
}
```

| Campo                | Tipo         | Descrição                                     |
| -------------------- | ------------ | --------------------------------------------- |
| `uuid`               | string       | Identificador único                           |
| `name`               | string       | Nome de apresentação do modelo                |
| `version`            | string       | Identificador de versão                       |
| `path`               | string       | Caminho interno do ficheiro do modelo         |
| `preview_image_path` | string\|null | Caminho para a imagem de pré-visualização     |
| `canva_config`       | json\|null   | Objeto de configuração de design do Canva     |
| `is_default`         | boolean      | Se este é o modelo predefinido da instituição |
| `status`             | enum         | `active`, `inactive`                          |

***

## Listar modelos

```http theme={null}
GET /certificate-templates
```

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.dokstamp.com/certificate-templates?where[status]=active" \
    -H "Authorization: Bearer {TOKEN}" \
    -H "Accept: application/json" \
    -H "X-Tenant: {TENANT}"
  ```
</CodeGroup>

***

## Criar um modelo

```http theme={null}
POST /certificate-templates
```

| Parâmetro            | Tipo    | Obrigatório | Descrição                                      |
| -------------------- | ------- | ----------- | ---------------------------------------------- |
| `name`               | string  | Sim         | Nome do modelo                                 |
| `version`            | string  | Sim         | String de versão                               |
| `institution_uuid`   | string  | Sim         | UUID da instituição pai                        |
| `path`               | string  | Sim         | Caminho do ficheiro do documento modelo        |
| `preview_image_path` | string  | Não         | Caminho da imagem de pré-visualização          |
| `canva_config`       | object  | Não         | Configuração de design do Canva                |
| `is_default`         | boolean | Não         | Definir como modelo predefinido da instituição |
| `status`             | enum    | Não         | `active` (padrão), `inactive`                  |

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.dokstamp.com/certificate-templates \
    -H "Authorization: Bearer {TOKEN}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "X-Tenant: {TENANT}" \
    -d '{
      "name": "Diploma de Graduação 2024",
      "version": "1.0",
      "institution_uuid": "550e8400-e29b-41d4-a716-446655440000",
      "path": "templates/diploma-2024.pdf",
      "is_default": true,
      "status": "active"
    }'
  ```
</CodeGroup>

***

## Obter, atualizar, eliminar

```http theme={null}
GET    /certificate-templates/{uuid}
PATCH  /certificate-templates/{uuid}
PUT    /certificate-templates/{uuid}
DELETE /certificate-templates/{uuid}
DELETE /certificate-templates/batch/destroy
```

***

## Utilizar um modelo ao emitir certificados

Indique o `template_uuid` ao criar um certificado:

```json theme={null}
{
  "template_uuid": "i9j0k1l2-m3n4-5678-opqr-789012345678",
  ...
}
```

Se `template_uuid` for omitido e a instituição possuir um modelo predefinido (`is_default: true`), o predefinido será aplicado automaticamente.
