Saltar a contenido

Referencia de API e integración

Alcance

SSigner Cliente consume una API remota y acepta invocaciones mediante un protocolo de Windows. Esta referencia documenta el contrato observado en el cliente.

Base URL:

https://s-055-2025.plussigner.com/api/v2/ssigner

En desarrollo local, la API REST usa por defecto http://localhost:8087. El cliente consume principalmente endpoints bajo /api/v2/ssigner.

Todas las solicitudes usan:

Content-Type: application/json
Accept: application/json
Authorization: Bearer TOKEN

API interna

Los esquemas pueden incluir propiedades adicionales definidas por el servidor. No elimine campos desconocidos al implementar una integración intermedia.

Protocolo ssigner://

Formato

ssigner://dni={IDENTIFICADOR}&cod-operation={OPERACION}&token={TOKEN}

Parámetros

Parámetro Tipo Requerido Descripción
dni string Sí Identificador del firmante
cod-operation string numérico Sí Grupo u operación de firma
token string Condicional Token Bearer para la API
tipo-repo string No Windows-MY, PKCS11, PKCS12 o JKS
filter-by-dni boolean No Filtra certificados por dni
filterByDni boolean No Alias de filter-by-dni
debug boolean No Habilita logs desde el inicio

Ejemplo:

ssigner://dni=12345678&cod-operation=1001&token=TOKEN&tipo-repo=PKCS11&debug=true

Obtener configuración

POST /obtener-configuracion

Solicitud

{
  "idFirmante": "12345678"
}

Respuesta esperada

{
  "estado": true,
  "propiedades": {
    "firma.repositorio": "Windows-MY",
    "firma.motivo": "Aprobación",
    "firma.locacion": "Lima",
    "debug": "true"
  }
}

Si la respuesta HTTP no es 200, el cliente continúa con Windows-MY como repositorio predeterminado.

Generar hashes

POST /generar-hash

Solicitud

{
  "idGP": "1001",
  "idFirmante": "12345678",
  "certifcadoPublicoFirmante": "MIIC...BASE64...",
  "userMotivo": "Aprobación",
  "userLocacion": "Lima"
}

Nombre del campo

El cliente envía certifcadoPublicoFirmante con esa ortografía exacta.

Respuesta esperada

{
  "estado": true,
  "mensaje": "OK",
  "algoritmo": "SHA256",
  "campo": "__signature__",
  "hashes": [
    "BASE64_DEL_HASH"
  ],
  "nombresDocumentos": [
    "contrato.pdf"
  ],
  "propiedades": {
    "firma.repositorio": "Windows-MY",
    "documento": "documentos.txt"
  },
  "configuracionesIndividuales": {
    "contrato.properties": {
      "firma.motivo": "Aprobación"
    }
  }
}

hashes y nombresDocumentos deben mantener el mismo orden.

Insertar hashes firmados

POST /insertar-hash-firmado

Solicitud

{
  "idpg": 1001,
  "hashesFirmados": [
    "BASE64_DE_LA_FIRMA"
  ]
}

Respuesta esperada

{
  "estado": true,
  "mensaje": "Firmas registradas"
}

Códigos HTTP tratados

Código Comportamiento
200 Procesa la respuesta
401 Falló la autenticación
403 El usuario no tiene acceso
501 Error técnico del servidor
Otro Incluye el cuerpo de error en la excepción interna

Tiempos de espera

Operación Conexión Lectura
Obtener configuración 10 s 10 s
Generar hashes 30 s 120 s
Insertar firmas 60 s 600 s

Ejemplo con curl

curl -X POST \
  "https://s-055-2025.plussigner.com/api/v2/ssigner/obtener-configuracion" \
  -H "Authorization: Bearer TOKEN_TEMPORAL" \
  -H "Content-Type: application/json" \
  -d '{"idFirmante":"12345678"}'