Skip to main content
POST
Preparar assinatura com certificado local
Prepara a assinatura com um certificado local (A1 ou A3), obtendo um token que o plugin Web PKI do navegador usa para assinar diretamente. A chave privada nunca sai do computador do signatário. Autenticação: use apenas o sessionToken na URL — nenhum header de autenticação é necessário.

Parâmetros

string
required
Token único da sessão do signatário.
string
required
Certificado em formato Base64 (DER ou PEM), lido pelo plugin Web PKI no navegador do signatário.
string
UUID do arquivo a assinar (obtido em GET /signer/v1/sign/:sessionToken). Se omitido, usa o primeiro arquivo do envelope.

Respostas

string
Token opaco usado pelo plugin Web PKI para pki.signWithRestPki({ token, thumbprint }). O plugin envia este token ao RestPKI junto com a assinatura realizada localmente.
string
Nome do titular do certificado.
string
CPF ou CNPJ do titular, só dígitos.
string
Timestamp (ISO 8601) de quando o preparo expira. O signatário precisa assinar antes desse momento.

Erros

Veja Autenticação e erros.
  • 400: Certificado ilegível ou em formato inválido.
  • 403: Certificado não pertence ao signatário (quando o envelope restringe a assinatura).
  • 409: Não é a vez do signatário, ou já assinou este arquivo. Ou preparo anterior ainda ativo.
  • 410: Session token expirado.
  • 502: RestPKI recusou o preparo da assinatura.

Exemplo

Fluxo completo

  1. Obtenha as configurações: GET .../web-pki/settings
  2. Inicialize o plugin no navegador: pki.init({ license })
  3. Liste certificados do computador: pki.listCertificates()
  4. Deixe o signatário escolher um certificado
  5. Leia o certificado: pki.readCertificate(thumbprint) → recebe Base64
  6. Prepare a assinatura (esta chamada): envia o certificado, recebe token
  7. Assine no navegador: pki.signWithRestPki({ token, thumbprint }) → o plugin assina e envia ao RestPKI
  8. Finalize no backend: POST /signer/v1/sign/:sessionToken/sign

Importante

  • Sem rota de “finish”: o fechamento da assinatura é o POST /signer/v1/sign comum — o sistema detecta automaticamente que há um preparo Web PKI aberto e usa o token do preparo.
  • Certificado local: a chave privada nunca sai do computador — o plugin assina localmente e só envia a assinatura resultado para o RestPKI.
  • A1 e A3: ambos são aceitos (A1 instalado no SO, A3 em token/smartcard). Ambos têm o mesmo valor jurídico como assinatura qualificada ICP-Brasil.
  • Titularidade: se o envelope restringe a assinatura (restrictSigner: true), o CPF/CNPJ do certificado deve ser o do signatário — validação ocorre nesta chamada.
  • Validade: o certificado é validado duas vezes — no preparo (agora) e no fechamento (porque meia-noite do último dia válido pode passar entre uma e outra).

Relacionado