Docs
Operações

Completar operação

Dispara a finalização de uma operação em modo manual (com todos já assinados) e gera os PDFs assinados.

Encerra a operação manualmente. Quando você cria com manualFinish.hasManualFinish = true, a operação não fecha sozinha mesmo depois que todos assinarem — fica aguardando este comando. Ao completar, o fluxo final consolida os PDFs, aplica os carimbos de auditoria, dispara o webhook CompletedOperation e libera o download.

Completar não força o encerramento com assinantes pendentes. A operação só é finalizada se (1) estiver em modo manual (manualFinish.hasManualFinish = true) e (2) todos os assinantes já tiverem assinado. Se faltar qualquer assinante, a chamada retorna 200 mas não faz nada — a operação continua em andamento.

Quando usar

  • Operação em modo manual cujos assinantes já terminaram de assinar e você controla o momento exato de fechar
  • Todos assinaram e você quer disparar a finalização agora em vez de esperar

Se você quer que a operação encerre automaticamente quando todos assinarem, crie ela com manualFinish.hasManualFinish = false. Neste endpoint, chamar uma operação em modo automático não tem efeito.

Endpoint

POST
/api/v2/operation/{operationId}/complete
X-Api-Key<token>

Token de integracao. Envie no header X-Api-Key.

In: header

Path Parameters

operationId*integer
Formatint64

Header Parameters

Response Body

curl -X POST "https://example.com/api/v2/operation/0/complete"
Empty

Sem body — o operationId na URL (o ID da operação, o campo id retornado em Criar operação) já basta.

Exemplo

curl -X POST "https://api.forsign.digital/api/v2/operation/4821/complete" \
  -H "X-Api-Key: $API_KEY"
await fetch(`https://api.forsign.digital/api/v2/operation/${operationId}/complete`, {
  method: 'POST',
  headers: { 'X-Api-Key': apiKey },
});
var resp = await http.PostAsync(
    $"/api/v2/operation/{operationId}/complete",
    content: null);
resp.EnsureSuccessStatusCode();

Resposta de sucesso (200)

{ "success": true, "statusCode": 200, "messages": [{ "value": "Operação concluída com sucesso" }] }

Comportamento e gotchas

  • Só finaliza em modo manual e com todos assinados. Se houver assinante pendente, ou se a operação estiver em modo automático, a chamada retorna 200 mas não tem efeito. Por isso o 200 não garante que a operação foi concluída — confirme pelo webhook CompletedOperation ou consultando a operação.
  • Quando a finalização ocorre, ela acontece durante a chamada: ao receber o 200, a operação já está Completed e os PDFs assinados já foram gerados.
  • O webhook CompletedOperation é enviado alguns segundos depois do 200 (mensagem com atraso) — use-o como gatilho confiável para o download, em vez de baixar imediatamente.

Erros comuns

StatusCausaComo resolver
400operationId inválido (≤ 0)Use o id retornado na criação.
401API key ausente ou inválidaConfira o header X-Api-Key.
404Operação não encontradaConfira o id — a operação pode não existir na sua conta.

Diferença entre Completar e Cancelar

CompletarCancelar
Status finalCompleted (sucesso)Canceled
PDFs assinadosGerados na finalização (prontos no 200)Não gera PDF finalizado
Assinantes pendentesBloqueiam a finalização (precisa de todos assinados)Encerra mesmo com pendentes
Devolução de créditosNãoSim, se ninguém assinou ainda
Webhook disparadoCompletedOperationUpdateOperation (status=Canceled)
BodySem body{ "message": "..." } (obrigatório)

Veja também

On this page