Obtener el reporte de firmas de un documento

GET
/api/report/{ticket}

Devuelve el reporte forense completo del documento: cada firma con su posición, su cadena de certificados, su estado OCSP, su autoridad de sellado de tiempo, y si sigue siendo válida.

Este es el endpoint para verificar un documento por fuera, no para ver el avance — para el avance usa GET /api/document o los webhooks.

Authorization<token>

Cada petición lleva Authorization: signmage {webId}:{firma}, donde firma es el Base64 de HMAC-SHA256(apiKey, cadenaFirmada).

Qué va dentro de cadenaFirmada depende de la petición:

PeticióncadenaFirmada
GETLa URI completa incluyendo el query string, exactamente como se envía
POST con JSONEl cuerpo JSON, re-serializado compacto (sin espacios ni salto de línea final)
POST multipartEl SHA-256 en Base64 del archivo, que además se manda en el header Content-SHA256

Dos detalles que conviene resolverlos desde el principio:

  1. En GET, la URI se firma tal como se envía, así que el orden y el encoding de los parámetros importan.
  2. En POST, la comparación se hace contra tu JSON re-serializado en forma compacta. Manda JSON compacto y canónico para que las firmas coincidan.

Una firma que no coincide devuelve 401 con el cuerpo vacío. Como la misma respuesta cubre un web ID desconocido, una llave inactiva y una firma que no coincide, revisa las tres cosas al diagnosticar.

En: header

Parámetros de ruta

ticket*string

El id del documento (firmamexId / document_ticket).

Cuerpo de la respuesta

application/json

application/json

curl -X GET "https://example.com/api/report/string"
{  "InkSignatures": [],  "firmas": [    {      "page": 1,      "left": 189.3,      "top": 594.6,      "width": 200.99998,      "height": 42.599976,      "downstream": true,      "campoFirma": "Signature1",      "signatureType": "original",      "validSignature": true,      "coversDocument": false,      "totalRevisions": 0,      "signDate": "Tue May 09 12:26:44 GMT-07:00 2023",      "certType": "EMAIL",      "signCertificateSerial": "63ce4e8552b71b338981f6781866912cb691033b",      "box": 184213,      "email": "[email protected]",      "ipAddress": "0:0:0:0:0:0:0:1",      "timestampAuthority": "C=CA,ST=Ontario,O=Entrust\\, Inc.,CN=Entrust Timestamp Authority - TSA1",      "downstreamData": {        "authority": "EMAIL",        "dataType": "EMAIL",        "subject": "[email protected]"      },      "ocsp": {        "signatureValid": true,        "certStatus": "good",        "signer": "Autoridad de Certificacion por Correo de Firmamex"      },      "certificados": [        {          "commonName": "[email protected]",          "email": "[email protected]",          "serial": "63ce4e8552b71b338981f6781866912cb691033b",          "signatureAlgorithm": "SHA256WITHRSA",          "issuerCommonName": "Autoridad de Certificacion por Correo de Firmamex"        }      ]    }  ]}