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
Authorization
ApiKey X-Api-Key<token>
Token de integracao. Envie no header X-Api-Key.
In: header
Path Parameters
operationId*integer
Format
int64Header 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."
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
message | string | Sim | Justificativa 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
operationIdna URL é o ID da operação (o campoidretornado 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
| Status | Causa | Como resolver |
|---|---|---|
400 | operationId inválido (≤ 0) | Use o id retornado na criação. |
400 | message vazia ou ausente | Envie uma justificativa não vazia no corpo. |
400 | Operação já finalizada ou cancelada | Operações concluídas/canceladas não podem ser canceladas de novo. |
401 | API key ausente ou inválida | Confira o header X-Api-Key. |
403 | Sua API key não tem permissão de cancelamento nesta operação | Verifique as permissões da chave e o acesso à operação. |
404 | Operação não encontrada para o operationId | Confira o id — a operação pode não existir na sua conta. |