Certificado Local (Web PKI)
Preparar assinatura com certificado local
Prepara a assinatura com um certificado A1/A3 no computador, obtendo um token para o plugin Web PKI.
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
- Obtenha as configurações:
GET .../web-pki/settings - Inicialize o plugin no navegador:
pki.init({ license }) - Liste certificados do computador:
pki.listCertificates() - Deixe o signatário escolher um certificado
- Leia o certificado:
pki.readCertificate(thumbprint)→ recebe Base64 - Prepare a assinatura (esta chamada): envia o certificado, recebe
token - Assine no navegador:
pki.signWithRestPki({ token, thumbprint })→ o plugin assina e envia ao RestPKI - Finalize no backend:
POST /signer/v1/sign/:sessionToken/sign
Importante
- Sem rota de “finish”: o fechamento da assinatura é o
POST /signer/v1/signcomum — 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
GET .../web-pki/settings— obter licença e URL do RestPKIGET /signer/v1/sign/:sessionToken— obter dados da sessão e arquivosPOST /signer/v1/sign/:sessionToken/sign— finalizar a assinaturaGET /signer/v1/sign/:sessionToken/integraicp/clearances— alternativa: certificado em nuvem