Docs
Operações

Remover assinante

Remove um assinante de uma operação em andamento, com justificativa registrada na trilha de auditoria.

Remove um assinante de uma operação em andamento. O membro é marcado como cancelado (deixa de poder assinar e sai da fila), a justificativa fica registrada na trilha de auditoria e, em operações sequenciais, a ordem é reajustada automaticamente — se a vez era dele e ninguém mais dividia a posição, o próximo grupo da fila é notificado.

Quem já assinou não pode ser removido — a assinatura faz parte do registro da operação. Também não é possível remover o único membro restante da operação (quem já assinou conta nesse total); nesse caso, cancele a operação.

Endpoint

DELETE
/api/v2/operation/{operationId}/members/{memberId}
X-Api-Key<token>

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

In: header

Path Parameters

operationId*integer
Formatint64
memberId*integer
Formatint64

Header Parameters

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

curl -X DELETE "https://example.com/api/v2/operation/0/members/0" \  -H "Content-Type: application/json" \  -d '{}'
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}

O {operationId} na URL é o ID da operação — o campo id retornado em Criar operação.

Como obter o memberId

O ID de cada membro vem no retorno da criação da operação (members[].id). Se você não guardou, liste os membros da operação:

GET
/api/v2/operation/{operationId}/members
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 GET "https://example.com/api/v2/operation/0/members"
Empty
{
  "data": [
    {
      "id": 99201,
      "name": "Claudio Nogueira",
      "email": "[email protected]",
      "role": "Contratante",
      "status": "InProgress",
      "signedAt": null
    },
    {
      "id": 99202,
      "name": "Maria Santos",
      "email": "[email protected]",
      "role": "Testemunha",
      "status": "Completed",
      "signedAt": "2026-06-09T18:42:10"
    }
  ]
}

Membros já removidos não aparecem na lista; observadores da operação aparecem, no mesmo formato. status pode ser Create, InProgress ou Completed — apenas membros não Completed podem ser removidos. signedAt é preenchido apenas quando status é Completed.

Body

{
  "reason": "Participante substituído por mudança de responsável."
}
CampoTipoObrigatórioDescrição
reasonstringSimJustificativa da remoção. Fica registrada na trilha de auditoria da operação.

Exemplo

curl -X DELETE "https://api.forsign.digital/api/v2/operation/4821/members/99201" \
  -H "X-Api-Key: $FORSIGN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Participante substituído por mudança de responsável." }'
await fetch(`https://api.forsign.digital/api/v2/operation/${operationId}/members/${memberId}`, {
  method: 'DELETE',
  headers: {
    'X-Api-Key': apiKey,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ reason: 'Participante substituído por mudança de responsável.' }),
});
var req = new HttpRequestMessage(HttpMethod.Delete,
    $"/api/v2/operation/{operationId}/members/{memberId}")
{
    Content = JsonContent.Create(new { reason = "Participante substituído por mudança de responsável." }),
};
var resp = await http.SendAsync(req);
resp.EnsureSuccessStatusCode();

Resposta de sucesso (204)

204 No Content — corpo vazio. O membro foi removido.

Comportamento e gotchas

  • A remoção não apaga o histórico: o membro fica como cancelado na operação, com a justificativa na trilha de auditoria.
  • Ordem sequencial se reajusta sozinha: se a posição do removido ficou vazia, as posições seguintes são compactadas. Se a vez era dele, o próximo grupo da fila é notificado automaticamente.
  • Remover um membro já notificado é permitido — equivale a ele "abrir mão da vez". O link de assinatura dele deixa de funcionar.
  • A operação pode finalizar: se o removido era o único pendente e a operação está em finalização automática, a remoção dispara a conclusão — com os webhooks correspondentes (CompletedOperation, DocumentReady), se configurados.

Erros comuns

StatusCausaComo resolver
400reason vazio ou ausenteEnvie uma justificativa não vazia no corpo.
400O membro já assinou (Completed)Assinaturas concluídas são definitivas — não há remoção.
400É o único membro restante da operaçãoCancele a operação em vez de remover o membro.
401API key ausente ou inválidaConfira o header X-Api-Key.
404Operação ou membro não encontradoConfira operationId e memberId (liste os membros, acima).
409Operação não está em andamentoOperações concluídas/canceladas/expiradas não podem ser alteradas.

Fluxo típico: substituir um assinante

  1. GET /api/v2/operation/{operationId}/members — localize o memberId do assinante a substituir e confira que o status dele não é Completed.
  2. POST /api/v2/operation/{operationId}/members — adicione o substituto (se a operação for sequencial, use o orderPosition adequado).
  3. DELETE /api/v2/operation/{operationId}/members/{memberId} — remova o antigo com a justificativa.

Veja também

On this page