Skip to main content

Requisitos (requirements[])

Lista filha do envelope. É o elo do modelo: cada item liga um signatário a um documento, dizendo com que título ele participa daquele arquivo, se precisa rubricá-lo, e registrando se aquele par já foi cumprido.

Uma linha se lê assim:

O signatário A, na qualidade de avalista, participa do documento B rubricando todas as páginas com iniciais — e ainda não cumpriu.

Uma linha por documento​

Um requisito por par (signatário, documento). João como devedor no contrato e caucionante no termo de garantia:

#signerdocumentroleinitialsType
1JoãoContratodebtortyped_initials
2JoãoTermo de garantiacollateral_providernone
O que NÃO está aqui

Duas coisas são da pessoa e valem para o envelope inteiro, não por documento:

PropriedadeOnde fica
Método de autenticaçãosigners[].authenticationType
Ação — assinar, aprovar, testemunhar, receber cópiasigners[].action

Uma pessoa tem uma identidade só, e o papel dela no envelope também é um só: quem entrou como testemunha é testemunha em tudo.

O que muda de documento para documento é a qualificação — e é isso, mais o cumprimento e a evidência do ato, que o requisito guarda.

Por que o requisito existe​

Além da qualificação e da rubrica por documento, ele responde uma pergunta que nenhuma outra entidade responde:

EntidadeO que o status dela diz
documents[].statusse aquele documento já foi fechado
signers[].statusse aquela pessoa terminou tudo
requirements[].statusse aquela pessoa cumpriu aquele documento

"O João assinou a CCB 4471, mas ainda não o termo de garantia" só existe no requisito. É o detalhe por trás do status partially_signed do envelope — e é o que o operador precisa para saber o que cobrar do cliente.

Geração automática​

Enviar requirements vazio ou ausente faz a plataforma gerar o padrão: o produto cartesiano dos signatários que atuam pelos documentos assináveis, todos com role = party.

Um envelope com 2 signatários e 2 contratos vira 4 requisitos sem você informar nenhum:

#signerdocumentrole
1JoãoCCB 4471party
2JoãoCCB 4472party
3MariaCCB 4471party
4MariaCCB 4472party

Assim o caso comum — todo mundo assina tudo como parte — não exige montar a lista à mão, e os requisitos continuam existindo para registrar o progresso e a evidência de cada ato.

Quem entra na geração

RegraEfeito
Documentossó os assináveis: role = original e signerNid = 0. Dossiês, anexos e imagens de identificação ficam de fora.
Signatáriostodos, exceto os com action = receive_copy — observador não tem o que cumprir. Entrega certificada entra, porque o envelope só fecha quando ele visualiza.
A lista nunca é complementada

Se você informar um requisito, a geração não acontece: a lista enviada é usada como está.

Isso é deliberado. Complementar uma lista parcial produziria envelopes com metade dos requisitos escolhidos por você e metade inventados pela plataforma — e ninguém conseguiria dizer, olhando o resultado, qual é qual. Para configurar exceção, informe a lista inteira.

Vale também no update: limpar requirements num envelope em rascunho regenera o padrão.

Campos​

CampoEntradaTipoPara que serve
ididstring (uuid)Identificador do requisito.
nid—integerIdentificador numérico interno.
signatureNid—integernid do envelope.
signerNidsignerNidintegernid do signatário. Usado em alterações de envelope já gravado. Signatário inexistente → 1006021.
documentNiddocumentNidintegernid do documento. Documento inexistente → 1006022.
signerIdsignerIdstring (uuid)Só no cadastro. O id que você atribuiu ao signatário no mesmo payload. A plataforma resolve o nid correspondente.
documentIddocumentIdstring (uuid)Só no cadastro. O id que você atribuiu ao documento no mesmo payload.
roleroleobject (code/key/name)Qualificação jurídica: com que título a pessoa assina aquele documento. É a única propriedade do signatário que varia por documento. Padrão party. Ver SignatureSignerRole. Inválido → 1006017.
initialsTypeinitialsTypeobject (code/key/name)Se precisa rubricar, e de que forma. Padrão none. Ver SignatureInitialsType. Inválido → 1006019.
initialsPagesinitialsPagesstring | nullQuais páginas rubricar: "all" ou lista ("1,3,7"). Ignorado quando initialsType = none. A rubrica é por página; o modelo não guarda coordenada de marca.
status—object (Status)Se o requisito já foi cumprido. Ver SignatureRequirementStatus.
fulfilledAt—string (date-time) | nullMomento do cumprimento.
authenticityauthenticityobjectEvidência técnica do ato. Ver abaixo.
externalId—string | nullId do requisito no provedor, quando ele o expõe como recurso próprio (Clicksign).
Por que role está aqui e não no signatário

Porque o mesmo signatário pode ter qualificações diferentes em documentos diferentes do envelope. Quem assina o contrato principal como devedor pode assinar o termo de garantia como caucionante.

A qualificação é o que vai impresso no documento ao lado da assinatura — ela pertence à relação entre a pessoa e aquele papel específico.


Autenticidade​

Evidências técnicas do ato de assinar aquele documento. É o que sustenta a assinatura numa contestação.

CampoTipoPara que serve
timestampstring (date-time) | nullMomento exato registrado pelo provedor, em UTC.
ipAddressstring | nullIP de onde partiu a assinatura.
sessionIdstring | nullIdentificador da sessão de assinatura.
userAgentstring | nullNavegador e sistema operacional usados.
deviceIdstring | nullIdentificador do dispositivo.
fingerprintstring | nullImpressão digital do navegador/dispositivo.
latitudedecimal | nullLatitude no momento da assinatura.
longitudedecimal | nullLongitude. A Confia devolve as duas juntas em latLong.
locationstring | nullLocal declarado (cidade/UF), quando informado pelo signatário.
channelobject (code/key/name)Canal em que a assinatura ocorreu. Ver SignatureDeliveryChannel.
dataarray de { key, label, value }Evidências adicionais específicas do provedor. label é o rótulo de exibição.
Por que por par, e não por signatário

Com flow = sequential, ou com o cliente voltando dias depois para terminar, a mesma pessoa assina cada documento de um lugar e num momento diferente — a CCB de casa na segunda, o termo do escritório na quarta.

Um IP só no signatário seria falso para pelo menos um dos documentos. É também assim que os provedores registram: a auditoria da Confia é por parte com ip e latLong por evento, e a Clicksign dispara evento por documento.

Não confundir com os eventos

SignatureEvent também guarda IP e geolocalização — mas é a trilha: todo acesso, toda tentativa, toda recusa.

authenticity é o snapshot do ato que valeu. Mesma relação que existe entre o status de um registro e o seu log de auditoria.