Skip to content

Workflow Signature API - Especificação ​

Visão Geral ​

Estrutura simplificada para configuração de grupos de assinatura em workflows.


Estrutura do signatureConfig ​

typescript
type SignatureStepConfig = {
  groups: SignatureGroup[]
}

type SignatureGroup = {
  id: string
  name: string
  order: number
  isPartGroup: boolean
  members: SignerMember[]
}

type SignerMember = {
  id: string
  userId?: string
  name: string
  email: string
  avatar?: string
  order: number
}

Endpoints ​

GET /workflows/:id ​

Response:

json
{
  "signatureConfig": {
    "groups": [
      {
        "id": "uuid-1",
        "name": "Partes",
        "order": 1,
        "isPartGroup": true,
        "members": []
      },
      {
        "id": "uuid-2",
        "name": "Gestores",
        "order": 2,
        "isPartGroup": false,
        "members": [
          {
            "id": "member-uuid",
            "userId": "user-uuid",
            "name": "Nome do Gestor",
            "email": "[email protected]",
            "order": 1
          }
        ]
      }
    ]
  }
}

POST /workflows ​

Request Body:

json
{
  "signatureConfig": {
    "groups": [
      {
        "id": "uuid-1",
        "name": "Partes",
        "order": 1,
        "isPartGroup": true,
        "members": []
      },
      {
        "id": "uuid-2",
        "name": "Gestores",
        "order": 2,
        "isPartGroup": false,
        "members": [
          {
            "id": "member-uuid",
            "userId": "user-uuid",
            "name": "Nome do Gestor",
            "email": "[email protected]",
            "order": 1
          }
        ]
      }
    ]
  }
}

PUT /workflows/:id ​

Mesmo schema do POST.


Campos ​

CampoTipoObrigatórioDescrição
idstringSimUUID do grupo
namestringSimNome do grupo (ex: "Partes", "Gestores")
ordernumberSimOrdem de exibição/assinatura (1, 2, 3...)
isPartGroupbooleanSimSe true, é o grupo de partes externas
membersarraySimLista de membros do grupo

Campos de members ​

CampoTipoObrigatórioDescrição
idstringSimUUID do membro
userIdstringNãoUUID do usuário do sistema (se interno)
namestringSimNome do signatário
emailstringSimEmail do signatário
avatarstringNãoURL do avatar
ordernumberSimOrdem de assinatura dentro do grupo

Regras de Negócio ​

Grupo de Partes (isPartGroup: true) ​

  • Sempre deve existir no workflow
  • Não pode ser excluído
  • Não pode ter membros adicionados manualmente (membros vêm do contrato)
  • No momento da criação do contrato, as partes são automaticamente adicionadas a este grupo

Grupos Internos/Customizados (isPartGroup: false) ​

  • Podem ser criados, editados e excluídos
  • Membros são adicionados manualmente (usuários do sistema)
  • A ordem de assinatura é definida pelo campo order de cada grupo

Ordem de Assinatura ​

A ordem de assinatura é definida pelo campo order de cada grupo:

  • Grupo com order: 1 assina primeiro
  • Grupo com order: 2 assina segundo
  • E assim por diante

Exemplo de signatureConfig ​

json
{
  "signatureConfig": {
    "groups": [
      {
        "id": "uuid",
        "name": "Partes",
        "order": 1,
        "isPartGroup": true,
        "members": []
      }
    ]
  }
}