Integrácia cez HTTP API
Integrácia cez HTTP API
Táto stránka je pre vývojárov webových stránok a aplikácií, ktoré chcú podpisovať cez Autogram. Používateľ musí mať Autogram nainštalovaný vo svojom počítači.
Autogram SDK
Najjednoduchšie je použiť knižnicu Autogram SDK (npm balík autogram-sdk). Postará sa o spustenie Autogramu, počká, kým začne odpovedať, a zobrazí na stránke hotový dialóg, v ktorom si používateľ vyberie podpisovanie v počítači alebo v mobile (Autogram v mobile). Rovnaký dialóg používa aj rozšírenie do prehliadača, takže ho používatelia poznajú.
import { createAutogramClient } from "autogram-sdk/with-ui";
const client = await createAutogramClient();
const { content } = await client.sign(
{ content: "hello world", mimeType: "text/plain", filename: "hello.txt" },
{ form: "XAdES", container: "ASiC_E" }
);
Dokumentácia knižnice je na GitHub Pages.
Ako to funguje
Autogram spúšťa v počítači používateľa lokálny server na adrese http://localhost:37200. Vaša stránka mu cez HTTP pošle dokument, Autogram ho zobrazí, používateľ ho skontroluje a podpíše a Autogram vráti podpísaný dokument v odpovedi.
- Dokumentácia API (Swagger) je na GitHube a po spustení Autogramu aj na http://localhost:37200/docs.
- Ak Autogram nebeží, spustíte ho otvorením adresy s protokolom
autogram://, napríkladautogram://go. Potom počkajte, kým začne odpovedaťGET /api/v1/info, a až potom pošlite dokument. Používateľ zatiaľ môže vidieť iba hlavné okno Autogramu, preto mu na stránke ukážte, že má počkať a dokument v Autograme neotvárať sám. - Podpisovanie jedného dokumentu:
POST /api/v1/signs poľomdocument. - Viac dokumentov v jednom kontajneri ASiC-E:
POST /api/v1/signs poľomdocuments, pozrite si Viac dokumentov v jednom kontajneri. - Formulár Finančnej správy: identifikátor formulára v
xdcParameters.fsFormIdentifier, pozrite si Formuláre Finančnej správy. - Viac samostatných dokumentov: batch API
/api/v1/batch, používateľ si vyberie, či ich podpíše po jednom alebo hromadne. - Časovú pečiatku si vyžiadate úrovňou
BASELINE_T(v/api/v1/signparametromprofile). Autogram ju získa zo zdrojov časových pečiatok v nastaveniach používateľa, predvolene od bezplatných kvalifikovaných poskytovateľov. - Zoznam certifikátov:
GET /api/v1/certificates. Autogram si pred odoslaním certifikátov vypýta súhlas používateľa.
Viac dokumentov v jednom kontajneri
Nový kontajner z viacerých dokumentov vytvoríte cez HTTP API POST /api/v1/sign s poľom documents (najviac 5 dokumentov, formát XAdES alebo CAdES, kontajner ASiC_E). Dokument typu ASiC-E nemôže byť súčasťou takejto požiadavky. Podrobnosti a príklady sú v dokumentácii API.
{
"parameters": { "form": "XAdES", "container": "ASiC_E" },
"documents": [
{ "filename": "zmluva.pdf", "mimeType": "application/pdf;base64", "content": "JVBERi0xLjUK..." },
{ "filename": "priloha.txt", "mimeType": "text/plain", "content": "Príloha k zmluve" }
]
}
Formuláre Finančnej správy
XML formuláre Finančnej správy, napríklad daňové priznania, väčšinou nemajú v koreňovom elemente menný priestor, podľa ktorého by Autogram zistil, o aký formulár ide. Identifikátor formulára mu preto pošlite v parametri fsFormIdentifier v xdcParameters dokumentu. Autogram potom nájde XSD a XSLT formulára vo verejnom zozname formulárov Slovensko.Digital, XML overí podľa XSD, vytvorí z neho XML Datacontainer, používateľovi ho zobrazí v čitateľnej podobe a podpíše ho podpisom XAdES.
{
"parameters": { "form": "XAdES" },
"documents": [
{
"filename": "danove-priznanie.xml",
"mimeType": "application/xml;base64",
"content": "PGRva3VtZW50Pj...",
"xdcParameters": { "autoLoadEform": true, "fsFormIdentifier": "792_772" }
}
]
}
- Identifikátor má tvar
číslo_číslo, napríklad792_772je daňové priznanie k dani z príjmov fyzickej osoby typ B za rok 2023. Identifikátory s názvami formulárov nájdete v súbore forms.xml v atribútesdIdentifier. - Ak formulár posielate už v XML Datacontaineri alebo v kontajneri ASiC-E, identifikátor netreba. Autogram formulár rozpozná podľa jeho identifikátora v kontajneri.
- Identifikátor v nesprávnom tvare alebo XML, ktoré nezodpovedá XSD formulára, vráti chybu 422 (
UNPROCESSABLE_INPUT). Neznámy identifikátor vráti chybu 400 (UNKNOWN_EFORM). - Na nájdenie formulára potrebuje Autogram pripojenie na internet.
- Staršie API
POST /signmá na to parameterparameters.fsFormId.
Čo musí mať používateľ
- Nainštalovaný Autogram s nastavením Zapnúť Autogram API (predvolene zapnuté).
- Kartu s certifikátom a jej obslužný softvér, pozrite si Karty a certifikáty.
Obmedzený režim
Ak je port 37200 obsadený, napríklad inou aplikáciou, Autogram sa spustí v obmedzenom režime bez API. Podpisovanie súborov v aplikácii funguje, podpisovanie z webu nie. Pozrite si Riešenie problémov.