Preskoči na glavno vsebino

Generovanie PDF s elektronickým podpisom

Dá sa cez API generovať PDF s elektronickým podpisom?

Avtor: Petr Pech

PDF vygenerované cez API je možné opatriť elektronickým podpisom. Stačí k požiadavke pridať parameter report-sign=true a mať v ABRA Flexi nahraný platný osobný certifikát.


Požiadavka

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

Ak je certifikát v poriadku, príde podpísané PDF. Ak nie, požiadavka skončí chybou 400:

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

ℹ️ Bez parametra (alebo s report-sign=false) sa vracia bežné nepodpísané PDF. Podpísanie sa teda nikdy nedeje automaticky.


Certifikát

Osobné certifikáty sú v evidencii certifikat a každý je naviazaný na používateľa:

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

Vo výpise nájdete certNazev, certOrgan, platnosť (platiOd, platiDo), naviazaného používateľa a účel (ucelCertK.osobni). Certifikát je možné nahrať aj cez 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 podpisovanie fungovalo, musí mať používateľ, pod ktorým voláte API, práve jeden platný osobný certifikát. Nahrať ho je možné aj v aplikácii — u API používateľa je potrebné dočasne ho prepnúť na typ Normálny, certifikát nahrať a typ vrátiť späť.

💡 Naimportovaným certifikátom je možné podpísať aj iné dáta než tlačovú zostavu — endpoint /c/{firma}/certifikat/{id}/sign podpíše PDF, XML aj binárny súbor (voliteľne vo formáte PKCS#7 parametrom output=pkcs7).


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?