Appearance
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
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | UUID do grupo |
name | string | Sim | Nome do grupo (ex: "Partes", "Gestores") |
order | number | Sim | Ordem de exibição/assinatura (1, 2, 3...) |
isPartGroup | boolean | Sim | Se true, é o grupo de partes externas |
members | array | Sim | Lista de membros do grupo |
Campos de members
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | UUID do membro |
userId | string | Não | UUID do usuário do sistema (se interno) |
name | string | Sim | Nome do signatário |
email | string | Sim | Email do signatário |
avatar | string | Não | URL do avatar |
order | number | Sim | Ordem 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
orderde cada grupo
Ordem de Assinatura
A ordem de assinatura é definida pelo campo order de cada grupo:
- Grupo com
order: 1assina primeiro - Grupo com
order: 2assina segundo - E assim por diante
Exemplo de signatureConfig
json
{
"signatureConfig": {
"groups": [
{
"id": "uuid",
"name": "Partes",
"order": 1,
"isPartGroup": true,
"members": []
}
]
}
}