API: Método relacionado con la extensión de firma

El proceso de firma en Viafirma Fortress, constará de los procesos de:

  • Autenticación del cliente
  • Solicitud de extensión de firma
  • Obtención del documento/s extendido/s firmado/s

En los siguientes apartados describiremos los métodos disponibles en Viafirma Fortress, asociado a las operaciones de extensión de firma:

Solicitud de firma

Nota: Para acceder a estos métodos es necesario tener un token de acceso (access_token) obtenido mediante una petición de autenticación y autorización con un scope de tipo client y un grant_type de tipo client_credentials, para lo que hay que seguir los pasos indicados en esta sección de la documentación.

Solicitud de extensión de firma

Uso del servicio

Método: POST
URL: {viafirma_fortress_url}/api/v1/signature/extend

Donde:

Además, en la cabecera HTTP de la petición POST debe incluirse el token de acceso (access_token) de la siguiente forma:

Authorization: Bearer {access_token}

Ejemplo:

Método: POST
URL: https://fortress.viafirma.com/fortress/api/v1/signature/extend
Header de la petición: Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42

Parámetros del servicio

Este servicio recibe por parámetros la configuración de la extensión de firma empleada por cada documento a extender, donde se indica, entre otras cosas, el tipo de firma al que se desea extended el documento firmado, el documento a extender …

Los parámetros que se reciben (en formato application/json) tienen la siguiente forma:

{
  "extendSignatureConfigurations": [
    {
      "document": {
        "bytesB64": "JVBERi0xLjMKJcTl8uXrp/Og0MTGCjQ...",
        "name": "contrato.pdf"
      },
      "signatureType": "PADES_LTA",
      "signatureAlgorithm": "RSA_SHA256",
      "packaging": "ENVELOPED",
      "tsa": {
        "type": "URL",
        "url": "https://testservices.viafirma.com/via-tsa/tsa"
      }
    }
  ]
}

Nota: Los detalles de los parámetros padesConfiguration, xadesConfiguration, tsa y policy se muestran más adelante.

Donde:

Parámetro Tipo Descripción
userCode string [OPCIONAL] Usuario que debe extender la firma, si el sistema cliente no informa dicho valor, Viafirma Fortress no solicitará el usuario a emplear en el proceso de extensión de firma
extendSignatureConfigurations/document/name string Nombre documento a extender
extendSignatureConfigurations/document/bytesB64 string Documento a extender, codificado en Base64
extendSignatureConfigurations/document/url string Url ocumento a extender
extendSignatureConfigurations/signatureType string Tipo de firma. Valores disponibles:
- CADES_T
- CADES_LT
- CADES_LTA
- PADES_T
- PADES_LT
- PADES_LTA
- XADES_T
- XADES_LT
- XADES_LTA
extendSignatureConfigurations/packaging string Envoltura de la firma. Valores disponibles:
- ENVELOPED
- ENVELOPING
- DETACHED
extendSignatureConfigurations/original/name string [Solo para envolturas DETACHED] Nombre documento original a extender
extendSignatureConfigurations/original/bytesB64 string [Solo para envolturas DETACHED] Documento original a extender, codificado en Base64
extendSignatureConfigurations/original/url string [Solo para envolturas DETACHED] Url documento original a extender

Configuración TSA

Para los tipos de firma que incluyan sellado de tiempo, se debe informar la configuración de la TSA.

{
  "url": "http://tsa.example.com/",
  "user": "tsa_user",
  "password": "tsa_pass",
  "type": "USER",
  "certificateCode": "tsa_certificate_code"
}
Parámetro Tipo Descripción
type string Tipo de TSA. Si requiere autenticación con usuario y password, usaremos el valor USER, si requiere autenticación con certificado CERTIFICATE, si requiere autenticación con certificado por TSL CERTIFICATE_TLS, si no, el valor URL
user string Usuario para la autenticación en la TSA (solo para type con valor USER)
password string Contraseña para la autenticación en la TSA (para los type con valor USER o CERTIFICATE_TLS)
url string URL de de la TSA
certificateCode string Código del certificado para la autenticación en la TSA (para los type con valor CERTIFICATE o CERTIFICATE_TLS)

Configuración de políticas

Para que la firma tenga una política y se la pueda considerar de tipo EPES, podemos definir los valores de la misma con esta configuración.

{
  "id": "102039485-10283757-102837575",
  "description": "Sample policy",
  "digestAlgorithm": "SHA256",
  "digestValueB64": "JVBERi0xLjMKJcTl8uXlRU9GC",
  "contentHintsDescription": "Lorem ipsum dolor sit amet",
  "contentHintsType": "Lorem ipsum dolor sit amet"
}
Parámetro Tipo Descripción
id string Identificador de la política
description string Descripción de la política
digestAlgorithm string Algoritmo de cifrado. Posibles valores:
- SHA1
- SHA224
- SHA256
- SHA384
- SHA512
- RIPEMD160
- MD2
- MD5
digestValueB64 string Valor (codificado en Base64)
contentHintsDescription string Descripción de la ayuda
contentHintsType string Tipo de ayuda

Respuesta del servicio

La respuesta de este servicio vendrá dada (en formato application/json) de la siguiente forma:

{
  "ref": "d8e3d98dc20e46188fd067df28048934",
  "bytesB64": "MIMBKM8GCSqGSIb3DQEHAqCDASi/MIMBKLoCAQUxDzANBglghkgBZQMEAgEFADCC1QsGCSqGSIb3DQEHAaCC1PwEgtT4JVBERi0xLjMKJcTl8uXrp..."
}

Donde:

Parámetro Tipo Descripción
ref string referencia de la extensión
bytesB64 string Base 64 del documento extendido

Errores del servicio

Los errores devueltos por el servicio (devueltos en formato application/json) tienen el siguiente aspecto:

{
  "error": "error_code",
  "error_description": "error_description"
}

Donde:

Parámetro Tipo Descripción
error string Código del error
error_description string Descripción del error

Posibles errores:

Código de error Error
invalid_request Petición incorrecta. Alguno de los parámetros de entrada no es correcto. (HTTP Status: 400)
invalid_token El access_token utilizado no es correcto (HTTP Status: 401)

results matching ""

    No results matching ""