Documentação / Recursos
Novidades
O que mudou em cada versão.
As versões do contrato público da API (openapi.yaml) e dos pacotes. Mudanças que quebram compatibilidade são avisadas aqui antes de entrar.
Outubro de 2026: API 0.3.0, SDK JavaScript 0.3.1 e cliente PHP 0.3.1#
13/10/2026: ajustes depois do uso em produção#
- Erros sempre no formato padrão. Corpo grande demais, JSON inválido ou sem campo obrigatório,
Content-Typeerrado, método não permitido e endereço inexistente agora respondem{"error":{"code","message"}}, com códigos estáveis (payload_too_large,invalid_request,unsupported_media_type,method_not_allowedenot_found) e sem nomes internos. Antes, esses casos saíam em texto puro. - Pré-voo
OPTIONS: responde405 method_not_allowedcomAllow, em vez de401. A API não atende navegadores. - Documentação: reescrita, com guias de integração, referência com exemplos e busca.
- SDK JavaScript 0.3.1:
ExtensionSigner.installUrljá vem com o endereço da página de instalação, eclient.installUrlaponta para ela.
08/10/2026: correções de segurança#
verify: uma assinatura visível acrescentada depois, que cubra mais de 10% da página, reprova a anterior (modified_after_signing, avisolater_visible_covers_content). Selos pequenos mantêm a anterior válida, com o avisolater_visible_signature.- PDFs com formulário cíclico ou gigante são recusados (
invalid_pdf). complete: novo409 complete_in_progress(esperar e repetir com a mesma chave). A repetição de uma respostainlinegrande pode receber429comRetry-After. O SDK JavaScript e o cliente PHP repetem esses casos e não descartam a sessão quando o resultado é incerto.- Cliente PHP: a
Idempotency-Keyé validada (1 a 64 caracteres entre letras, dígitos,-e_). - Extensão: o nome do provedor de chaves do Windows não vai mais aos sites.
- Sessões: cada cliente tem um teto de sessões abertas; sessões concluídas contam até o
DELETE.
0.3.0#
Tudo é aditivo: nada do que existia mudou de nome nem de formato.
API
preparedevolvecertificate(a identidade já validada, antes do PIN) esignatureFieldNames.- Nomes de certificado em RFC 4514 (
subjectDn,issuerDn) e só o CN (subjectCn,issuerCn) emprepare,completeeverify.pkiBrazil.companyNametraz a razão social do e-CNPJ. error.reason: motivo estável das recusas de certificado.signatureFieldNameesignatureFieldNamesnoprepare, e vários signatários em sequência.- Assinatura visível:
imagePlacement,fontColor,textAlign,textVerticalAlign,includeSigningTime,autoFontSizee o marcador{{company}}. - Sessão:
GET /v1/pades-signatures/{token},POST .../extend(até 60 minutos desde o início) e o cabeçalhoIdempotency-Keynocomplete, comIdempotent-Replayed: truena repetição. verify:messagesem português por assinatura elaterSignatures.- Carimbo de tempo em toda assinatura PAdES.
Correções
- A verificação marcava as assinaturas anteriores como
modified_after_signingquando outra pessoa assinava depois. Agora continuamvalid. - O carimbo da assinatura visível saía ilegível em corpo pequeno no Chrome e no Edge.
SDK JavaScript e cliente PHP
- SDK:
ExtensionSigner.diagnose(),installUrleredirectToInstallPage,EXTENSION_ERROR_CODES, os campossubjectDn,issuerDn,subjectCn,issuerCn,keyStorage,icpBrasileisTest, os filtrosicpBrasilChain()enotTest(),beforeSign,signatureFieldName,getSession,extendSessionecompletecomIdempotency-Keye repetição automática. - PHP:
complete(..., $idempotencyKey),completeSafely(),getSession(),extendSession(),prepare(..., signatureFieldName), imagem em memória na assinatura visível eApiException::$reason.
Extensão e agente
- A lista de certificados não traz mais raízes e intermediárias, só o certificado do titular, e informa onde a chave está (
token,fileoucloud). - A assinatura espera até 3 minutos (certificado em nuvem com aprovação no celular).
- PIN errado: o token informa "poucas tentativas" ou "a próxima errada bloqueia", quando sabe.
- A extensão está disponível na Chrome Web Store e no Edge Add-ons.
0.2.0#
Novo
- Login por certificado (
/v1/certificate-authentications): e-CPF e e-CNPJ, desafio de uso único, e a mensagem inclui a origem do seu site. A revogação é conferida por padrão. acceptableIssuers: restrição da AC emissora no início da assinatura e do login.- PKI privada: contextos
private:<identificador>por cliente, com raízes, intermediárias e LCRs enviadas por você, e a políticapades-basic-lt. - Assinatura visível com posição, página e texto.
- Lote: vários PDFs numa só sessão, com um PIN.
- Painel: PKI privada, edição de planos, exclusão de usuário (LGPD), papel de administrador do cliente e atividade.
- O login por certificado é assinado com SHA-384 (use o
digestAlgorithmdevolvido). - O envio
multiparttem tempo-limite total (408 upload_timeout).
Segurança
- Extensão: permissão por site e proteção contra repasse do login a outro site.
- Teto de disco por cliente (
429 tenant_storage_limit) e trava de conclusão por sessão: uma assinatura concluída nunca é cobrada duas vezes. - A auditoria é imutável.
Mudanças de comportamento
- O login por certificado passou a exigir
origin. - Em contexto privado, a verificação usa só as LCRs enviadas por você e falha fechada sem elas.
- Páginas com
/Rotate(90, 180, 270): o carimbo sai de pé, e o retângulo continua no espaço do PDF sem rotação. Um/Rotateque não é múltiplo de 90 é recusado.
Ainda não existe#
CAdES e XAdES, OCSP para PKI privada, e o instalador do agente para macOS e Linux.
ShieldSign PKI · Shield Certificadora · contato@shieldcertificadora.com.br · Privacidade