Novidades no SIGN: Integração sem a obrigatoriedade do e-mail

Novidades no SIGN: Integração sem a obrigatoriedade do e-mail

SIGN, Xplatform

Como assinar sem obrigatoriedade de e-mail:

A utilização do e-mail é uma premissa obrigatória para o Sign. No entanto, alguns usuários não possuem e-mail ou desejam assinar sem essa exigência. Pensando nisso, foi adicionada uma nova funcionalidade para atender a essa necessidade. Atualmente, está disponível apenas via API e com solicitação de liberação.

Ao enviar um envelope para assinatura sem exigir o e-mail, o sistema cria automaticamente um e-mail fictício internamente. É necessário que um canal de comunicação (communicationChannel) seja escolhido, podendo ser a própria plataforma, SMS ou WhatsApp. Esse canal deve ser configurado utilizando os plugins(conectores) disponíveis ao gerar o envelope.

Exemplo de envelope sem obrigatoriedade de e-mail utilizando a plataforma como canal de comunicação. Note que o processo de assinatura chega via notificação e o e-mail fictício gerado é randômico:

 

Canais de comunicação disponíveis na ausência do e-mail:

Canal de comunicação Descrição E-mail obrigatório
Plataforma Necessita de um usuário interno com Login e Senha da plataforma Não (exceto o login para o usuário interno)
SMS Necessita de um plugin (conector) para envio de SMS Não
WhatsApp Necessita de um plugin (conector) para envio via WhatsApp Não

Passos para criar e enviar para a assinatura um envelope sem obrigatoriedade de e-mail:

  1. Criar um rascunho do envelope (passando como “false” o valor para o atributo “mandatoryEmail”).
  2. Enviar para assinatura.

1° – Visão geral da criação de um rascunho do envelope:

Para a chamar a primitiva via API, deve ser feito um POST para a URL: rest/platform/ecm_ged/actions/saveEnvelope

passando um JSON como corpo da requisição com os seguinte parâmetros de versionamento no Headers:

Accept: application/json;seniorx.version=3

Atributos utilizados nesta primitiva:

AtributoDescrição TipoObrigatório
NameNome do envelopeStringNão
envelopeDocumentsLista de documentosArrayNão
signers (ver tabela 2)SignatáriosArrayNão
instructionsToSignInstruções para os signatáriosStringNão
askGeolocationHabilitar/Desabilitar coleta de posição geográficaDONT_ASK_LOCATION,
ASK_LOCATION ou
REQUIRED_LOCATION
Não
recurrentNotificationIntervalDaysRecorrência de dias para notificaçãoIntSim (padrão 0 dias)
daysToExpireDias para expiração do envelopeIntSim (padrão 120 dias)
Tabela 1- Atributos gerais da primitiva saveEnvelopeDraft

AtributoDescriçãoTipoObrigatório
nameNome do signatárioStringSim
emailE-mail do signatárioStringSe torna obrigatório caso “mandatoryEmail” seja true
phoneNumberTelefone do signatárioStringSe torna obrigatório caso “mandatoryEmail” seja false e o canal de comunicação escolhido seja SMS ou WhatsApp
usernamenome do usuário da plataformaStringSe torna obrigatório caso “mandatoryEmail” seja false e o canal de comunicação seja a plataforma
communicationChannelCanais de comunicação do usuárioObjetoSe torna obrigatório informar pelo menos um canal de comunicação caso “mandatoryEmail” seja false
signerTypeTipo de assinanteMANDATORY,
RECEIVE_COPY,
RECEIVE_COPY_BEFORE_SIGN ou
PIONEER
Não
signerSubTypeSubtipo de assinanteDISABLED,
OPTIONAL ou
MANDATORY
Não
orderSignOrdem do assinanteIntSim
digitalCertificateAssinar com certificado digitalMANDATORY,
RECEIVE_COPY,
RECEIVE_COPY_BEFORE_SIGN ou
PIONEER
Não
mandatoryEmailObrigatoriedade do uso de e-mailBoolean Não (Padrão true)
Tabela 2 – Signers

Exemplo de JSON resumido:

{
  "name": "string",
  "envelopeDocuments": [
    {
      "documentVersion": "string",
      "envelopePosition": 1
    }
  ],
  "signers": [
    {
      "name": "string",
      "email": "string",
      "phoneNumber": "string",
      "username": "string",
      "askGeolocation": "DONT_ASK_LOCATION",
      "signerStatus": "string",
      "communicationChannel": {
        "email": false,
        "platform": false,
        "whatsapp": false,
        "sms": false
      },
      "signerType": "MANDATORY",
      "signerSubType": "SIGN",
      "orderSign": 1,
      "digitalCertificate": "DISABLED",
      "mandatoryEmail": false
    }
  ],
  "instructionsToSigner": "string",
  "askGeolocation": "DONT_ASK_LOCATION",
  "recurrentNotificationIntervalDays": 0,
  "daysToExpire": 120,
  "conectors": []
}

Ao executar a chamada com sucesso, um envelopeDraftId será gerado:

Payload de um rascunho utilizando a plataforma (Usuário interno):

Neste caso o e-mail esta sendo passado como não obrigatório (“mandatoryEmail”: false) e o usuário quer utilizar a plataforma para enviar para assinatura:

  • Note que o valor de “platform” em “communicationChannel” esta sendo passado como “true”
  • o atributo “mandatoryEmail” esta sendo passado como “false”

{
  "name": "string",
  "envelopeDocuments": [
    {
      "documentVersion": "string",
      "envelopePosition": 1
    }
  ],
  "signers": [
    {
      "name": "string",
      "email": "string",
      "username": "string",
      "phoneNumber": "string",
      "username": "string",
      "askGeolocation": "DONT_ASK_LOCATION",
      "signerStatus": "string",
      "communicationChannel": {
        "email": false,
        "platform": true,
        "whatsapp": false,
        "sms": false
      },
      "signerType": "MANDATORY",
      "signerSubType": "SIGN",
      "orderSign": 1,
      "digitalCertificate": "DISABLED",
      "mandatoryEmail": false
    }
  ],
  "instructionsToSigner": "string",
  "askGeolocation": "DONT_ASK_LOCATION",
  "recurrentNotificationIntervalDays": 0,
  "daysToExpire": 120,
  "conectors": []
}

Exemplo de payload de um rascunho utilizando o SMS ou WhatsApp:

Neste caso o e-mail está sendo passado como não obrigatório (“mandatoryEmail”: false) e o usuário quer utilizar o SMS ou WhatsApp para efetuar o processo de assinatura.

Utilizando o SMS:

  • Note que o valor de “sms” no “communicationChannel” está sendo passado como “true”.
  • O Atributo “mandatoryEmail” está sendo passado como “false”.
  • O atributo phoneNumber deve estar preenchido
  • O atributo conector está preenchido pois ele é o responsável de integrar o respectivo serviço de SMS com o Sign.

Utilizando o WhatsApp:

  • Segue os mesmos padrões do SMS, alterando apenas o valor de “whatsapp” para “true”

Obs: Há diversos conectores que podem ser utilizados para tal ação.

{
    "signers": [
        {
            "name": "User",
            "phoneNumber": "47123456789",
            "orderSign": 1,
            "signerType": "MANDATORY",
            "signerSubType": "SIGN",
            "communicationChannel": {
                "email": false,
                "platform": false,
                "sms": true
            },
           "mandatoryEmail": false
        }
    ],
    "conectors": [
        {
            "name": "send-sms-infobip",
            "id": "string",
            "title": "Enviar SMS (Infobip)",
            "description": "Envia um SMS utilizando os serviços da Infobip.",
            "inputs": [
                {
                    "id": "string",
                    "inputName": "Token de autorização",
                    "inputParameter": "string",
                    "inputType": "string",
                    "required": boolean,
                    "value": "string",
                    "inputValue": "string"
                }
            ]
        }
    ],
    "envelopeDocuments": [
        {
            "documentVersion": "0d110945-2f49-4062-be2f-efe780ae9a18",
            "envelopePosition": 1
        }
    ],
    "envelopeDraftId": "",
    "name": "Teste",
    "documentsVersions": [
        "0d110945-2f49-4062-be2f-efe780ae9a18"
    ],
    "askGeolocation": "DONT_ASK_LOCATION",
    "daysToNotify": 0,
    "daysToExpire": 120,
    "notificateAuthor": false,
    "recurrentNotificationIntervalDays": 0
}

Para saber mais sobre os conectores, clique aqui.

2º – Enviando o rascunho criado para a assinatura:

Com o valor do envelopeDraftId gerado no passo anterior, basta realizar um POST para a primitiva sendDraftToSign na URL rest/platform/ecm_ged/actions/sendDraftToSign passando um JSON como corpo da requisição.

Atributos usados nessa requisição:

AtributoDescriçãoTipoObrigatório
envelopeDraftIdId gerado na criação do rascunho do envelope (passo 1)StringSim
notifyUserNotificação do usuárioBooleanNão
sendEmailEnvia um e-mail notificando sobre o processo de assinaturaBooleanNão
Tabela 3

Exemplo de JSON:

{
  "envelopeDraftId": "string",
  "notifyUser": false,
  "sendEmail": true
}

Ao realizar a chamada com sucesso, um envelopeId será retornado e o envelope terá sido enviado para a assinatura:

Para saber mais sobre o envio de um envelope para a assinatura, clique aqui.

Leave A Comment