To sign a PDF width a certificate X509 using our API Rest is necessary to perform a POST call to the following URL (ENDPOINT):
https://getoutpdf.com/api/sign/pdf-with-x509
Our Rest API does not have operations via GET parameters
api_key
Api key generated for your license. You can see your api key pdf_in
Source PDF encoded in base64image
Source image encoded in base64crt
Certificate X509 enconded in base64crt_private_password
Private certificate passwordowner_password
Owner password of pdf file. If your PDF is encrypted you must to specify it password. If your PDF is not encrypted you can avoid this fieldappend_signature_block
Add (show) signature block on the last pagelang_signature
Language of signature blockapplication/x-www-form-urlencoded
, with the parameters described above.
Or you can send parameters via the JSON format, using the HTML Header 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" }
If the operation is successful the response is a JSON with the following structure:
{ "api_key": "...", // string - Api key used for your license "pdf_base64": "...", // string - PDF file encoded in base64 "tokens_used": "...", // integer - Tokens used in operation "tokens_left": "..." // integer - Tokens left }
If an error in sending parameters occurs, the response is a JSON with the following structure:
{ "errors": { "param1": [ // string - Parameter name that generated the error "message" // string - Error description ], "param2": [ "message" ], ... "paramN": [ "message" ] } }
If a operation error occurs, the answer will be a JSON with the following structure:
{ "errors": [ "message1", "message2", ... "messageN" ] }