Verkstofa › API

API fyrir önnur kerfi

Önnur kerfi (bókhaldsstofur, vefverslanir, tímaskráning) geta lesið gögn fyrirtækisins í Verkstofu og búið til viðskiptavini, vörur og drög að reikningum. REST með JSON. Vélræn lýsing: openapi.json (OpenAPI 3.1).

Síðan er búin til sjálfkrafa úr kerfinu sjálfu (2026-10-28) – hún sýnir alltaf nákvæmlega það sem API-ið gerir.

Öryggi. Reikningar eru aldrei gefnir út, sendir, bókaðir eða greiddir um API – aðeins drög sem innskráður notandi gefur út í Verkstofu. Engar kennitölur starfsmanna, bankareikningar, laun eða aðgangslyklar fara um API. Fyrirtækið ræðst af lyklinum, aldrei af beiðninni. Hvert kall er skráð (aðferð, slóð, staða, tími – ekki gögnin).

Sandkassi – prófaðu strax

Sandkassalykill bendir á Sýnishorn-fyrirtækið: gervigögn, sömu slóðir og reglur. Hann gildir í 30 daga, 30 köll á mínútu, og sér ekkert annað fyrirtæki. Reikningar sem þú býrð til verða drög í Sýnishorni.

  1. Skráðu þig inn í Verkstofu (eigandi, stjórnandi eða bókari).
  2. Opnaðu Uppsetning → API-lyklar → Sandkassalykill og smelltu á Búa til.
  3. Afritaðu lykilinn – hann sést aðeins einu sinni.
curl -H "Authorization: Bearer $SANDKASSALYKILL" "https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/vorur?staerd=2"

Lykill og réttindi

Eigandi býr til lykil í Uppsetning → API-lyklar, gefur honum heiti og velur réttindi. Verkstofa geymir aðeins fingrafar (SHA-256). Afturkalla má hvenær sem er.

Authorization: Bearer vs_<48 stafir>     (eða hausinn X-Api-Lykill)

Grunnslóð: https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1

RéttindiLeyfir
vidskiptavinir:lesGET /vidskiptavinir
vidskiptavinir:skrifaPOST /vidskiptavinir
vorur:lesGET /vorur
vorur:skrifaPOST /vorur
birgdastada:lesGET /birgdastada
reikningar:lesGET /reikningar
reikningar:skrifaPOST /reikningar
verk:lesGET /verk
timar:lesGET /timar

Slóðir (lesa)

Viðskiptavinir

GET /vidskiptavinir · GET /vidskiptavinir/{id}

FæribreytaLýsing
sidaSíða (frá 1)
staerdStærð síðu (1–200, sjálfgefið 50)
leitFrjáls leit
breytt_eftirAðeins breytt eftir þessum tíma (ISO 8601)
curl -H "Authorization: Bearer $LYKILL" "https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/vidskiptavinir?staerd=2"

Dæmi um svar (sandkassi, gervigögn):

{
  "gogn": [
    {
      "id": "6e39eaae-7b0e-49d0-bc9a-26591290df63",
      "land": "IS",
      "nafn": "Byggingafélagið Hlíð ehf",
      "simi": null,
      "postnr": "201",
      "stadur": "Kópavogur",
      "virkur": true,
      "netfang": "netfang@daemi.is",
      "stofnad": "2026-10-20T17:10:00.629992+00:00",
      "uppfaert": "2026-10-20T17:10:00.629992+00:00",
      "kennitala": "0000000000",
      "ytra_numer": null,
      "heimilisfang": "Hlíðarsmári 40",
      "netfang_reikninga": null,
      "greidslufrestur_dagar": 30
    },
    {
      "id": "5fc5dc15-ae08-4bda-919f-78e30b272836",
      "land": "IS",
      "nafn": "Einar Dæmason",
      "simi": null,
      "postnr": "108",
      "stadur": "Reykjavík",
      "virkur": true,
      "netfang": "netfang@daemi.is",
      "stofnad": "2026-10-20T17:10:00.629992+00:00",
      "uppfaert": "2026-10-20T17:10:00.629992+00:00",
      "kennitala": "0000000000",
      "ytra_numer": null,
      "heimilisfang": "Melgerði 3",
      "netfang_reikninga": null,
      "greidslufrestur_dagar": 14
    }
  ],
  "sida": 1,
  "fjoldi": 8,
  "staerd": 2,
  "naesta_sida": 2
}

Vörur

GET /vorur · GET /vorur/{id}

FæribreytaLýsing
sidaSíða (frá 1)
staerdStærð síðu (1–200, sjálfgefið 50)
leitFrjáls leit
breytt_eftirAðeins breytt eftir þessum tíma (ISO 8601)
numerVörunúmer (nákvæmt)
curl -H "Authorization: Bearer $LYKILL" "https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/vorur?staerd=2"

Dæmi um svar (sandkassi, gervigögn):

{
  "gogn": [
    {
      "id": "5f14974b-f0cb-408a-9d04-5f3a4d3f5437",
      "virk": true,
      "heiti": "Rakavarnardúkur 0,2 mm (rúlla 50 m²)",
      "numer": "EIN-DUKUR",
      "eining": "rl",
      "i_bodi": true,
      "lysing": null,
      "tegund": "vara",
      "vsk_pr": 24,
      "stofnad": "2026-10-20T17:10:00.629992+00:00",
      "soluverd": 14900,
      "uppfaert": "2026-10-20T17:13:07.987883+00:00",
      "birgdastyrd": true,
      "strikamerki": [
        "5690001197975"
      ]
    },
    {
      "id": "1315c683-5800-4720-a171-bef51b59d24e",
      "virk": true,
      "heiti": "Steinull 100 mm (pk 3,6 m²)",
      "numer": "EIN-STEIN",
      "eining": "pk",
      "i_bodi": true,
      "lysing": null,
      "tegund": "vara",
      "vsk_pr": 24,
      "stofnad": "2026-10-20T17:10:00.629992+00:00",
      "soluverd": 5900,
      "uppfaert": "2026-10-20T17:13:07.987883+00:00",
      "birgdastyrd": true,
      "strikamerki": [
        "5690001190056"
      ]
    }
  ],
  "sida": 1,
  "fjoldi": 28,
  "staerd": 2,
  "naesta_sida": 2
}

Birgðastaða

GET /birgdastada

FæribreytaLýsing
sidaSíða (frá 1)
staerdStærð síðu (1–200, sjálfgefið 50)
numerVörunúmer (nákvæmt)
vara_idAuðkenni vöru
curl -H "Authorization: Bearer $LYKILL" "https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/birgdastada?staerd=2"

Dæmi um svar (sandkassi, gervigögn):

{
  "gogn": [
    {
      "heiti": "Rakavarnardúkur 0,2 mm (rúlla 50 m²)",
      "lager": 7,
      "numer": "EIN-DUKUR",
      "stadir": [
        {
          "lager": 7,
          "stadur": "Lager",
          "tiltaekt": 7
        }
      ],
      "vara_id": "5f14974b-f0cb-408a-9d04-5f3a4d3f5437",
      "fratekid": 0,
      "tiltaekt": 7,
      "vaentanlegt": 0
    },
    {
      "heiti": "Steinull 100 mm (pk 3,6 m²)",
      "lager": 85,
      "numer": "EIN-STEIN",
      "stadir": [
        {
          "lager": 85,
          "stadur": "Lager",
          "tiltaekt": 85
        }
      ],
      "vara_id": "1315c683-5800-4720-a171-bef51b59d24e",
      "fratekid": 0,
      "tiltaekt": 85,
      "vaentanlegt": 0
    }
  ],
  "sida": 1,
  "fjoldi": 27,
  "staerd": 2,
  "naesta_sida": 2
}

Reikningar

GET /reikningar · GET /reikningar/{id}

FæribreytaLýsing
sidaSíða (frá 1)
staerdStærð síðu (1–200, sjálfgefið 50)
breytt_eftirAðeins breytt eftir þessum tíma (ISO 8601)
fraFrá dags. (ÁÁÁÁ-MM-DD)
tilTil dags. (ÁÁÁÁ-MM-DD)
stadaStaða
vidskiptavinur_idAuðkenni viðskiptavinar
curl -H "Authorization: Bearer $LYKILL" "https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/reikningar?staerd=2"

Dæmi um svar (sandkassi, gervigögn):

{
  "gogn": [
    {
      "id": "3ee6d374-9893-4e0e-a9c0-3cb3c6b90806",
      "vsk": 3576,
      "dags": "2026-10-20",
      "numer": 20,
      "stada": "greitt",
      "eindagi": null,
      "stofnad": "2026-10-20T17:13:07.987883+00:00",
      "upphaed": 18476,
      "verk_id": null,
      "tilvisun": "Pöntun 11",
      "uppfaert": "2026-10-20T17:13:07.987883+00:00",
      "gjalddagi": "2026-11-19",
      "greitt_kl": "2026-10-20T17:13:07.987883+00:00",
      "kredit_fyrir": null,
      "pontunarnumer": null,
      "upphaed_an_vsk": 14900,
      "vidskiptavinur": "Staðgreiðsla",
      "vidskiptavinur_id": "236733ad-7102-4349-bfdd-d49d9e2c3ae5"
    },
    {
      "id": "205dceb8-d89a-4746-8aaa-8eab5c03d72a",
      "vsk": 4152,
      "dags": "2026-10-20",
      "numer": 19,
      "stada": "greitt",
      "eindagi": null,
      "stofnad": "2026-10-20T17:13:07.987883+00:00",
      "upphaed": 21452,
      "verk_id": null,
      "tilvisun": "Pöntun 10",
      "uppfaert": "2026-10-20T17:13:07.987883+00:00",
      "gjalddagi": "2026-11-19",
      "greitt_kl": "2026-10-20T17:13:07.987883+00:00",
      "kredit_fyrir": null,
      "pontunarnumer": null,
      "upphaed_an_vsk": 17300,
      "vidskiptavinur": "Staðgreiðsla",
      "vidskiptavinur_id": "236733ad-7102-4349-bfdd-d49d9e2c3ae5"
    }
  ],
  "sida": 1,
  "fjoldi": 20,
  "staerd": 2,
  "naesta_sida": 2
}

Einn reikningur með línum:

{
  "id": "88c33ee4-434b-4fca-850a-8761326eac62",
  "vsk": 336096,
  "dags": "2026-10-20",
  "linur": [
    {
      "rod": 1,
      "magn": 112,
      "eining": "klst",
      "lysing": "Dagvinna",
      "vsk_pr": 24,
      "upphaed": 1332800,
      "vara_id": null,
      "vorunumer": null,
      "einingarverd": 11900
    },
    {
      "rod": 2,
      "magn": 4,
      "eining": "klst",
      "lysing": "Yfirvinna",
      "vsk_pr": 24,
      "upphaed": 67600,
      "vara_id": null,
      "vorunumer": null,
      "einingarverd": 16900
    }
  ],
  "numer": 1,
  "stada": "greitt",
  "eindagi": null,
  "stofnad": "2026-10-20T16:47:54.943271+00:00",
  "upphaed": 1736496,
  "verk_id": 1000000134,
  "tilvisun": null,
  "uppfaert": "2026-10-20T16:47:54.943271+00:00",
  "gjalddagi": "2026-11-19",
  "greitt_kl": "2026-10-20T00:00:00+00:00",
  "kredit_fyrir": null,
  "pontunarnumer": null,
  "upphaed_an_vsk": 1400400,
  "vidskiptavinur": "Húsfélagið Lyngás 12",
  "vidskiptavinur_id": null
}

Verk

GET /verk · GET /verk/{id}

FæribreytaLýsing
sidaSíða (frá 1)
staerdStærð síðu (1–200, sjálfgefið 50)
leitFrjáls leit
breytt_eftirAðeins breytt eftir þessum tíma (ISO 8601)
curl -H "Authorization: Bearer $LYKILL" "https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/verk?staerd=2"

Dæmi um svar (sandkassi, gervigögn):

{
  "gogn": [
    {
      "id": 1000000138,
      "nafn": "Skólinn í Dalnum – klæðning",
      "stada": "Í vinnslu",
      "verknr": "V5",
      "stofnad": "2026-10-20T16:47:54.943271+00:00",
      "uppfaert": "2026-10-21T17:34:24.544966+00:00",
      "vidskiptavinur": "Skólinn í Dalnum",
      "aaetlud_verklok": null,
      "vidskiptavinur_id": "55765b00-6270-4fe4-a35a-47544daa99f3"
    },
    {
      "id": 1000000137,
      "nafn": "Hótel Fjörður – þakskipti",
      "stada": "Í vinnslu",
      "verknr": "V4",
      "stofnad": "2026-10-20T16:47:54.943271+00:00",
      "uppfaert": "2026-10-21T17:34:24.544966+00:00",
      "vidskiptavinur": "Hótel Fjörður ehf",
      "aaetlud_verklok": null,
      "vidskiptavinur_id": "e154923c-518a-4683-92c3-ec83cfb04d95"
    }
  ],
  "sida": 1,
  "fjoldi": 5,
  "staerd": 2,
  "naesta_sida": 2
}

Tímar

GET /timar

FæribreytaLýsing
sidaSíða (frá 1)
staerdStærð síðu (1–200, sjálfgefið 50)
fraFrá dags. (ÁÁÁÁ-MM-DD) – sjálfgefið síðustu 31 dagur, mest 366
tilTil dags. (ÁÁÁÁ-MM-DD)
verk_idAuðkenni verks
curl -H "Authorization: Bearer $LYKILL" "https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/timar?staerd=2"

Dæmi um svar (sandkassi, gervigögn):

{
  "gogn": [
    {
      "id": "syn-61-f9e86b",
      "ut": "2026-09-28T16:00:00+00:00",
      "inn": "2026-09-28T08:00:00+00:00",
      "dags": "2026-09-28",
      "klst": 8,
      "verk": "Hótel Fjörður – þakskipti",
      "dv_klst": 8,
      "verk_id": 1000000137,
      "yv_klst": 0,
      "aukaverk": false,
      "verklysing": null,
      "starfsmadur": "Jón Smiður",
      "starfsmadur_id": "m1000121"
    },
    {
      "id": "syn-62-551130",
      "ut": "2026-09-28T18:00:00+00:00",
      "inn": "2026-09-28T08:00:00+00:00",
      "dags": "2026-09-28",
      "klst": 10,
      "verk": "Skólinn í Dalnum – klæðning",
      "dv_klst": 8,
      "verk_id": 1000000138,
      "yv_klst": 2,
      "aukaverk": false,
      "verklysing": null,
      "starfsmadur": "Anna Málari",
      "starfsmadur_id": "m1000122"
    }
  ],
  "sida": 1,
  "fjoldi": 64,
  "staerd": 2,
  "naesta_sida": 2
}

Síðuskipting: naesta_sida er null á síðustu síðu.

Búa til (POST)

Viðskiptavinir

POST /vidskiptavinir

Reitir: nafn, kennitala, netfang, netfang_reikninga, simi, gsm, heimilisfang, heimilisfang2, postnr, stadur, land, tengilidur, greidslufrestur_dagar, ytra_numer

curl -X POST -H "Authorization: Bearer $LYKILL" -H "Content-Type: application/json" \
  -d '{"nafn": "Dæmi ehf", "kennitala": "0000000000", "netfang": "netfang@daemi.is", "postnr": "101"}' \
  https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/vidskiptavinir

Vörur

POST /vorur

Reitir: numer, heiti, lysing, eining, soluverd, vsk_pr, tegund, strikamerki

curl -X POST -H "Authorization: Bearer $LYKILL" -H "Content-Type: application/json" \
  -d '{"numer": "V-100", "heiti": "Skrúfur 5×50", "eining": "pk", "soluverd": 1990, "vsk_pr": 24, "tegund": "vara"}' \
  https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/vorur

Reikningar

POST /reikningar – alltaf drög

Reitir: vidskiptavinur_id, linur, tilvisun, pontunarnumer, lysing, gjalddagi, verk_id

Línur (linur, 1–500): vara_id, vorunumer, lysing, magn, einingarverd, vsk_pr, afslattur_pr, eining

curl -X POST -H "Authorization: Bearer $LYKILL" -H "Content-Type: application/json" \
  -d '{"vidskiptavinur_id": "<uuid>", "tilvisun": "Verk 42", "linur": [{"vorunumer": "V-100", "magn": 2}, {"lysing": "Vinna", "magn": 3, "einingarverd": 9500, "vsk_pr": 24}]}' \
  https://uijopyskwnozqbqsmpho.supabase.co/functions/v1/api/v1/reikningar

Villukóðar

HTTPTexti (dæmi)
400Tímabil má mest vera 366 dagar · Efni þarf að vera JSON-hlutur · tegund er vara eða thjonusta · vsk_pr er 0, 11 eða 24
401Lykill vantar eða er ógildur · Lykillinn er útrunninn – búðu til nýjan sandkassalykil
403Sandkassalykill gildir aðeins á sýnishornsfyrirtæki · API er ekki opið fyrir þetta fyrirtæki · Lykillinn hefur ekki réttindin
404Óþekkt slóð · Finnst ekki
405POST er aðeins leyft á /v1/vidskiptavinir, /v1/vorur og /v1/reikningar · Aðeins GET og POST · Aðferð ekki leyfð á þessari slóð
409Viðskiptavinur með þessa kennitölu er þegar til · Vörunúmer er þegar til
413Efni of stórt (mest 1 MB)
422Viðskiptavinur finnst ekki · Vörunúmer finnst ekki:
429Of margar rangar tilraunir – reyndu aftur síðar · Hámark
500Villa – reyndu aftur síðar

Hraðatakmörk

Spurningar: hjálparinn í Verkstofu eða Leiðbeiningar.