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

# Revogar um Certificado

> Revogue permanentemente um certificado emitido e publique um aviso de revogação na respetiva URL de verificação.

# Revogar um Certificado

A revogação marca permanentemente um certificado como inválido. A revogação fica visível na URL de verificação pública, incluindo o motivo e o timestamp.

<Warning>
  A revogação é **irreversível**. Um certificado revogado não pode ser reintegrado. Se um certificado foi revogado por engano, é necessário emitir um novo.
</Warning>

***

## Revogar

```http theme={null}
PUT /certificates/{uuid}/revoke
```

| Parâmetro           | Tipo   | Obrigatório | Descrição                           |
| ------------------- | ------ | ----------- | ----------------------------------- |
| `revocation_reason` | string | Não         | Explicação legível para a revogação |

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PUT "https://api.dokstamp.com/certificates/a1b2c3d4-e5f6-7890-abcd-ef1234567890/revoke" \
    -H "Authorization: Bearer {TOKEN}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "X-Tenant: {TENANT}" \
    -d '{
      "revocation_reason": "Emitido por engano — o estudante não concluiu todos os módulos obrigatórios."
    }'
  ```

  ```javascript JavaScript theme={null}
  await fetch(`https://api.dokstamp.com/certificates/${uuid}/revoke`, {
    method: 'PUT',
    headers: {
      'Authorization': `Bearer ${TOKEN}`,
      'Accept': 'application/json',
      'Content-Type': 'application/json',
      'X-Tenant': TENANT,
    },
    body: JSON.stringify({
      revocation_reason: 'Emitido por engano — o estudante não concluiu todos os módulos obrigatórios.',
    }),
  });
  ```
</CodeGroup>

**Resposta `200`:**

```json theme={null}
{
  "data": {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "revoked",
    "revoked_at": "2025-03-01T10:30:00.000000Z",
    "revocation_reason": "Emitido por engano — o estudante não concluiu todos os módulos obrigatórios.",
    "public_verification_url": "https://verificar.dokstamp.eu/a1b2c3d4"
  }
}
```

***

## O que acontece após a revogação

* `status` muda para `revoked`
* `revoked_at` é definido com o timestamp atual
* A `public_verification_url` permanece acessível e apresenta um aviso de revogação
* O certificado é removido das contagens e relatórios de certificados ativos
* O ficheiro PDF original permanece no armazenamento

***

## Motivos comuns de revogação

* Estudante não satisfez os requisitos de graduação
* Certificado emitido com dados incorretos do estudante
* Fraude académica descoberta após a emissão
* Erro administrativo durante a emissão em lote

***

## Relacionados

* [Ciclo de Vida do Certificado](/pt/core-concepts/certificate-lifecycle) — fluxo completo de estados
* [Emitir um Certificado](/pt/api-reference/certificates/overview) — criar um certificado substituto
