Obtener el reporte de firmas de un documento
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.
Autenticación
signmage 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ón | cadenaFirmada |
|---|---|
GET | La URI completa incluyendo el query string, exactamente como se envía |
POST con JSON | El cuerpo JSON, re-serializado compacto (sin espacios ni salto de línea final) |
POST multipart | El SHA-256 en Base64 del archivo, que además se manda en el header Content-SHA256 |
Dos detalles que conviene resolverlos desde el principio:
- En
GET, la URI se firma tal como se envía, así que el orden y el encoding de los parámetros importan. - 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
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" } ] } ]}