P&S2B
PES2B Sign Service Developer Portal
API REST • v1 ESTÁVEL

Assinatura digital de documentos PDF

API para assinatura digital ICP-Brasil no padrão PAdES, com carimbo do tempo, selo visual, página adicional de autenticação, QR Code e resposta enriquecida para auditoria.

DISPONIBILIDADE

Status da API

Abrir health check
StatusConsultando...
Versão1.0.0
Tempo de respostaConsultando...
APIv1 — Estável
INTEGRAÇÃO

Primeiros passos

O consumo básico da API pode ser concluído em cinco etapas.

1

Solicite uma API Key à P&S2B.

2

Leia o arquivo PDF e converta o conteúdo para Base64.

3

Envie um POST para /api/v1/sign.

4

Informe a chave no cabeçalho X-API-Key.

5

Decodifique data.signedPdfBase64 e salve o PDF assinado.

ENDEREÇO

URL base

https://sign.pes2b.com
SEGURANÇA

Autenticação

Todos os endpoints protegidos exigem uma API Key válida no cabeçalho X-API-Key.

X-API-Key: SUA_CHAVE
Importante: nunca publique a API Key em código-fonte, GitHub, documentação, prints, workflows exportados ou mensagens de e-mail.

Resposta de autenticação inválida

HTTP/1.1 401 Unauthorized

{
  "success": false,
  "message": "Acesso não autorizado.",
  "requestId": "req_20260714_170835_3e0bc98e",
  "data": null,
  "errors": [
    {
      "code": "UNAUTHORIZED",
      "message": "API Key ausente ou inválida.",
      "field": null
    }
  ],
  "warnings": []
}
MONITORAMENTO

Health checks

GET /api/v1/health Público
GET/actuator/health
GET/actuator/info
ENDPOINT PRINCIPAL

Assinar PDF

POST /api/v1/sign API Key

Recebe um PDF em Base64 e devolve o mesmo documento assinado digitalmente.

O endpoint aceita somente PDF. Arquivos DOCX podem ser convertidos para PDF pela automação antes do envio à API.
ENTRADA

Requisição

{
  "pdfBase64": "JVBERi0xLjQK...",
  "originalFileName": "documento.pdf"
}
CampoTipoObrigatórioDescrição
pdfBase64StringSim Conteúdo integral do PDF codificado em Base64.
originalFileNameStringNão Nome original do arquivo. Quando informado, a API devolve também o nome sugerido do arquivo assinado.

O campo pdfBase64 aceita Base64 puro ou Data URI.

SAÍDA

Resposta de sucesso

{
  "success": true,
  "message": "Documento assinado com sucesso.",
  "requestId": "req_20260714_170835_3e0bc98e",
  "data": {
    "signedPdfBase64": "JVBERi0xLjQK...",
    "documentIdentifier": "C0470A15CB41",
    "signedAt": "2026-07-14T14:08:35.691467758-03:00",
    "signatureStandard": "PAdES-T",
    "signatureFormat": "PAdES",
    "timestampApplied": true,
    "certificate": {
      "signerName": "JORGEPLA CONTABILIDADE LTDA",
      "signerDocument": "10576541000116",
      "certificateAuthority": "AC SAFEWEB RFB v5",
      "certificateSerialNumber": "7E16BE1EB4D3B67B",
      "validFrom": "2025-12-11T09:08:03-03:00",
      "validUntil": "2026-12-11T09:08:03-03:00"
    },
    "document": {
      "originalFileName": "documento.pdf",
      "signedFileName": "documento - Assinado.pdf",
      "mimeType": "application/pdf",
      "sizeBytes": 182833,
      "sha256": "b8407cd9f1cd8011633f88d1729412aa263bf0c41f154604835edf41ef9ad283"
    }
  },
  "errors": [],
  "warnings": []
}

O consumidor deve decodificar data.signedPdfBase64 e salvar o resultado com extensão .pdf.

AUDITORIA

Rastreabilidade

01

requestId

Identifica uma chamada específica da API e permite localizar a execução nos logs.

02

documentIdentifier

Código impresso no selo e na página adicional do PDF. É diferente do requestId.

03

SHA-256

Hash calculado sobre os bytes finais do PDF assinado.

04

signedAt

Data e hora da assinatura em ISO 8601 com fuso horário.

APARÊNCIA

Modos de aparência visual

O modo visual é configurado no servidor.

01

NONE

Assinatura criptográfica sem aparência adicional.

02

STAMP_ONLY

Selo visual aplicado nas páginas do documento.

03

PAGE_ONLY

Página adicional com informações de autenticação e QR Code.

04

STAMP_AND_PAGE

Selo nas páginas e página adicional premium.

EXEMPLOS

Exemplo em cURL

curl --request POST \
  "https://sign.pes2b.com/api/v1/sign" \
  --header "Content-Type: application/json" \
  --header "X-API-Key: SUA_CHAVE" \
  --data '{
    "pdfBase64": "JVBERi0xLjQK...",
    "originalFileName": "documento.pdf"
  }'

Exemplo em JavaScript

const response = await fetch(
  "https://sign.pes2b.com/api/v1/sign",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-API-Key": process.env.PES2B_API_KEY
    },
    body: JSON.stringify({
      pdfBase64,
      originalFileName: "documento.pdf"
    })
  }
);

const result = await response.json();

if (!response.ok || !result.success) {
  throw new Error(result.errors?.[0]?.message ?? result.message);
}

const signedPdfBase64 = result.data.signedPdfBase64;

Configuração no n8n

1

Use um node HTTP Request.

2

Método POST e URL https://sign.pes2b.com/api/v1/sign.

3

Envie o cabeçalho X-API-Key por credencial segura.

4

Use body JSON com pdfBase64 e originalFileName.

5

Reconstrua o arquivo usando data.signedPdfBase64.

6

Grave requestId, documentIdentifier, signedAt e sha256 nos metadados.

TRATAMENTO DE FALHAS

Códigos de erro

CódigoHTTPDescrição
UNAUTHORIZED401API Key ausente ou inválida.
VALIDATION_ERROR400Campo obrigatório ausente ou inválido.
INVALID_JSON400Corpo da requisição não contém JSON válido.
INVALID_REQUEST400Não foi possível processar os dados enviados.
INVALID_PDF400Conteúdo não corresponde a um PDF válido.
FILE_TOO_LARGE400/413Arquivo superior ao limite permitido.
TIMESTAMP_ERROR400/500Falha ao obter ou incorporar o carimbo do tempo.
INTERNAL_ERROR500Erro interno ao processar o documento.
{
  "success": false,
  "message": "Não foi possível assinar o documento.",
  "requestId": "req_20260714_170835_3e0bc98e",
  "data": null,
  "errors": [
    {
      "code": "INVALID_PDF",
      "message": "O conteúdo informado não corresponde a um PDF válido.",
      "field": "pdfBase64"
    }
  ],
  "warnings": []
}
RECURSOS

Downloads

MARKDOWN

Documentação completa

Versão técnica para compartilhamento.

Baixar Markdown
COMPATIBILIDADE

Versionamento

A versão estável atual da API é v1.

v1/api/v1Estável
O campo data.signedPdfBase64 foi mantido no mesmo local para preservar a compatibilidade das integrações existentes.
VERSÕES

Changelog

14 de julho de 2026Atualização da API v1
Produção
  • Resposta enriquecida com requestId e identificador do documento.
  • Dados do certificado utilizados na assinatura.
  • Data e hora da assinatura com fuso horário.
  • Tamanho e SHA-256 do PDF final.
  • Erros padronizados em JSON, inclusive falha de autenticação.
  • Campo opcional originalFileName.
BOAS PRÁTICAS

Segurança

  • Utilize sempre HTTPS.
  • Guarde a API Key em cofre, variável de ambiente ou credencial do n8n.
  • Não registre o conteúdo Base64 nos logs.
  • Não envie arquivo PFX nem senha do certificado nas requisições.
  • Preserve os bytes do PDF final exatamente como retornados pela API.
  • Guarde o requestId para suporte e auditoria.