Pular para o conteúdo principal

Adicionar Signatário

Adiciona um signatário a um envelope que ainda está em rascunho (DRAFT). O signatário só é notificado quando o envelope for enviado para assinatura: nesse momento ele recebe o link por e-mail e, se tiver telefone cadastrado, também pelo WhatsApp.

Endpoint​

POST /v1/envelopes/{id}/signers

Headers​

HeaderValor
AuthorizationBearer {token}
Content-Typeapplication/json

Parâmetros de URL​

ParâmetroTipoObrigatórioDescrição
idintegerSimID do envelope. O envelope precisa pertencer ao usuário dono da chave de API

Body​

CampoTipoObrigatórioDescrição
namestringSimNome completo do signatário, de 2 a 100 caracteres
emailstringSimE-mail do signatário. Além do formato, a API consulta o DNS e recusa domínios que não recebem e-mail (ex: gmial.com). Não pode repetir o e-mail de outro signatário do mesmo envelope
phonestringNãoTelefone em formato internacional, com + opcional (ex: +5511999999999). Usado para enviar o link pelo WhatsApp
rolestringSimPapel do signatário. Veja a tabela abaixo
signOrderintegerNãoNúmero de ordem do signatário no envelope
authMethodsstring[]NãoComo o signatário se identifica antes de assinar. Se omitido, vale SCREEN_SIGNATURE
Papéis disponíveis
ValorRótulo no painel
SIGNERAssinar
WITNESSTestemunha
APPROVERAprovador
ACKNOWLEDGE_RECEIPTAssinar para acusar recebimento
AUTHORIZEAutorizar
CUSTOMFunção personalizada (o nome da função não é definido por este endpoint)

Hoje todos os papéis assinam da mesma forma: o envelope só é concluído quando todos os signatários, de qualquer papel, assinam.

Métodos de autenticação
ValorO que o signatário precisa fazer
SCREEN_SIGNATUREApenas assinar na tela
EMAIL_CODEValidar um código enviado por e-mail
SMS_CODEValidar um código enviado por SMS
WHATSAPP_CODEValidar um código enviado pelo WhatsApp

Com métodos por código, o signatário precisa validar o código antes de assinar, e a validação vale por 15 minutos. Qualquer outro valor é recusado com erro 400.

Exemplo de Requisição​

curl -X POST https://api.tapsign.com.br/v1/envelopes/1523/signers \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "João da Silva",
"email": "[email protected]",
"phone": "+5511999999999",
"role": "SIGNER",
"signOrder": 1,
"authMethods": ["EMAIL_CODE"]
}'

Resposta de Sucesso​

Status: 201 Created

{
"id": 4821,
"envelopeId": 1523,
"name": "João da Silva",
"email": "[email protected]",
"phone": "+5511999999999",
"role": "SIGNER",
"signOrder": 1,
"status": "PENDING",
"signedAt": null,
"declinedAt": null,
"declineReason": null,
"accessToken": "3f6c2a9e-8b1d-4c7a-9e2f-5d4b8a1c0e77",
"whatsappLastStatus": null,
"whatsappLastStatusAt": null,
"whatsappLastErrorCode": null,
"whatsappOwnerMessage": null,
"signaturePage": null,
"signaturePosX": null,
"signaturePosY": null,
"signatureWidth": null,
"signatureHeight": null,
"authMethods": ["EMAIL_CODE"]
}

Campos da Resposta​

CampoTipoDescrição
idintegerID do signatário
envelopeIdintegerID do envelope
namestringNome do signatário
emailstringE-mail do signatário
phonestring ou nullTelefone do signatário
rolestringPapel atribuído
signOrderinteger ou nullNúmero de ordem informado
statusstringPENDING ao criar. Depois muda para NOTIFIED (notificado no envio), VIEWED, SIGNED ou DECLINED
signedAtstring ou nullData da assinatura (UTC, ISO 8601)
declinedAtstring ou nullData da recusa (UTC, ISO 8601)
declineReasonstring ou nullMotivo informado na recusa
accessTokenstring (UUID)Token do signatário. Forma o link de assinatura https://tapsign.com.br/signing/{accessToken} e é o token das rotas públicas /v1/signing/{token}
whatsappLastStatusstring ou nullÚltimo status informado pelo WhatsApp para a mensagem enviada ao signatário
whatsappLastStatusAtstring ou nullData desse último status
whatsappLastErrorCodeinteger ou nullCódigo de erro retornado pelo WhatsApp, quando houver
whatsappOwnerMessagestring ou nullExplicação legível do erro do WhatsApp, quando houver
signaturePage, signaturePosX, signaturePosY, signatureWidth, signatureHeightnumber ou nullPosição configurada para a assinatura no PDF. Veja Posicionar Assinaturas
authMethodsstring[]Métodos de autenticação configurados
Guarde o accessToken com cuidado

As rotas /v1/signing/{token} não exigem login: quem tem o accessToken consegue abrir o documento, recusar e assinar (a assinatura ainda passa pelos métodos de autenticação configurados). Compartilhe o token apenas com o próprio signatário.

Erros​

CódigoQuando acontece
400Campo inválido: nome fora do tamanho, e-mail mal formado ou de domínio que não recebe e-mail, telefone fora do formato ou role ausente. A resposta traz o motivo em fields
400O envelope não está em DRAFT
400Já existe um signatário com o mesmo e-mail neste envelope
400authMethods contém um método indisponível
401Chave de API ou token ausente ou inválido
404Envelope inexistente ou de outro usuário

O formato do corpo de erro está em Status de Erros.

Atenção

Signatários só podem ser adicionados enquanto o envelope estiver no status DRAFT. Depois do envio, não é possível adicionar, alterar nem remover signatários.