Consultar un expediente

GET
/api/documentset/{uuid}

Devuelve los documentos, los firmantes y el estado del expediente. Sirve para consultar el avance — mientras hay un flujo corriendo, la respuesta trae además un objeto workflow con de quién es el turno y cuándo expira.

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

uuid*string

El id del expediente.

Cuerpo de la respuesta

application/json

curl -X GET "https://example.com/api/documentset/string"
{  "uuid": "9v3d6a47-e4e8-48ef-b9b3-7af45c8207dn",  "status": "CLOSED",  "documents": [    "4a3d6a47-e4e8-48ef-b9b3-7af45c8207de",    "5d08eabe-ecd0-46ad-9dbd-5d54098aca70"  ],  "workflow": {    "lastNotification": 1665001495000,    "expirationDate": 1666211094000,    "currentSigner": "[email protected]"  },  "signers": [    "GOCF9002226A511",    "[email protected]"  ]}