Rýchly štart
Tento návod vás prevedie od prázdneho účtu k podpísanému PDF. Vytvoríte prípad s jedným účastníkom, nahráte dokument, počkáte na podpis a stiahnete výsledok. Všetko beží v sandboxe, testovacom prostredí TrustInk.
Potrebujete curl a jq, PDF s veľkosťou od 1 KB do 25 MB a e-mailovú adresu účastníka, ktorú si viete
prečítať.
-
Získajte prístupové údaje k API
Prihláste sa do portálu a otvorte Prístupové údaje k API. Vytvorte klienta pre svoju integráciu a skopírujte jeho client ID, client secret a adresu na získanie tokenu. Secret sa zobrazí iba raz; uložte ho do úložiska tajomstiev, nikdy nie do prehliadača ani mobilnej aplikácie.
Terminal window export API=https://api-sandbox.trustink.ioexport TOKEN_URL=... # zobrazená pri vašich prístupových údajochexport CLIENT_ID=...export CLIENT_SECRET=... -
Získajte prístupový token
Prístupové údaje vymeňte za token cez OAuth 2.0 client credentials. Klient sa overuje cez HTTP Basic.
Terminal window export TOKEN=$(curl -s -X POST "$TOKEN_URL" \-u "$CLIENT_ID:$CLIENT_SECRET" \-H 'Content-Type: application/x-www-form-urlencoded' \-d grant_type=client_credentials | jq -r .access_token)Token posielajte ako
Authorization: Bearer <token>pri každej požiadavke tenanta. Uchovajte si ho, kým sa neblíži koniecexpires_in, namiesto toho, aby ste ho získavali pri každej požiadavke. -
Vytvorte prípad
Prípad je jeden dokument a ľudia, ktorí ho podpisujú. Povinné sú
title,validUntilaparticipants;callbackhovorí, kam má TrustInk posielať webhooky.Terminal window curl -s -X POST "$API/cases" \-H "Authorization: Bearer $TOKEN" \-H 'Content-Type: application/json' \-d '{"title": "Zmluva o službách 2026/0142","validUntil": "2026-10-31T23:59:59Z","participants": [{"firstName": "Jana", "lastName": "Nováková", "email": "jana.novakova@example.com", "language": "sk"}],"callback": {"url": "https://example.com/trustink/webhook","authType": "NONE","signingSecret": "nahradte-32-az-128-nahodnymi-znakmi","data": {"orderId": 4711}}}' > case.jsonconst response = await fetch(`${process.env.API}/cases`, {method: 'POST',headers: {authorization: `Bearer ${token}`, 'content-type': 'application/json'},body: JSON.stringify({title: 'Zmluva o službách 2026/0142',validUntil: '2026-10-31T23:59:59Z',participants: [{firstName: 'Jana', lastName: 'Nováková', email: 'jana.novakova@example.com', language: 'sk'}],callback: {url: 'https://example.com/trustink/webhook',authType: 'NONE',signingSecret: process.env.TRUSTINK_WEBHOOK_SECRET,data: {orderId: 4711},},}),});const {case: created, upload} = await response.json();Odpoveď obsahuje prípad v stave
NEWa miesto, kam patrí dokument:{"case": {"id": "49d4ae62-…","title": "Zmluva o službách 2026/0142","status": "NEW","validUntil": "2026-10-31T23:59:59.000Z","participants": [{"id": "7a1c…", "firstName": "Jana", "lastName": "Nováková", "status": "UNSIGNED","signerUrl": "https://…", "signatureFields": []}]},"upload": {"type": "PUT", "url": "https://…"}}signerUrlkaždého účastníka je jeho osobný podpisový odkaz. TrustInk mu ho pošle e-mailom; zobraziť ho môžete aj vo svojom systéme. -
Nahrajte PDF
Dokument nahrajte metódou PUT na
upload.urldo jednej hodiny. Musí to byť PDF s veľkosťou od 1 KB do 25 MB.Terminal window export CASE_ID=$(jq -r .case.id case.json)curl -s -X PUT -H 'Content-Type: application/pdf' \--upload-file zmluva.pdf "$(jq -r .upload.url case.json)"Prípad prejde do stavu
IN_PROGRESSa účastníci dostanú pozvánku e-mailom. Otvorte odkaz v Janinej schránke a podpíšte. Súbor, ktorý nie je PDF správnej veľkosti, presunie prípad do stavuUPLOAD_REJECTEDs dôvodom vrejectReason. -
Počkajte na podpisy
TrustInk pošle
participant-signedpo každom podpise acase-completed, keď je podpísané PDF hotové. Skôr ako telu požiadavky uveríte, overte hlavičkuTrustink-Signature; návod k webhookom má ukážky v Node.js, Jave a C#.{"id": "7b1e4c2a-…","type": "case-completed","occurredAt": "2026-09-23T15:40:00Z","caseId": "49d4ae62-…","status": "DONE","data": {"orderId": 4711},"signedDocument": {"url": "https://…"},"evidenceDocument": {"url": "https://…"}}Bez verejného endpointu čítajte prípad, kým neopustí stav
IN_PROGRESS. Pýtajte sa šetrne, napríklad každých 30 sekúnd.Terminal window until [ "$(curl -s "$API/cases/$CASE_ID" -H "Authorization: Bearer $TOKEN" | jq -r .status)" != "IN_PROGRESS" ]; dosleep 30doneDONEznamená, že podpísali všetci.EXPIRED,CANCELLEDaFAILEDukončia prípad bez podpísaného dokumentu. -
Stiahnite podpísané PDF a dôkazný súhrn
Keď je prípad v stave
DONE,GET /cases/{caseId}odkazuje na oba dokumenty krátkodobými predpodpísanými URL adresami:Terminal window curl -s "$API/cases/$CASE_ID" -H "Authorization: Bearer $TOKEN" > done.jsoncurl -s -o podpisany.pdf "$(jq -r .signedDocument.url done.json)"curl -s -o dokazy.pdf "$(jq -r .evidenceDocument.url done.json)"podpisany.pdfnesie jeden podpis za každého účastníka, každý s certifikátom na jeho meno, uzavretý pečaťou TrustInk a rozšírený na PAdES B-LTA (signedDocument.level).dokazy.pdfje zapečatený dôkazný súhrn: kroky každého účastníka, SHA-256 dokumentu a certifikáty.
Odkazy vo webhookoch platia hodinu. Nový odkaz získate kedykoľvek cez
GET /cases/{caseId}.
Ďalšie kroky
Section titled “Ďalšie kroky”- Umiestnite podpis presne tam, kam patrí, pomocou podpisových polí.
- Vyžiadajte si od každého podpisujúceho jednorazový kód e-mailom.
- Nechajte ľudí podpisovať osobne na kiosku.
- Prezrite si všetky cesty v referencii API.