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_key
Api key generada para tu licencia. Puedes ver tu api key en pdf_in
Fichero PDF de origen codificado en base64image
Imagen de la firma codificada en base64crt
Certificado X509 codificado en base64crt_private_password
Contraseña privada del certificadoowner_password
Contraseña del pdf. Si el pdf está encriptado, debes especificar su contraseña. Si you pdf no está encriptado, puedes omitir este campoappend_signature_block
Añadir (mostrar) bloque de firma en la última páginalang_signature
Idioma 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" ] }