XSigner
Esta seção descreve como utilizar o XJUR Connect para enviar documentos para assinatura eletrônica no XSigner, a plataforma de assinatura nativa do Xjur, e acompanhar o ciclo de vida de cada envelope.
O que esta integração faz
Seção intitulada “O que esta integração faz”Ao receber uma requisição de criação de envelope, o XJUR Connect:
- Valida o payload (assunto, documentos, signatários e papéis).
- Armazena os documentos enviados em base64 (ou usa os já enviados por
POST /xsigner/documentos). - Resolve o papel de cada signatário (por id ou por nome).
- Cria o envelope no XSigner e dispara o e-mail com o link de assinatura para cada signatário.
- Devolve o envelope completo, com
envelopeId, status, documentos e o link de assinatura de cada signatário.
Depois disso, a integração pode consultar o status, adicionar, alterar ou remover signatários, reenviar links, baixar o PDF assinado e cancelar o envelope.
Ciclo de vida do envelope
Seção intitulada “Ciclo de vida do envelope”stateDiagram-v2
[*] --> AguardandoSignatarios: POST /xsigner/envelopes
AguardandoSignatarios --> AguardandoSignatarios: signatário assina (restam pendentes)
AguardandoSignatarios --> Assinado: último signatário assina
AguardandoSignatarios --> Cancelado: POST /xsigner/envelopes/{id}/cancelar
AguardandoSignatarios --> Cancelado: signatário recusa o documento
Assinado --> [*]
Cancelado --> [*] | Status | Significado |
|---|---|
AguardandoSignatarios | Links enviados; há ao menos um signatário pendente |
Assinado | Todos assinaram; o PDF final está disponível em documentoAssinado |
Cancelado | Envelope cancelado, pela integração ou pela recusa de um signatário (motivoCancelamento); os links deixam de funcionar |
EmConfeccao | Estado transitório, não ocorre em envelopes criados pela integração |
Endpoints
Seção intitulada “Endpoints”| Método | Rota | Descrição |
|---|---|---|
POST | /xsigner/documentos | Faz upload de um arquivo (multipart) e devolve o documentoId |
POST | /xsigner/envelopes | Cria o envelope (com arquivos em base64 ou documentoId) e envia os links de assinatura |
GET | /xsigner/envelopes | Lista envelopes com filtros e paginação |
GET | /xsigner/envelopes/{envelopeId} | Consulta um envelope completo |
POST | /xsigner/envelopes/{envelopeId}/cancelar | Cancela um envelope em andamento |
POST | /xsigner/envelopes/{envelopeId}/signatarios | Adiciona um signatário |
PATCH | /xsigner/envelopes/{envelopeId}/signatarios/{signatarioId} | Altera nome, e-mail ou celular de um signatário pendente |
DELETE | /xsigner/envelopes/{envelopeId}/signatarios/{signatarioId} | Remove um signatário |
POST | /xsigner/envelopes/{envelopeId}/signatarios/{signatarioId}/reenviar-link | Reenvia o e-mail com o link de assinatura |
GET | /xsigner/envelopes/{envelopeId}/signatarios/{signatarioId}/link | Obtém o link de assinatura |
GET | /xsigner/envelopes/{envelopeId}/documento-assinado | Baixa o PDF final assinado |
GET | /xsigner/envelopes/{envelopeId}/documentos/zip | Baixa um ZIP com os documentos do envelope |
GET | /xsigner/papeis-signatario | Lista os papéis de signatário do cliente |
GET | /xsigner/dominios | Lista status e extensões aceitas |
Pré-requisitos
Seção intitulada “Pré-requisitos”- Token JWT de usuário de serviço obtido em
POST /Autenticacao/AuthenticateUserService(veja Autenticação) - Subscription key (
X-XJUR-SUBSCRIPTION-KEY) - Usuário de serviço habilitado para o XSigner pela equipe Xjur
Exemplo rápido
Seção intitulada “Exemplo rápido”curl -X POST https://apim-xjur-prd.xjur.com.br/connect/xsigner/envelopes \ -H "Authorization: Bearer <seu-token-jwt>" \ -H "X-XJUR-SUBSCRIPTION-KEY: <sua-chave>" \ -H "Content-Type: application/json" \ -d '{ "assunto": "Contrato de prestação de serviços para assinatura", "mensagem": "Por favor, assine o contrato em anexo.", "codigo": "PEDIDO-2026-000123", "enviarPorOrdem": false, "documentos": [ { "nomeArquivo": "contrato.pdf", "conteudoBase64": "JVBERi0xLjQK..." } ], "signatarios": [ { "nome": "Maria Silva", "email": "maria.silva@email.com", "papel": "Contratante" }, { "nome": "João Souza", "email": "joao.souza@email.com", "papel": "Testemunha" } ] }'Resposta de sucesso (201):
{ "envelopeId": 1532, "hashEnvelope": "$2a$10$...", "codigo": "PEDIDO-2026-000123", "nomeDocumento": "contrato.pdf", "plataforma": "xsigner", "status": "AguardandoSignatarios", "statusId": 2, "enviarPorOrdem": false, "dataCadastro": "2026-09-09T10:15:00", "documentos": [ { "envelopeDocumentoId": 2201, "documentoId": 98765, "ordem": 0, "url": "https://.../98765.pdf", "signatariosPermitidos": [] } ], "signatarios": [ { "signatarioId": 4101, "nome": "Maria Silva", "email": "maria.silva@email.com", "ordem": 0, "papelSignatarioId": 5, "papel": "Contratante", "status": "PendenteAssinatura", "statusId": 1, "dataCadastro": "2026-09-09T10:15:00", "linkAssinatura": "https://app.xjur.com.br/xsigner?hashEnvelope=...&hashSignatario=..." } ]}Próximos passos
Seção intitulada “Próximos passos”- Guia de Integração — passo a passo do fluxo completo
- Documentos, Envelopes e Signatários — referência de campos, regras e respostas
- Referência da API — documentação interativa (OpenAPI)
- Códigos de Erro — erros possíveis e como tratá-los