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": "gestor@email.com",
            "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": "gestor@email.com",
            "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": []
      }
    ]
  }
}