Přeskočit na hlavní obsah

Generace PDF s elektronický podpisem

Lze přes API generovat PDF s elektronickým podpisem?

Autor: Petr Pech

PDF vygenerované přes API lze opatřit elektronickým podpisem. Stačí k požadavku přidat parametr report-sign=true a mít v ABRA Flexi nahraný platný osobní certifikát.


Požadavek

GET /c/{firma}/faktura-vydana/1.pdf?report-sign=true

Je-li certifikát v pořádku, přijde podepsané PDF. Není-li, požadavek skončí chybou 400:

Nemáte naimportován žádný platný certifikát. Nelze vyexportovat podepsané PDF.

ℹ️ Bez parametru (nebo s report-sign=false) se vrací běžné nepodepsané PDF. Podepsání se tedy nikdy neděje automaticky.


Certifikát

Osobní certifikáty jsou v evidenci certifikat a každý je navázaný na uživatele:

GET /c/{firma}/certifikat.xml?detail=full

Ve výpisu najdete certNazev, certOrgan, platnost (platiOd, platiDo), navázaného uživatele a účel (ucelCertK.osobni). Certifikát lze nahrát i přes API:

PUT /c/{firma}/certifikat/import?heslo={heslo certifikátu}
Content-Type: application/x-pkcs12 (soubory .p12, .pfx)
Content-Type: application/x-pem-file (soubory .pem, .cer, .crt)

⚠️ Aby podepisování fungovalo, musí mít uživatel, pod kterým voláte API, právě jeden platný osobní certifikát. Nahrát jej lze i v aplikaci — u API uživatele je potřeba jej dočasně přepnout na typ Normální, certifikát nahrát a typ vrátit zpět.

💡 Naimportovaným certifikátem lze podepsat i jiná data než tiskovou sestavu — endpoint /c/{firma}/certifikat/{id}/sign podepíše PDF, XML i binární soubor (volitelně ve formátu PKCS#7 parametrem output=pkcs7).


Související

Dostali jste odpověď na svou otázku?