Pular para o conteúdo principal

Criar um pacote de assinatura

POST/document/manychave privadaprk_

Este serviço permite gerar um pacote de documentos a partir de um modelo da Auco ou de um arquivo PDF. Concluído o processo, você receberá cada documento com seu próprio certificado de assinatura.

aviso

O array documents deve conter pelo menos 2 elementos. Se você precisa de apenas um documento, use o endpoint POST /document/upload.

Passos para criar um pacote de documentos por meio de um modelo automatizado:​

  1. Consulte os modelos ou documentos personalizados disponíveis.
  2. Obtenha o _id do documento base.
  3. Consulte as variáveis necessárias do documento selecionado.
  4. Monte e envie a requisição de criação.
info

Se você quiser fazer isso usando um PDF, não é necessário enviar o arquivo na requisição inicial. Ao final, será retornada uma URL assinada para cada documento do pacote.

A seguir estão os parâmetros necessários para este serviço, juntamente com exemplos e possíveis respostas do sistema.


Autenticação​

Inclua sua chave privada no cabeçalho Authorization.

Authorization: prk_xxx...

Parâmetros de criação​

NomeTipoDescrição
emailString obrigatórioEndereço de e-mail do criador do processo.
packageString opcionalIdentificador de um pacote previamente colocado em edição. Enviá-lo sobrescreve esse pacote em vez de criar um novo, mantendo seu identificador. Reenvie o payload completo: tudo o que você omitir é removido. Saiba mais
documentString condicionalID do documento personalizado ou do modelo da Auco. Obrigatório somente se você quiser usar um modelo.
nameString obrigatórioNome do processo de assinatura do documento. Obrigatório se o processo incluir assinatura de documentos.
messageString opcionalMensagem que será enviada no corpo do e-mail que notifica os signatários ou aprovadores do documento.
subjectString opcionalAssunto com o qual o e-mail de notificação será enviado aos signatários ou aprovadores.
folderString condicionalSe quiser salvar este processo em uma pasta específica, informe o caminho aqui. A pasta deve existir e pertencer ao criador do processo.
rememberNumber condicionalAtiva lembretes automáticos com o intervalo de tempo (em horas) entre cada notificação. Deve ser múltiplo de 3.
expiredDateDate opcionalData de expiração do documento. Deve ser pelo menos 3 dias após a data de criação do processo e é enviada no formato Date do JSON.
cameraBoolean opcionalIndica se a validação por foto é obrigatória. O padrão é false.
otpCodeBoolean opcionalIndica se a validação por código OTP é obrigatória. O padrão é false.
optionsObject opcionalEspecifica as configurações de validação de identidade. Veja mais
notificationBoolean opcionalDefine se a Auco notifica os participantes assim que o processo é criado. O padrão é true. É o valor padrão para todos os signatários; cada um pode substituí-lo com signProfile[x].notification. Os signatários que a Auco não notifica recebem um id na resposta, agrupado por e-mail em todos os documentos, para que o integrador possa levá-los a assinar por conta própria.
customObject opcionalObjeto livre para enviar parâmetros definidos pelo integrador (por exemplo, identificadores internos ou metadados). A Auco o armazena como está e o repassa nas notificações de webhook e na resposta de GET /document, sem interpretar nem validar seu conteúdo. Aplica-se a todo o pacote.
dataArray condicionalContém todos os dados exigidos pelo modelo para gerar o documento. Obrigatório somente se você usar um modelo.
data[x].keyString obrigatórioNome do parâmetro registrado no modelo.
data[x].valueString obrigatórioValor atribuído ao parâmetro.
documents *Array obrigatórioLista de objetos, cada um representando um documento do pacote.
documents[0].nameString obrigatórioNome do documento.
documents[0].readersArray opcionalLista de objetos que definem participantes que não fazem parte do processo de assinatura, mas devem acompanhar cada etapa dele.
documents[0].readers[x].nameString obrigatórioNome do leitor.
documents[0].readers[x].emailString obrigatórioEndereço de e-mail do leitor.
documents[0].signProfileArray obrigatórioLista de objetos com as informações de cada signatário ou aprovador para notificação e assinatura.
documents[0].signProfile[x].nameString obrigatórioNome do signatário.
documents[0].signProfile[x].emailString obrigatórioEndereço de e-mail do signatário. É o que a Auco usa para relacioná-lo a cada documento do pacote, por isso é obrigatório mesmo quando você o notifica por WhatsApp. Omiti-lo retorna SIGNER_EMAIL_REQUIRED.
documents[0].signProfile[x].phoneString opcionalNúmero de telefone do signatário, com código do país. Obrigatório se o pacote usar o WhatsApp como canal.
documents[0].signProfile[x].positionArray condicionalPosições de assinatura deste signatário em cada página. As posições de assinatura podem ser pré-carregadas nos modelos. Veja mais em como definir as posições das assinaturas.
documents[0].signProfile[x].typeArray condicionalNome usado para identificar o tipo de signatário se estiver pré-salvo em um modelo, por exemplo: 'co-signer'.
documents[0].signProfile[x].labelBoolean condicionalIndica se o posicionamento das assinaturas será feito por meio de rótulos no PDF.
documents[0].signProfile[x].notificationBoolean opcionalSubstitui o notification global para este signatário, nos dois sentidos: false o silencia mesmo que o global seja true, e true faz a Auco notificá-lo mesmo que o global seja false. Se o mesmo e-mail aparecer em vários documentos com valores diferentes, false prevalece. Aplica-se apenas a documentos PDF; nos documentos de modelo, o indicador por signatário é definido no signatureProfile do modelo.
As validações de identidade em pacotes são globais

Neste serviço, a validação de identidade e o canal de assinatura são configurados uma única vez para todo o pacote, usando camera, otpCode e options na raiz da requisição, e valem igualmente para todos os participantes.

A criação de pacotes não oferece suporte a validações de identidade nem à escolha de canal por participante. Enviar camera, otpCode ou options dentro de signProfile[x] retorna o erro SIGNER_VALIDATIONS_NOT_SUPPORTED. Se você precisa de validações diferentes por participante, crie processos separados com POST /document/upload.

Um pacote não tem assinatura sequencial nem papéis

Todos os participantes de um pacote são notificados ao mesmo tempo: não há turnos nem etapas de aprovação. Enviar role ou order dentro de signProfile[x] retorna o erro SIGNER_SEQUENCE_NOT_SUPPORTED.

Se você precisa que alguns participantes assinem antes de outros, ou que alguém aprove antes de a assinatura começar, crie processos separados com POST /document/upload, que oferece suporte a order e role.


🧪 Exemplos de uso​

dica

Você pode copiar qualquer um dos exemplos de acordo com a sua linguagem de programação preferida.

  • Os endereços de e-mail e os números de telefone entre os signatários não devem se repetir.
  • Os leitores receberão notificações a cada atualização do processo de assinatura.
  • Formato de data: 'DD/MM/YYYY'
  • Os números de telefone devem incluir o código do país, por exemplo: +57, +1, +52...

Pacote de documentos via PDF​

curl --location 'https://api.auco.ai/v1.5/ext/document/many' \
--header 'Authorization: prk_e1cd6a01ecdb4b4ea72ec118e33b18de' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Prueba paquete 2 documentos",
"email": "example@auco.ai",
"message": "Hola a todos, les comparto el paquete de documentos para la firma",
"options": {
"camera": "identification",
"whatsapp": true
},
"camera": true,
"otpCode": false,
"documents": [
{
"name": "Documento 1",
"signProfile": [
{
"type": "solicitante",
"name": "Firmante 1",
"phone": "+573000000000",
"email": "example1@auco.ai"
}
]
},
{
"name": "Documento 2",
"signProfile": [
{
"type": "solicitante",
"name": "Firmante 1",
"phone": "+573000000000",
"email": "example2@auco.ai"
}
]
}
]
}

Pacote de documentos via modelos personalizados​

curl --location 'https://api.auco.ai/v1.5/ext/document/many' \
--header 'Authorization: prk_e1cd6a01ecdb4b4ea72ec118e33b18de' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Contract package",
"email": "example@auco.ai",
"message": "Hola a todos, les comparto el paquete de documentos para la firma",
"options": {
"camera": "identification",
"whatsapp": true
},
"camera": true,
"otpCode": false,
"documents": [
{
"name": "Documento 1",
"document": "documentId",
"data": [
{"key": "signer_nombre", "value":"firmante 1"},
{"key": "signer_identification", "value":"cc"},
{"key": "signer_phone", "value":"+573000000000"},
{"key": "manager_name", "value":"manager 1"}
]
},
{
"name": "Documento 2",
"document": "documentId",
"data": [
{"key": "signer_nombre", "value":"firmante 1"},
{"key": "signer_identification", "value":"cc"},
{"key": "signer_phone", "value":"+573000000000"},
{"key": "manager_name", "value":"manager 1"}
]
}
]
}'

📥 Exemplos de respostas​

Pacote de documentos via PDF​

{
"id": "packageId",
"documents": [
{
"url": "https://signed_url_to_upload_PDF",
"name": "Documento 1",
"code": "CODEDOC1",
"signProfile": [{ "name": "Firmante 1", "email": "example1@auco.ai" }]
},
{
"url": "https://signed_url_to_upload_PDF",
"name": "Documento 2",
"code": "CODEDOC2",
"signProfile": [{ "name": "Firmante 1", "email": "example2@auco.ai" }]
}
]
}
info

A URL assinada fornecida na resposta só estará disponível por 300 segundos (5 minutos). Ela deve ser usada para enviar o documento PDF em formato binário por meio de uma requisição HTTP PUT.

Via modelos personalizados​

{
"id": "packageId",
"documents": [
{
"name": "Documento 1",
"code": "CODEDOC1",
"signProfile": [{ "name": "Firmante 1", "email": "example1@auco.ai" }]
},
{
"name": "Documento 2",
"code": "CODEDOC2",
"signProfile": [{ "name": "Firmante 1", "email": "example2@auco.ai" }]
}
]
}

🔹 Signatários que a Auco não notifica​

Um signatário é silenciado quando sua notification efetiva é false: a dele, se tiver uma, ou do contrário a global. signProfile sempre volta na resposta; o que muda é que os signatários silenciados carregam um id e os que a Auco notifica não, porque o acesso deles é gerado quando o e-mail é enviado.

Este exemplo desativa a notificação para todo o pacote e a reativa apenas para example2@auco.ai:

{
"name": "Contract package",
"email": "example@auco.ai",
"notification": false,
"documents": [
{
"name": "Documento 1",
"signProfile": [
{ "type": "solicitante", "name": "Firmante 1", "email": "example1@auco.ai" },
{ "type": "aprobador", "name": "Firmante 2", "email": "example2@auco.ai", "notification": true }
]
},
{
"name": "Documento 2",
"signProfile": [
{ "type": "solicitante", "name": "Firmante 1", "email": "example1@auco.ai" }
]
}
]
}

Firmante 1 aparece nos dois documentos, então recebe o mesmo id em cada um: é uma única pessoa dentro do pacote. Firmante 2 não tem id porque a Auco cuida dele.

{
"id": "packageId",
"documents": [
{
"url": "https://signed_url_to_upload_PDF",
"name": "Documento 1",
"code": "CODEDOC1",
"signProfile": [
{ "id": "0Q", "name": "Firmante 1", "email": "example1@auco.ai" },
{ "name": "Firmante 2", "email": "example2@auco.ai" }
]
},
{
"url": "https://signed_url_to_upload_PDF",
"name": "Documento 2",
"code": "CODEDOC2",
"signProfile": [{ "id": "0Q", "name": "Firmante 1", "email": "example1@auco.ai" }]
}
]
}
CampoTipoDescrição
documents[x].signProfileArrayLista de signatários do documento.
documents[x].signProfile[y].idStringIdentificador do signatário dentro do pacote. Presente apenas quando a Auco não o notifica; regenerado se você sobrescrever o pacote.
documents[x].signProfile[y].nameStringNome do signatário.
documents[x].signProfile[y].emailStringE-mail do signatário.

⚠️ Respostas de erro​

CódigoDescrição
400Parâmetros ausentes, ou uma ou mais validações não atendem às condições de aplicabilidade.
400DOCUMENTS_MIN_TWO — O array documents deve ter pelo menos 2 elementos. Use /document/upload para um único documento.
401Autenticação inválida ou ausente.