---
title: "Ciclo de vida do documento"
description: "Operações ao longo da vida de um documento na API do Signer: cancelar, recusar, pausar e retomar, enviar uma nova versão, excluir e restaurar."
canonical: "https://docs.lacunasoftware.com/articles/signer/integration/lifecycle"
locale: "pt-BR"
product: "Signer"
last_updated: "2026-10-22"
---

# Ciclo de vida do documento

Além de criar e acompanhar, você pode fazer operações ao longo da vida do documento: cancelar, recusar, pausar e retomar, enviar uma nova versão, excluir e restaurar.

## Cancelar documento

Para cancelar um documento, envie o ID do documento em uma requisição `POST` junto ao campo `reason`:

```javascript
POST /api/documents/b12cb1b2-5d6e-40b2-a050-097d068c4c11/cancellation

{
    "reason": "This is a document cancellation"
}
```

**Exemplos no GitHub:** [C#](https://github.com/LacunaSoftware/SignerSamples/blob/master/dotnet/console/Console/Scenarios/CancelDocumentScenario.cs) · [Java](https://github.com/LacunaSoftware/SignerSamples/blob/master/java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CancelDocumentScenario.java) · [PHP](https://github.com/LacunaSoftware/SignerSamples/blob/master/php/Scenarios/CancelDocumentScenario.php) · [Node.js](https://github.com/LacunaSoftware/SignerSamples/blob/master/nodejs/scenarios/cancelDocumentScenario.ts)

## Recusar documento

Para recusar um documento, envie o ID do documento em uma requisição `POST` junto ao campo `reason`:

```javascript
POST /api/documents/b12cb1b2-5d6e-40b2-a050-097d068c4c11/refusal

{
    "reason": "This is a document refusal"
}
```

**Exemplos no GitHub:** [C#](https://github.com/LacunaSoftware/SignerSamples/blob/master/dotnet/console/Console/Scenarios/RefuseDocumentScenario.cs) · [Java](https://github.com/LacunaSoftware/SignerSamples/blob/master/java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/RefuseDocumentScenario.java) · [PHP](https://github.com/LacunaSoftware/SignerSamples/blob/master/php/Scenarios/RefuseDocumentScenario.php) · [Node.js](https://github.com/LacunaSoftware/SignerSamples/blob/master/nodejs/scenarios/refuseDocumentScenario.ts)

## Pausar e retomar um documento

Disponível a partir da versão 3.0.0. A pausa suspende o fluxo de um documento em andamento. Enquanto o documento está pausado, ninguém consegue assinar, aprovar nem recusar. As assinaturas e aprovações já feitas continuam no documento.

Para pausar, envie um `POST` com o motivo no campo `reason`. O motivo é opcional e aceita até 500 caracteres:

```javascript
POST /api/documents/b12cb1b2-5d6e-40b2-a050-097d068c4c11/pause

{
    "reason": "Aguardando revisão do jurídico"
}
```

Para retomar, envie um `POST` sem corpo. O documento volta ao status `Pending` e o fluxo continua do ponto em que parou:

```javascript
POST /api/documents/b12cb1b2-5d6e-40b2-a050-097d068c4c11/resume
```

### Quem pode pausar

As mesmas pessoas podem pausar e retomar:

* O criador do documento, inclusive a aplicação que criou o documento pela API.
* Os administradores e gerentes da organização.
* Os administradores e gerentes da pasta do documento. Um operador da pasta pode pausar só os documentos que ele criou.
* Os administradores do sistema.

Sem essa permissão, a API responde `403`.

### O que acontece enquanto o documento está pausado

* O documento tem o status `Paused`. Trate esse status como um documento em andamento, igual a `Pending`. Veja [Status do documento](https://docs.lacunasoftware.com/articles/signer/integration/tracking#document-status).
* Os participantes cuja ação já foi liberada recebem um e-mail quando o documento é pausado, com o motivo, e outro quando ele é retomado.
* O participante que abre o link vê o documento, mas não consegue assinar, aprovar nem recusar.
* O Signer não envia lembretes, e o documento não expira. Se o prazo de expiração já passou quando você retoma o documento, ele expira na mesma hora.
* O Signer envia os webhooks [`DocumentPaused`](https://docs.lacunasoftware.com/articles/signer/webhook-events#documentpaused) e [`DocumentResumed`](https://docs.lacunasoftware.com/articles/signer/webhook-events#documentresumed).
* Você pode cancelar o documento. As outras operações falham com um erro `422`: editar o fluxo, editar as informações, enviar uma nova versão, reiniciar o fluxo, remover uma assinatura, enviar arquivos, editar os e-mails notificados, enviar lembretes e gerar um link de compartilhamento. Os códigos de erro começam com `Cannot` e terminam com `PausedDocument`, por exemplo `CannotSignPausedDocument` e `CannotEditPausedDocumentFlow`.

### Erros da pausa

| Código | Quando |
| --- | --- |
| `DocumentPauseDisabled` | A instância desligou a pausa, com a configuração `General:EnableDocumentPause` (veja [Configurações do Signer](https://docs.lacunasoftware.com/articles/signer/on-premises/settings)). |
| `DocumentAlreadyPaused` | O documento já está pausado. |
| `CannotPauseConcludedDocument`, `CannotPauseFlowConcludedDocument` | O documento já foi concluído, ou todas as ações do fluxo já foram feitas. |
| `CannotPauseCanceledDocument`, `CannotPauseRefusedDocument`, `CannotPauseExpiredDocument` | O documento foi cancelado, recusado ou expirou. |
| `DocumentNotPaused` | Você pediu para retomar um documento que não está pausado. |

## Enviar nova versão do documento

É possível enviar uma nova versão de um documento já criado. Para isso, envie o ID do documento em uma requisição `POST` junto ao arquivo da nova versão.

> **Cuidado**
>
> Ao enviar uma nova versão, o **fluxo de assinaturas é reiniciado**.

**Exemplos no GitHub:** [C#](https://github.com/LacunaSoftware/SignerSamples/blob/master/dotnet/console/Console/Scenarios/AddNewDocumentVersionScenario.cs) · [Java](https://github.com/LacunaSoftware/SignerSamples/blob/master/java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/AddNewDocumentVersionScenario.java) · [PHP](https://github.com/LacunaSoftware/SignerSamples/blob/master/php/Scenarios/AddNewDocumentVersionScenario.php) · [Node.js](https://github.com/LacunaSoftware/SignerSamples/blob/master/nodejs/scenarios/addNewDocumentVersionScenario.ts)

## Deletar documento

Para deletar um documento, você precisa do ID dele e faz uma chamada do tipo `DELETE`:

```javascript
DELETE /api/documents/b12cb1b2-5d6e-40b2-a050-097d068c4c11
```

**Exemplos no GitHub:** [C#](https://github.com/LacunaSoftware/SignerSamples/blob/master/dotnet/console/Console/Scenarios/DeleteDocumentScenario.cs) · [Java](https://github.com/LacunaSoftware/SignerSamples/blob/master/java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/DeleteDocumentScenario.java) · [PHP](https://github.com/LacunaSoftware/SignerSamples/blob/master/php/Scenarios/DeleteDocumentScenario.php) · [Node.js](https://github.com/LacunaSoftware/SignerSamples/blob/master/nodejs/scenarios/deleteDocumentScenario.ts)

## Restaurar um documento excluído

A interface web não restaura documentos excluídos, mas a API restaura. Só uma chave de API com o papel de administrador do sistema pode chamar as APIs desta seção. Para ter essa chave, crie a aplicação na organização `Sys Admin`, como mostram as [APIs de administração](https://docs.lacunasoftware.com/articles/signer/on-premises/administration#criação-de-chave-de-api-de-administração).

Envie os IDs dos documentos no campo `ids`:

```javascript
POST /api/documents/restore

{
    "ids": [ "b12cb1b2-5d6e-40b2-a050-097d068c4c11" ]
}
```

A resposta é o ID de um job em segundo plano. O job restaura cada documento com o status que ele tinha antes da exclusão e ignora os documentos que não estão excluídos.

Para devolver ao fluxo um documento cancelado ou expirado, use `POST /api/documents/restore-status`. O corpo tem os campos `ids` e `removeExpirationDateForExpiredDocs`. O Signer recalcula o status de cada documento, com uma exceção para o prazo de expiração vencido:

* Se `removeExpirationDateForExpiredDocs` é `false`, o documento com o prazo vencido continua `Expired`.
* Se `removeExpirationDateForExpiredDocs` é `true`, o Signer remove o prazo de expiração e recalcula o status.

O job ignora os documentos que não estão cancelados nem expirados. A resposta também é o ID do job.

**Demonstrações e exemplos**

- Cancelar um documento: [.NET](https://github.com/LacunaSoftware/SignerSamples/blob/master/dotnet/console/Console/Scenarios/CancelDocumentScenario.cs) · [Java](https://github.com/LacunaSoftware/SignerSamples/blob/master/java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/CancelDocumentScenario.java) · [Node.js](https://github.com/LacunaSoftware/SignerSamples/blob/master/nodejs/scenarios/cancelDocumentScenario.ts) · [PHP](https://github.com/LacunaSoftware/SignerSamples/blob/master/php/Scenarios/CancelDocumentScenario.php)
- Recusar um documento em nome da organização: [.NET](https://github.com/LacunaSoftware/SignerSamples/blob/master/dotnet/console/Console/Scenarios/RefuseDocumentScenario.cs) · [Java](https://github.com/LacunaSoftware/SignerSamples/blob/master/java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/RefuseDocumentScenario.java) · [Node.js](https://github.com/LacunaSoftware/SignerSamples/blob/master/nodejs/scenarios/refuseDocumentScenario.ts) · [PHP](https://github.com/LacunaSoftware/SignerSamples/blob/master/php/Scenarios/RefuseDocumentScenario.php)
- Excluir um documento: [.NET](https://github.com/LacunaSoftware/SignerSamples/blob/master/dotnet/console/Console/Scenarios/DeleteDocumentScenario.cs) · [Java](https://github.com/LacunaSoftware/SignerSamples/blob/master/java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/DeleteDocumentScenario.java) · [Node.js](https://github.com/LacunaSoftware/SignerSamples/blob/master/nodejs/scenarios/deleteDocumentScenario.ts) · [PHP](https://github.com/LacunaSoftware/SignerSamples/blob/master/php/Scenarios/DeleteDocumentScenario.php)
- Enviar uma nova versão de um documento: [.NET](https://github.com/LacunaSoftware/SignerSamples/blob/master/dotnet/console/Console/Scenarios/AddNewDocumentVersionScenario.cs) · [Java](https://github.com/LacunaSoftware/SignerSamples/blob/master/java/console/src/main/java/com/lacunasoftware/signer/sample/scenarios/AddNewDocumentVersionScenario.java) · [Node.js](https://github.com/LacunaSoftware/SignerSamples/blob/master/nodejs/scenarios/addNewDocumentVersionScenario.ts) · [PHP](https://github.com/LacunaSoftware/SignerSamples/blob/master/php/Scenarios/AddNewDocumentVersionScenario.php)
