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:
viafirma_fortress_url
: URL base de la implementación de Viafirma Fortress, por ejemplo https://sandbox.viafirma.com/fortress o https://fortress.viafirma.com/fortress
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 ""