Ejemplo de rechazo de documento firmado

A continuación se detallarán los datos necesarios para realizar la integración que permita rechazar un documento firmado según el siguiente flujo:

Generación del documento

Previamente debemos generar el documento.

URL de la Solicitud:

La URL de la solicitud será:

https://sandbox.viafirma.com/documents/api/v3/messages

Además, indicaremos que la petición HTTP es de tipo POST y cuyo Content-Type tendrá valor application/json.

Ejemplo cuerpo de la Petición:

Tenemos dos formas de indicar que el documento que queremos generar implica acción de aprobación/rechazo desde el CRM.

  • Mediante el código de una plantilla predefinida. Esta plantilla deberá configurarse apropiadamente y todo documento generado a raíz de dicha plantilla, requerirá la acción de aprobación/rechazo desde el CRM.
{
  "groupCode": "my_group_code",
  "notification" : {
    "text" : "Cuerpo del correo",
    "sharedLink" : {
      "appCode" : "com.viafirma.app",
      "email" : "[email protected]",
      "subject" : "Asunto del correo"
    }
  },
   "document" : {
    "templateCode" : "329_example",
    "items" : [ {
      "key" : "KEY_01",
      "value" : "Test value"
    }, {
      "key" : "KEY_02",
      "value" : "Test value"
    }, {
      "key" : "KEY_03",
      "value" : "Test value"
    }, {
      "key" : "KEY_04",
      "value" : "Test value"
    } ]
  }
}
  • Consultando la política de la plantilla que vamos a utilizar y configurando el atributo checklist. Para ello, necesitamos hacer una petición adicional que nos devuelva esta información:

    URL (petición GET)
    https://sandbox.viafirma.com/documents/api/v3/template/{code}
    
    Parámetros:

    code (requerido): código de la plantilla que vamos a consultar (ejemplo: 301_example).

    Respuesta:

    En el cuerpo de la respuesta obtendremos todos los datos de la plantilla:

{
  "code": "301_example",
  "title": "Firma biométricas simple",
  "description": "1 firma biométrica sin sello de tiempo",
  "form": {
    "version": "0001",
    "containers": [
      {
        "name": "Container 1",
        "rows": [
          {
            "items": [
              {
                "key": "KEY_01",
                "type": "text",
                "label": "KEY_01"
              }
            ]
          },
          {
            "items": [
              {
                "key": "KEY_02",
                "type": "text",
                "label": "KEY_02"
              }
            ]
          },
          {
            "items": [
              {
                "key": "KEY_03",
                "type": "text",
                "label": "KEY_03"
              }
            ]
          },
          {
            "items": [
              {
                "key": "KEY_04",
                "type": "text",
                "label": "KEY_04"
              }
            ]
          }
        ]
      }
    ],
    "settings": {
      "policies": [
        {
          "evidences": [
            {
              "type": "SIGNATURE",
              "helpText": "Firma del usuario",
              "typeFormatSign": "XADES_B"
            }
          ],
          "signatures": [
            {
              "type": "SERVER",
              "helpText": "Firma del servicio",
              "typeFormatSign": "PADES_B"
            }
          ]
        }
      ]
    }
  },
  "version": "1",
  "type": "docx"
}

De los cuales incluiremos el fragmento de política en el cuerpo de la petición para generar el documento, y configuraremos el atributo checklist para indicar que requerimos la acción de aprobar. Un ejemplo del cuerpo de la petición, con la política modificada, sería:

{
  "groupCode": "my_group_code",
  "notification" : {
    "text" : "Cuerpo del correo",
    "sharedLink" : {
      "appCode" : "com.viafirma.app",
      "email" : "[email protected]",
      "subject" : "Asunto del correo"
    }
  },
   "document" : {
    "templateCode" : "301_example",
    "items" : [ {
      "key" : "KEY_01",
      "value" : "Test value"
    }, {
      "key" : "KEY_02",
      "value" : "Test value"
    }, {
      "key" : "KEY_03",
      "value" : "Test value"
    }, {
      "key" : "KEY_04",
      "value" : "Test value"
    } ]
  },
  "policies": [
        {
          "evidences": [
            {
              "type": "SIGNATURE",
              "helpText": "Firma del usuario",
              "typeFormatSign": "XADES_B"
            }
          ],
          "signatures": [
            {
              "type": "SERVER",
              "helpText": "Firma del servicio",
              "typeFormatSign": "PADES_B"
            }
          ],
          "checklist": [
            {
                "signature": {
                    "type": "SERVER",
                    "helpText": "Firma del servicio",
                    "typeFormatSign": "PADES_B"
                }
            }
          ]
        }
      ]
}

Como cualquier otra solicitud de generación de documento, el CRM indicará los datos necesarios acordes a la plantilla utilizada dentro del parámetro items, mediante el sistema clave/valor.

Respuesta:

Los datos obtenidos consistirán en:

  • el cuerpo de la Respuesta, que indicará el código único del documento generado:
1493028491652R956
  • el código HTTP del estado de la operación:
200

Rechazar el documento firmado

Los datos para realizar la petición de rechazo son:

URL de la Solicitud (rechazar documento):

La URL de la solicitud será:

https://sandbox.viafirma.com/documents/api/v3/check/reject/{messageCode}/{checkCode}

Además, indicaremos que la petición HTTP es de tipo PUT.

Parámetros:

Los parámetros aceptados son:

  • messageCode (requerido): código único del documento (ejemplo: 1493028491652R956).

  • checkCode (requerido): código de la acción que vamos a rechazar (ejemplo: 1493028491652R956P001C001).

  • comment (opcional): texto con el motivo de rechazo (ejemplo: datos incorrectos).

  • validateCode (opcional): código de validación para proteger la acción a realizar (ejemplo: k3W28)

Respuesta:

Los datos obtenidos consistirán en:

  • el cuerpo de la Respuesta, indicará el estado del documento, así como los datos de la acción realizada:
{
  "status": "REJECTED",
  "code": "1493028491652R956P001C001",
  "signature": {
    "type": "SERVER",
    "helpText": "Firma del servicio",
    "typeFormatSign": "PADES_B"
  }
}
  • el código HTTP del estado de la operación:
200

results matching ""

    No results matching ""