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
Nuestra API Rest no dispone de operaciones a través de parámetros GET
api_keyApi key generada para tu licencia. Puedes ver tu api key en pdf_inFichero PDF de origen codificado en base64imageImagen de la firma codificada en base64crt Certificado X509 codificado en base64crt_private_passwordContraseña privada del certificadoowner_passwordContraseña del pdf. Si el pdf está encriptado, debes especificar su contraseña. Si you pdf no está encriptado, puedes omitir este campoappend_signature_blockAñadir (mostrar) bloque de firma en la última páginalang_signatureIdioma del bloque de firmaapplication/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
}
{
"api_key" : "64b5d1054b69e676b9984d8406c5209a6ba78...",
"pdf_in" : "JVBERi0xLjQNJeLjz9MNCjYgMCBvYmo8PC9I...",
"image" : "JVBERi0xLjQNJeLjz9MNCjYgMCBvYmo8PC9I...",
"crt" : "JVBERi0xLjQNJeLjz9MNCjYgMCBvYmo8PC9I...",
"crt_private_password" : "passwordCert",
"owner_password" : "passwordPdf",
"append_signature_block" : true,
"lang_signature" : "en"
}
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
}
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"
]
}