Configurações Avançadas na Criação de Fluxos
O endpoint POST /flow/init suporta diversas estratégias de ordenamento e restrição
dos signatários através da combinação dos campos priority, quorum_required e config.
Esta seção apresenta os padrões de configuração disponíveis com exemplos práticos.
Assinatura Mista (Padrão)
O cenário mais comum: pools com prioridades diferentes criam uma sequência de assinatura, onde cada grupo assina na ordem definida.
Caso de uso: Testemunhas assinam primeiro, depois o diretor aprova.
{
"file_name": "contrato.pdf",
"document": "JVBERi0xLjQK...",
"webhook": "https://api.suaempresa.com/callback",
"pools": [
{
"alias": "Testemunhas (Ambos assinam)",
"priority": 10,
"signers": [
{
"email": "testemunha1@empresa.com",
"document": "11111111111"
},
{
"email": "testemunha2@empresa.com",
"document": "22222222222"
}
]
},
{
"alias": "Diretor (Aprovação Final)",
"priority": 20,
"signers": [
{
"email": "diretor@empresa.com",
"document": "33333333333"
}
]
}
]
}
Comportamento: Ambas as testemunhas do pool com priority: 10 são notificadas simultaneamente e podem assinar em paralelo. Somente após ambas assinarem, o diretor (priority: 20) é notificado.
Assinatura Estritamente Sequencial
Cada pool contém um único signatário com prioridade exclusiva, criando uma cadeia estritamente linear.
Caso de uso: Fluxo de aprovação com etapas bem definidas — solicitante, revisão técnica e aprovação final.
{
"file_name": "documento.pdf",
"document": "JVBERi0xLjQK...",
"webhook": "https://api.suaempresa.com/callback",
"pools": [
{
"alias": "1. Solicitante",
"priority": 1,
"signers": [
{ "email": "solicitante@empresa.com", "document": "11111111111" }
]
},
{
"alias": "2. Revisão Técnica",
"priority": 2,
"signers": [
{ "email": "tecnico@empresa.com", "document": "22222222222" }
]
},
{
"alias": "3. Aprovação Final (Diretoria)",
"priority": 3,
"signers": [
{ "email": "diretor@empresa.com", "document": "33333333333" }
]
}
]
}
Comportamento: O signatário 1 é notificado primeiro. Somente após sua assinatura, o signatário 2 é notificado, e assim por diante.
Assinatura Totalmente Concorrente
Todos os signatários em um único pool com a mesma prioridade. Todos são notificados ao mesmo tempo e podem assinar em qualquer ordem.
Caso de uso: Sócios que precisam assinar o mesmo documento sem ordem de precedência.
{
"file_name": "contrato_social.pdf",
"document": "JVBERi0xLjQK...",
"webhook": "https://api.suaempresa.com/callback",
"pools": [
{
"alias": "Sócios (Assinatura Simultânea)",
"priority": 1,
"signers": [
{ "email": "socio1@empresa.com", "document": "11111111111" },
{ "email": "socio2@empresa.com", "document": "22222222222" },
{ "email": "socio3@empresa.com", "document": "33333333333" }
]
}
]
}
Comportamento: Os três sócios recebem o e-mail ao mesmo tempo. A ordem em que assinam é irrelevante. O fluxo é concluído quando todos assinarem.
Quórum Parcial
O campo quorum_required define o número mínimo de assinaturas necessárias para que um pool seja considerado concluído, sem exigir que todos os signatários do pool assinem.
Caso de uso: Parecer jurídico que precisa de apenas 1 advogado de um grupo de 2, seguido pela aprovação obrigatória do CEO.
{
"file_name": "parecer.pdf",
"document": "JVBERi0xLjQK...",
"webhook": "https://api.suaempresa.com/callback",
"pools": [
{
"alias": "1. Parecer Jurídico (Basta 1 Advogado)",
"priority": 10,
"quorum_required": 1,
"signers": [
{ "email": "advogado1@empresa.com", "document": "11111111111" },
{ "email": "advogado2@empresa.com", "document": "22222222222" }
]
},
{
"alias": "2. Aprovação do CEO",
"priority": 20,
"signers": [
{ "email": "ceo@empresa.com", "document": "33333333333" }
]
}
]
}
Comportamento: Ambos os advogados são notificados, mas basta que 1 assine para o pool ser concluído e o CEO ser notificado.
Tip
Quando quorum_required não é informado, o padrão é exigir a assinatura de todos os signatários do pool.
Restrição por Tipo de Assinatura no Pool
O campo config no nível do pool permite restringir os tipos de assinatura, perfis e provedores que os signatários daquele pool podem utilizar. Todos os signatários do pool herdam estas restrições.
Caso de uso: Diretoria obrigada a usar certificado qualificado (A1/A3 ICP-Brasil).
{
"file_name": "ata_conselho.pdf",
"document": "JVBERi0xLjQK...",
"webhook": "https://api.suaempresa.com/callback",
"pools": [
{
"alias": "Diretoria (A1/A3 Obrigatório)",
"priority": 10,
"config": {
"allowed_signatures": ["QUALIFIED"],
"allowed_providers": ["INTEGRAICP"]
},
"signers": [
{ "email": "diretor@empresa.com", "document": "11111111111" }
]
}
]
}
Comportamento: Ao acessar o link de assinatura, o signatário verá apenas as opções de assinatura qualificada via INTEGRAICP. Provedores de assinatura avançada ou simples não serão exibidos.
Campos disponíveis em ``config``:
Campo |
Valores Possíveis |
|---|---|
|
|
|
|
|
|
Restrição Mista com Override no Signatário
Quando o config é definido tanto no pool quanto no signatário, o config do signatário sobrescreve o do pool para aquele signatário específico. Isso permite regras diferenciadas dentro do mesmo pool.
Caso de uso: Comitê misto onde o sócio deve usar assinatura qualificada, mas a testemunha pode usar assinatura avançada.
{
"file_name": "acordo.pdf",
"document": "JVBERi0xLjQK...",
"webhook": "https://api.suaempresa.com/callback",
"pools": [
{
"alias": "Comitê Misto",
"priority": 10,
"quorum_required": 2,
"config": {
"allowed_signatures": ["QUALIFIED"],
"allowed_providers": ["INTEGRAICP"]
},
"signers": [
{
"email": "socio@empresa.com",
"document": "11111111111"
},
{
"email": "testemunha@empresa.com",
"document": "22222222222",
"config": {
"allowed_signatures": ["ADVANCED", "QUALIFIED"],
"allowed_providers": ["PIXSIGN"]
}
}
]
}
]
}
Comportamento:
O sócio herda as restrições do pool: somente assinatura qualificada via INTEGRAICP.
A testemunha possui
configpróprio que sobrescreve o do pool: pode usar assinatura avançada ou qualificada via PIXSIGN.O pool requer quórum de 2, portanto ambos devem assinar.
Combinando Estratégias
Todas as estratégias acima podem ser combinadas livremente em um único fluxo. Por exemplo, é possível ter um primeiro pool concorrente com quórum parcial e restrição de provedor, seguido por um pool sequencial sem restrições:
{
"pools": [
{
"alias": "Fase 1 — Comitê Técnico (2 de 3)",
"priority": 1,
"quorum_required": 2,
"config": { "allowed_signatures": ["QUALIFIED"] },
"signers": [
{ "email": "eng1@empresa.com", "document": "111..." },
{ "email": "eng2@empresa.com", "document": "222..." },
{ "email": "eng3@empresa.com", "document": "333..." }
]
},
{
"alias": "Fase 2 — Aprovação Jurídica",
"priority": 2,
"signers": [
{ "email": "juridico@empresa.com", "document": "444..." }
]
},
{
"alias": "Fase 3 — Diretoria",
"priority": 3,
"signers": [
{ "email": "ceo@empresa.com", "document": "555..." }
]
}
]
}