Docs
Operações

Cancelar operação

Encerra uma operação em andamento, devolve créditos quando aplicável e notifica os assinantes.

Marca a operação como Canceled, registra a trilha de auditoria, devolve créditos (se ninguém assinou ainda) e notifica os assinantes por email. A operação é atômica: se algo falhar, nada muda e a operação permanece no estado anterior.

Cancelamento é irreversível. Não dá pra "des-cancelar" — se precisar de novo, recrie a operação. Documentos já assinados parcialmente continuam acessíveis para auditoria, mas a operação inteira fica marcada como cancelada.

Quando usar

  • Cliente desistiu antes de todos assinarem
  • Operação criada com dados errados (assinante errado, documento errado)
  • Mudança no contrato exige nova operação
  • Prazo extrapolou e você quer encerrar manualmente em vez de esperar expirar

Endpoint

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

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

In: header

Path Parameters

operationId*integer
Formatint64

Header Parameters

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X POST "https://example.com/api/v2/operation/0/cancel" \  -H "Content-Type: application/json" \  -d '{}'
Empty

Body

{
  "message": "Operação cancelada por solicitação do cliente."
}
CampoTipoObrigatórioDescrição
messagestringSimJustificativa do cancelamento. É incluída na notificação aos assinantes.

Exemplo

curl -X POST "https://api.forsign.digital/api/v2/operation/4821/cancel" \
  -H "X-Api-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "message": "Operação cancelada por solicitação do cliente." }'
await fetch(`https://api.forsign.digital/api/v2/operation/${operationId}/cancel`, {
  method: 'POST',
  headers: {
    'X-Api-Key': apiKey,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ message: 'Cliente desistiu.' }),
});
var resp = await http.PostAsJsonAsync(
    $"/api/v2/operation/{operationId}/cancel",
    new { message = "Cliente desistiu." });
resp.EnsureSuccessStatusCode();

Resposta de sucesso (200)

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

Comportamento e gotchas

  • O operationId na URL é o ID da operação (o campo id retornado em Criar operação) — o mesmo número usado em todos os endpoints da operação.
  • Operações já finalizadas não podem ser canceladas — a chamada retorna 400.
  • Devolução de créditos: se nenhum assinante ainda tiver assinado, os créditos de documento são devolvidos. Se houver pelo menos uma assinatura, os créditos não voltam.
  • Assinaturas com certificado digital também têm os créditos de certificado devolvidos, quando aplicável.
  • O cancelamento fica registrado na trilha de auditoria da operação.
  • Um webhook UpdateOperation (status=Canceled) é disparado para os webhooks configurados.
  • A notificação por email é assíncrona — se ela falhar, o cancelamento não é revertido.

Erros comuns

StatusCausaComo resolver
400operationId inválido (≤ 0)Use o id retornado na criação.
400message vazia ou ausenteEnvie uma justificativa não vazia no corpo.
400Operação já finalizada ou canceladaOperações concluídas/canceladas não podem ser canceladas de novo.
401API key ausente ou inválidaConfira o header X-Api-Key.
403Sua API key não tem permissão de cancelamento nesta operaçãoVerifique as permissões da chave e o acesso à operação.
404Operação não encontrada para o operationIdConfira o id — a operação pode não existir na sua conta.

Veja também

On this page