Sendu skjöl með öruggum hætti og fáðu óyggjandi staðfestingu á móttöku og lestri. Viðtakandi auðkennir sig með rafrænum skilríkjum frá Auðkenni áður en skjalið opnast og verður aðgengilegt honum. Vefþjónustan samþættir gagnasendingarnar beint inn í eigin kerfi og viðmót. Eitt REST API, einn endapunktur til að byrja, og testumhverfi sem þú getur prófað strax í dag.
Öll innleiðingin tekur um 3 daga: stofnaðu ókeypis prufuaðgang, sendu póst á hallo@justikal.com til að fá API-aðgang, smíðaðu og prófaðu í testumhverfinu, og sendu svo aftur póst til að ganga frá samningi til að fá aðgang að raunumhverfinu. Reyndur bakendaforritari er yfirleitt búinn að senda fyrsta skjalið á innan við hálftíma frá því aðgangslykillinn berst — margir klára alla innleiðinguna á einum degi. Renndu yfir 7 skref innleiðingarinnar hér að neðan og áframsendu síðuna svo á forritarann þinn (ef við á).
Örugga rekjanlega gagnasendingarþjónustan hefur hlotið skráningu og heimild hjá Byggðastofnun Íslands sem póstþjónusta. Þjónustuna má því m.a. nota til að senda ábyrgðarbréf með stafrænum hætti í samræmi við ákvæði laga þar um. Kerfið þitt hleður upp PDF-skjali og segir Justikal hver á að fá það. Justikal lætur viðtakandann vita, sem þarf að auðkenna sig með rafrænum skilríkjum áður en skjalið opnast. Hvert skref — sent, opnað, undirritað — er tímastimplað í atburðaskrá, og þú getur sótt formlegt móttökuvottorð fyrir hverja heppnaða sendingu.
pdfFile, recipientName,
recipientPersonalCode, recipientEmail, message,
services…). Allt sem kóðinn þinn gerir getur þú fyrst prófað hér í höndunum.Grænu skrefin tilheyra þér; dökku skrefin sér Justikal um. Aðeins þrjú þeirra fela í sér að skrifa kóða.
Farðu á demo.justikal.com — testumhverfi Justikal — og nýskráðu þig. Þar færðu stjórnborð þar sem þú munt síðar sjá allar prufusendingar sem kóðinn þinn býr til.
Sendu póst á hallo@justikal.com og óskaðu eftir API-aðgangi. Taktu fram netfangið sem þú notaðir við stofnun prufuaðgangsins svo hægt sé að tengja þetta saman.
Þú færð API-aðgangslykil (byrjar á jkt_) fyrir testumhverfið á
demoapi-is.justikal.com. Farðu með hann eins og lykilorð: geymdu hann
eingöngu bakendamegin, helst í leyndarmálageymslu (secret store) — aldrei í
vafrakóða, Git eða loggum.
Eitt API-kall sendir skjal (nákvæm leiðsögn hér að neðan). Sendu á sjálfan þig, opnaðu afhendingartengilinn, auðkenndu og horfðu á stöðuna breytast í stjórnborðinu.
Veldu þitt stig: Lágmarkstenging (senda skjöl, fylgjast með stöðu með fyrirspurnum eða í stjórnborðinu), Full tenging (webhooks, rafrænar undirritanir, sjálfvirkni) eða Ítarleg tenging (algjörlega undir þínu vörumerki — þín vefslóð, þínar tilkynningar, Justikal ósýnilegt). Byrjaðu á lágmarkinu — þú getur uppfært hvenær sem er.
Virkar tengingin í testumhverfinu? Sendu aftur póst á hallo@justikal.com til að ganga frá þjónustusamningi og staðfesta hvaða viðbótarþjónustur þú þarft (SMS, rafrænar undirskriftir, móttökuvottorð).
Justikal fer yfir tenginguna og gefur svo út aðgangslykil að
raunumhverfinu. Skiptu grunnslóðinni úr demoapi-is.justikal.com í
api-is.justikal.com (slóðirnar eru að öðru leyti eins), farðu yfir
gátlistann — og þá er allt klárt.
| Atriði | Gildi |
|---|---|
| Grunnslóð testumhverfis | https://demoapi-is.justikal.com |
| Grunnslóð raunumhverfis | https://api-is.justikal.com |
| Grunnslóð endapunkta | /external/api/v1/ |
| Auðkenning | Authorization: Bearer jkt_þinn_lykill í hverju kalli |
| Gagnvirk skjölun | /external/api/doc (Swagger UI) · /external/api/doc.json (OpenAPI-lýsing) |
| Hraðatakmörk | 100 köll/mínútu á hvern lykil (429 + Retry-After ef farið er yfir) |
| Prófunar-PDF | Hvaða PDF sem er, allt að 300 MB — einnar síðu prufuskjal dugar |
Þú gerir eitt HTTP-kall sem hleður upp PDF-skjali og segir Justikal hver á að fá
það. Justikal sendir viðtakandanum svo öruggan tengil í tölvupósti fyrir þína hönd. Kallið er
venjulegt multipart/form-data POST — sama snið og skráarupphleðsluform á hvaða
vefsíðu sem er — svo allir HTTP-clientar styðja það beint.
# Skiptu út lyklinum og notaðu þitt eigið netfang sem viðtakanda,
# svo ÞÚ fáir sendinguna og sjáir alla upplifunina.
curl -X POST "https://demoapi-is.justikal.com/external/api/v1/edeliveries" \
-H "Authorization: Bearer jkt_þinn_lykill" \
-F "pdfFile=@/slod/a/skjal.pdf" \
-F "recipientName=Jón Jónsson" \
-F "recipientCountry=IS" \
-F "recipientPersonalCode=1234567890" \
-F "recipientEmail=thu@fyrirtaeki.is" \
-F "emailSubject=Prófunarsending frá okkur" \
-F "message=Vinsamlegast kynntu þér og staðfestu móttöku þessa skjals."
import fs from "node:fs";
const form = new FormData();
form.append("pdfFile", new Blob([fs.readFileSync("skjal.pdf")]), "skjal.pdf");
form.append("recipientName", "Jón Jónsson");
form.append("recipientCountry", "IS");
form.append("recipientPersonalCode", "1234567890");
form.append("recipientEmail", "thu@fyrirtaeki.is");
form.append("emailSubject", "Prófunarsending frá okkur");
form.append("message", "Vinsamlegast kynntu þér og staðfestu móttöku þessa skjals.");
const res = await fetch(
"https://demoapi-is.justikal.com/external/api/v1/edeliveries",
{ method: "POST",
headers: { Authorization: `Bearer ${process.env.JUSTIKAL_TOKEN}` },
body: form });
const delivery = await res.json();
import os, requests
with open("skjal.pdf", "rb") as f:
res = requests.post(
"https://demoapi-is.justikal.com/external/api/v1/edeliveries",
headers={"Authorization": f"Bearer {os.environ['JUSTIKAL_TOKEN']}"},
files={"pdfFile": f},
data={
"recipientName": "Jón Jónsson",
"recipientCountry": "IS",
"recipientPersonalCode": "1234567890",
"recipientEmail": "thu@fyrirtaeki.is",
"emailSubject": "Prófunarsending frá okkur",
"message": "Vinsamlegast kynntu þér og staðfestu móttöku þessa skjals.",
})
delivery = res.json()
{
"id": "550e8400-e29b-41d4-a716-446655440000", ← geymdu þetta — allt annað vísar í það
"status": "pending",
"delivery_url": "https://delivery.justikal.is/550e8400-...",
"created_at": "2026-08-11T13:54:31+00:00"
}
Lokið — viðtakandinn er kominn með póst. Geymdu id; allir aðrir endapunktar
(staða, atburðaskrá, PDF-niðurhal, skýrsla, afturköllun) vísa í það.
400 með
„At least one of recipient_email or recipient_phone must be provided“ — þú gleymdir
viðtakandareit, eða settir recipientEmail án emailSubject.
message í villusvarinu nefnir alltaf nákvæmlega hvaða reit þarf að laga.Gott að skilja áður en þú tengir — þetta er upplifunin sem viðskiptavinir þínir fá, og nákvæmlega það sem þú sérð þegar þú sendir fyrstu sendinguna á sjálfan þig.
Sending hefur eina status-stöðu í einu; tímastimplar og
atburðaskráin geyma smáatriðin. Þetta er það sem tengingin þín fylgist með:
status verður delivered er móttökuvottorðið tilbúið til niðurhals.Öll þrjú stigin eru fullgild í raunumhverfinu. Lágmarkið kemst hraðast í loftið, full tenging gerir allt sjálfvirkt, og ítarleg tenging gerir upplifunina alfarið þína — þitt lén, þitt vörumerki, þínar tilkynningar.
POST /edeliveries — kallið sem þú sást hér að ofan.GET /edeliveries?status=pending nokkrum
sinnum á dag, eða skoðaðu einfaldlega sendingarnar í
stjórnborðinu — engin stöðuvöktun í kóða
nauðsynleg.delivered, sæktu
GET /edeliveries/{id}/deliveryReport.postbackUrl við stofnun — Justikal POST-ar á þig
við hverja stöðubreytingu. Engin stöðuvöktun, tafarlaus viðbrögð.disableNotifications: true og
sendu delivery_url sjálf/ur úr þínu kerfi.companyBrandingUsed,
senderNameHidden, lang (EN/IS).services.<iframe> á þínu eigin léni —
t.d. skjol.fyrirtaeki.is/doc=73883.tilkynningar@fyrirtaeki.is) — Justikal sendir ekkert.Nákvæmlega fyrsta kallið sem þú gerðir áðan. Í raunkóða er eina breytingin að lesa lykilinn úr stillingum og meðhöndla svarið.
Leið 1 — enginn kóði: skráðu þig inn í stjórnborðið og sjáðu hverja sendingu, stöðu hennar og atburðaskrá. Dugar vel fyrir lítið magn.
Leið 2 — fletta upp einni sendingu:
curl "https://demoapi-is.justikal.com/external/api/v1/edeliveries/{id}" \
-H "Authorization: Bearer jkt_þinn_lykill"
# → staða, viðtakandi og tímastimplar: created_at, delivered_at, signed_at, deadline_at
Leið 3 — sópa öllu sem bíður (mælt með fyrir stöðuvöktun — eitt kall í stað eins á hverja sendingu, vinsamlegt við 100 kalla/mín hraðatakmörkin):
curl "https://demoapi-is.justikal.com/external/api/v1/edeliveries?status=pending&limit=50" \
-H "Authorization: Bearer jkt_þinn_lykill"
Keyrðu þetta á áætlun — 15–30 mínútna fresti er meira en nóg fyrir flest skjalaferli.
# Formlega móttökuvottorðið (skilar 404 þar til afhendingu er lokið)
curl ".../edeliveries/{id}/deliveryReport" -H "Authorization: Bearer jkt_..." -o skyrsla.pdf
# Skjalið sjálft — notaðu type=signed þegar signed_at er komið
curl ".../edeliveries/{id}/pdf?type=signed" -H "Authorization: Bearer jkt_..." -o undirritad.pdf
Búið. Þetta er fullgild lágmarkstenging: eitt sendingarkall, ein stöðusópun á áætlun, eitt niðurhal við verklok.
Það sem þú ert að gera: þú gefur Justikal HTTPS-slóð á þínum vefþjóni sem POST-að er á í hvert sinn sem staða sendingar breytist — kerfið þitt bregst við á sekúndum í stað þess að bíða eftir næstu stöðuvöktun.
// Express-dæmi — mynstrið skiptir meira máli en umgjörðin
app.post("/webhooks/justikal", async (req, res) => {
res.sendStatus(200); // 1. svara strax
const { id } = req.body;
const delivery = await getDelivery(id); // 2. endursækja: API-ið er sannleikurinn
await handleStatusChange(delivery); // 3. þolið endurtekningu: sami atburður tvisvar = skaðlaust
});
curl -X POST "https://demoapi-is.justikal.com/external/api/v1/edeliveries" \
-H "Authorization: Bearer jkt_þinn_lykill" \
-F "pdfFile=@samningur.pdf" \
-F "recipientName=Jón Jónsson" \
-F "recipientCountry=IS" \
-F "recipientPersonalCode=1234567890" \
-F "recipientEmail=jon@example.com" \
-F "emailSubject=Samningurinn þinn er tilbúinn til undirritunar" \
-F "postbackUrl=https://forritid-thitt.is/webhooks/justikal" \
-F "expiresAt=2026-09-11" \
-F "lang=IS" \
-F "services[]=e_delivery_signature"
| Reitur | Hvað hann opnar |
|---|---|
disableNotifications: true | Justikal sendir ekkert — þú sendir
delivery_url (eða short_url) úr þínu eigin merkta kerfi.
Webhooks virka áfram. |
companyBrandingUsed: true | Þitt lógó á afhendingarsíðunni. |
senderNameHidden: true | Aðeins nafn fyrirtækisins sýnt, ekki einstaklings. |
lang | Tungumál tilkynninga (t.d. EN, IS). |
services | e_delivery_signature (viðtakandi undirritar
rafrænt), e_delivery_sms (SMS-leið — krefst recipientPhone +
smsText), e_delivery_seal (rafrænt innsiglað móttökuvottorð). Staðfestu við
Justikal hvað er innifalið í þínum samningi. |
<iframe> á þínu eigin
léni. Það er ítarlega tengingin hér að neðan.# Afturkalla sendingu sem hefur ekki verið opnuð (aðeins meðan status = pending)
curl -X POST ".../edeliveries/{id}/revoke" -H "Authorization: Bearer jkt_..."
# Full atburðaskrá, atburð fyrir atburð
curl ".../edeliveries/{id}/audit" -H "Authorization: Bearer jkt_..."
# GDPR: eyða + gera persónuupplýsingar ópersónugreinanlegar (endanleg aðgerð — notaðu revoke fyrir venjulega afturköllun)
curl -X DELETE ".../edeliveries/{id}" -H "Authorization: Bearer jkt_..."
Fyrir fyrirtæki sem vilja ekkert sýnilegt frá Justikal í ferli viðskiptavinarins: tölvupóstar koma frá þínu netfangi, vefslóðin er þín, og afhendingarferlið fer fram inn á þinni vefslóð. Justikal keyrir „hauslaust“ á bak við tjöldin.
Hvað þú ert að gera: sama stofnkall og alltaf, en með fánunum sem færa upplifun viðskiptavinarins yfir til þín. Þetta er nákvæmlega samsetningin sem notuð er í banka-/innheimtutengingum í rekstri:
curl -X POST "https://demoapi-is.justikal.com/external/api/v1/edeliveries" \
-H "Authorization: Bearer jkt_þinn_lykill" \
-F "pdfFile=@Bref_884.pdf" \
-F "recipientName=Jón Jónsson" \
-F "recipientCountry=IS" \
-F "recipientPersonalCode=1234567890" \
-F "recipientEmail=jon@example.com" \
-F "emailSubject=placeholder" \
-F "expiresAt=2027-01-10" \
-F "disableNotifications=true" \ # ★ Justikal sendir hvorki póst né SMS
-F "companyBrandingUsed=true" \ # þitt vörumerki á afhendingarsýninni
-F "senderNameHidden=true" \ # aðeins nafn fyrirtækis, enginn einstaklingur
-F "hasAdditionalSecurity=true" \
-F "postbackUrl=https://ws.fyrirtaeki.is/deliv-endpoint" \
-F "lang=IS"
Svarið inniheldur delivery_url — stjörnumerktu reitirnir
(disableNotifications og postbackUrl) eru lyklarnir sem allt
mynstrið hvílir á.
Það sem þú ert að gera: þú geymir delivery_url á móti þínu eigin
skjalanúmeri og birtir hana í iframe á síðu sem þú stjórnar. Vafri viðtakandans sýnir aldrei
Justikal-slóð:
<!-- https://skjol.fyrirtaeki.is/doc=73883 — þín síða, þitt vörumerki -->
<iframe
src="https://delivery.justikal.com/is/e9842df4-1b9a-4d43-bccc-a06d00245d6b?lang=is"
style="width:100%; height:100vh; border:0"
allow="publickey-credentials-get">
</iframe>
Bættu ?lang=is (eða en) við slóðina til að stýra tungumáli
innfelldu sýnarinnar. Auðkenningin með skilríkjum, birting skjalsins og staðfesting
afhendingar fara öll fram inni í rammanum.
Það sem þú ert að gera: þar sem Justikal þegir sendir þú viðtakandanum tölvupóst eða
SMS úr þínu eigin kerfi — þitt sendandanetfang, þitt sniðmát, þinn frestur í textanum — með
tengli á þína síðu úr skrefi C2 (ekki á hráu delivery_url-slóðina).
postbackUrl-webhookið (sama mynstur og í leið B) uppfærir
þínar eigin stöðubirtingar og keyrir þín næstu skref — áminningar frá þínu netfangi,
uppfærslur mála í grunnkerfinu þínu, sjálfvirkt niðurhal staðfestingar við afhendingu.
| Snertiflötur | Hvað viðskiptavinurinn sér |
|---|---|
| Tilkynning í pósti / SMS | Þig — þitt netfang, þitt sniðmát |
| Tengill & vafraslóð | Þig — skjol.fyrirtaeki.is |
| Skjalasíðan | Þig — þitt vörumerki, með afhendingarsýnina innfellda (fyrirtækismerking inni í rammanum, nafn sendanda falið) |
| Auðkenning með skilríkjum | Staðlað ferli Auðkennis inni í rammanum — lögbundið og notendur þekkja það |
| Móttökuvottorð (lagaleg sönnun) | Justikal-innsiglað PDF |
GET /edeliveries/{id}/deliveryReport þegar staðan er
delivered: heiti skjals og SHA-256 hakk þess, nafn og kennitala
viðtakanda, nákvæmur tímastimpill afhendingar (UTC), staðfestingaraðferð og útgefandi
skírteina (Auðkenni), auðkenni sendanda, sendingartími og frestur, einkvæmt númer
sendingarinnar — allt undir fullgildu rafrænu innsigli sem gerir skýrsluna
óbreytanlega.Allar villur hafa sama JSON-snið — error-kóði ásamt læsilegum
message-texta sem nefnir reitinn eða regluna sem um ræðir:
| Staða | Merking | Lausn |
|---|---|---|
400 | Reitur vantar/ógildur eða viðskiptaregla brotin | Lestu message, lagaðu kallið, reyndu aftur |
401 | Lykil vantar eða hann er ógildur | Athugaðu Authorization: Bearer jkt_... hausinn |
404 | Óþekkt auðkenni — eða skýrslan ekki tilbúin enn | Staðfestu auðkennið; fyrir skýrslur, bíddu eftir delivered |
429 | Yfir 100 köllum/mínútu | Bíddu í Retry-After sekúndur |
500 | Villa hjá Justikal | Reyndu aftur með vaxandi bið; hafðu samband við þjónustu ef viðvarandi |
api-is.justikal.com500 endurreynt með vaxandi bið;
Retry-After virt við 429.hasAdditionalSecurity ákveðið fyrir hvert notkunartilvik (sjálfgefið
true = auðkenni borið saman við kennitölu).services) í þínum samningi staðfestar við Justikal.