Firmar PDF con certificado X509

Si encuentras algún problema con el API, por favor comunícalo en GitHub


3.2 Cómo firmar un PDF con un certificado X509 usando la API


URL

Para firmar un PDF con un certificado X509 usando nuestra API Rest es necesario realizar una llamada POST a la siguiente url:

https://getoutpdf.com/api/sign/pdf-with-x509


Parámetros GET

Nuestra API Rest no dispone de operaciones a través de parámetros GET


Parámetros POST

  • api_keyApi key generada para tu licencia. Puedes ver tu api key en
    (string, required)
  • pdf_inFichero PDF de origen codificado en base64
    (string, required)
  • imageImagen de la firma codificada en base64
    (string, optional)
  • crt Certificado X509 codificado en base64
    (string, required)
  • crt_private_passwordContraseña privada del certificado
    (string, required)
  • owner_passwordContraseña del pdf. Si el pdf está encriptado, debes especificar su contraseña. Si you pdf no está encriptado, puedes omitir este campo
    (string, optional)
  • append_signature_blockAñadir (mostrar) bloque de firma en la última página
    (boolean, optional, default: true)
  • lang_signatureIdioma del bloque de firma
    (string, optional, default: en, values: en | es | it | de | pl | cs)

Formatos de imagen soportados: jpg, jpeg, exif, tiff, gif, bmp, png, ppm, pgm, pbm, pnm

Formatos de certificado soportados: pfx, p12


Puedes hacer una llamada POST, utilizando la cabecera html application/x-www-form-urlencoded, con los parámetros anteriormente descritos.

O también puedes enviar los parámetros a través del formato JSON, utilizando la cabecera html application/json:

{
    "api_key" : "...",                  // string, required
    "pdf_in" : "...",                   // string, required
    "image" : "...",                    // string, optional
    "crt" : "...",                      // string, required
    "crt_private_password" : "...",     // string, required, can be empty
    "owner_password" : "...",           // string, optional
    "append_signature_block" : "...",   // boolean, optional, default: true
    "lang_signature" : "..."            // string, optional, default: en, values: en|es|it|de|pl|cs
}

Ejemplo

{
    "api_key" : "64b5d1054b69e676b9984d8406c5209a6ba78...",
    "pdf_in" : "JVBERi0xLjQNJeLjz9MNCjYgMCBvYmo8PC9I...",
    "image" : "JVBERi0xLjQNJeLjz9MNCjYgMCBvYmo8PC9I...",
    "crt" : "JVBERi0xLjQNJeLjz9MNCjYgMCBvYmo8PC9I...",
    "crt_private_password" : "passwordCert",
    "owner_password" : "passwordPdf",
    "append_signature_block" : true,
    "lang_signature" : "en"
}

Respuesta

Si la operación se ha realizado correctamente la respuesta es un JSON con la siguiente estructura:

{
    "api_key": "...",       // string - Api key utilizada para tu licencia
    "pdf_base64": "...",    // string - Fichero PDF codificado en base64
    "tokens_used": "...",   // integer - Créditos utilizados para la operación
    "tokens_left": "..."    // integer - Créditos restantes
}

Errores

Si se produce un error en el envío de parámetros, la respuesta será un JSON con la siguiente estructura:

{
    "errors": {
        "param1": [     // string - Nombre del parámetro que ha generado el error
            "message"   // string - Descripción del error
        ],
        "param2": [
            "message"
        ],
        ...
        "paramN": [
            "message"
        ]
    }
}

Si se produce un error en la operación, la respuesta será un JSON con la siguiente estructura:

{
    "errors": [
        "message1",
        "message2",
        ...
        "messageN"
    ]
}