Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beskrivning

Generisk tjänst för hantering av avtal (arrendeavtal t ex).

I version 1 implementeras följande:

GET:

  • leaseContractcontracts/{personId} - hämta alla avtal för en person

  • leaseContractcontracts/{organizationNumber} - hämta alla avtal för en organisation

  • leaseContractcontracts/{propertyDesignation} - hämta alla avtal för en fastighet

  • leaseContractcontracts/{geoReference} - hämta ett/alla avtal baserat på en geografisk referens

  • leaseContractcontracts/{id} - hämta ett avtal baserat på avtalets id

  • leaseContractcontracts/{externalReferanceId} - hämta ett avtal baserat på avtalets historiska id

  • leaseContractcontracts/{end} - hämta alla avtal baserat på avtalets slutdatum

  • leaseContractcontracts/{leaseType} - hämta alla avtal baserat på avtaletstyp

POST:

  • leaseContractcontracts/ - skapa ett avtal

PATCH:

  • leaseContractcontracts/{id} - uppdatera ett avtal

  • leaseContractcontracts/{id}/terminate - avsluta ett avtal

Livscykelstatus

Design

Lösningsbeskrivning

Gliffy
imageAttachmentIdatt225312771
macroId72c1dffe-20f3-4069-8499-2e378a8f654d
baseUrlhttps://sundsvall.atlassian.net/wiki
nameagreementAPI
diagramAttachmentIdatt225345537
containerId221904957
timestamp1616422121082

Datamodell

Gliffy
imageAttachmentIdatt266567684
macroId00ad94ed-267c-4a5a-b0d3-cae64b4f3160
baseUrlhttps://sundsvall.atlassian.net/wiki
displayNameContract datamodell
nameContract informationsmodell
diagramAttachmentIdatt266502160
containerId221904957
timestamp1617082332223

Hantering av personuppgifter

<Vilka personuppgifter hanteras och varför?>

API specifikation (draft)

/GET

contract/template/{id} - hämta avtalsmall

contract/{personId} - hämta alla avtal för en person

contract/{organisationNumber} - hämta alla avtal för en organisation

contract/{geoReference} - hämta ett avtal baserat på en geografisk referens

contract/{id} - hämta ett avtal

contract/{id}/asPdf - hämta ett avtal på pdf-format

/POST

contract/ - skapa ett avtal

contract/{id}/sign - trigga en avtalssignering

contract/{id}/archive - trigga en arkivering

/PATCH

contract/{id} - uppdatera ett avtal

contract/{id}/signReminder - skicka en signeringspåminnelse

/DELETE

contract/{id} - radera ett avtal

Exempel på anrop

Skapa kontrakt

POST /contracts

Request body:

https://sundsvall.atlassian.net/wiki/spaces/SK/pages/221904957/Contract#ContractHolder-objektet

Hämta kontrakt

GET /contracts

Tillgängliga query-parametrar:

  • end

  • externalReferenceId

  • landLeaseType

  • organizationNumber

  • personId

  • propertyDesignation

Response body:

https://sundsvall.atlassian.net/wiki/spaces/SK/pages/221904957/Contract#ContractHolder-objektet

Hämta kontrakt med kontrakt-ID

GET /contracts/{id}

Response body:

https://sundsvall.atlassian.net/wiki/spaces/SK/pages/221904957/Contract#ContractHolder-objektet

Uppdatera kontrakt

PATCH /contracts/{id}

Request body:

De fält som ska uppdateras.

Response body:

https://sundsvall.atlassian.net/wiki/spaces/SK/pages/221904957/Contract#ContractHolder-objektet

Avsluta kontrakt

PATCH /contracts/{id}

Request body:

Code Block
languagejson
{
  "landLeaseContracts": [
    {
      "status": "TERMINATED"
    }
  ]
}

Response body:

https://sundsvall.atlassian.net/wiki/spaces/SK/pages/221904957/Contract#ContractHolder-objektet

ContractHolder-objektet

Detta är ett objekt som kommer innehålla listor med alla kontraktstyper. Detta kommer innebära att vi kan lägga till nya kontraktstyper utan att bryta det befintliga API’t samt att vi kan minimera antalet sökvägar till resurserna.

Strukturen blir enligt följande:

Code Block
languagejson
{
  "firstContractType": [
    {
      "field" : "value"
    }
  ],
  "secondContractType": [
    {
      "field" : "value"
    }
  ],
  "thirdContractType": [
    {
      "field" : "value"
    }
  ]
}

Exempel (endast en typ av kontrakt hittills):

Code Block
languagejson
{
  "landLeaseContracts": [
    {
      "version": 0,
      "status": "ACTIVE",
      "caseId": 100,
      "indexTerms": "string",
      "description": "string",
      "additionalTerms": "string",
      "stakeholders": [
        {
          "type": "ASSOCIATION",
          "roles": [
            "ARRENDATOR"
          ],
          "organizationName": "Sundsvalls kommun",
          "organizationNumber": "212000-2411",
          "firstName": "Test",
          "lastName": "Testorsson",
          "personId": "40f14de9-815d-44a5-a34d-b1d38b628e07",
          "phoneNumber": "0701231212",
          "emailAddress": "test.testorsson@test.se",
          "address": {
            "streetAddress": "Testgatan 1A",
            "postalCode": "841 76",
            "town": "Sundsvall",
            "country": "Sweden",
            "attention": "Test Testorsson"
          },
          "billingAddress": {
            "streetAddress": "Testgatan 1A",
            "postalCode": "841 76",
            "town": "Sundsvall",
            "country": "Sweden",
            "attention": "Test Testorsson"
          }
        }
      ],
      "attachments": [
        {
          "category": "KONTRAKT",
          "name": "Arrendekontrakt",
          "extension": ".pdf",
          "mimeType": "application/pdf",
          "note": "Kontraktet var lite skrynkligt vid inskanningen.",
          "file": "string"
        }
      ],
      "landLeaseType": "LEASEHOLD",
      "leaseholdType": "AGRICULTURE",
      "usufructType": "FISHING",
      "externalReferenceId": "string",
      "propertyDesignation": "Skalvik 1:13",
      "leaseDuration": 3,
      "rental": 4350,
      "start": "2020-01-01",
      "end": "2022-01-01",
      "periodOfNotice": 90,
      "area": 150
    }
  ]
}

Säkerhetsklassning

Säkerhetsklass TBD

Autentiseringsmetod: Oauth2

(Ref: Säkerhetsklassning av APIer )

API-ägare

<Kontaktuppgifter till den verksamhet som äger APIets livscykel>

Teknisk ägare

https://sundsvall.atlassian.net/wiki/spaces/API

För tekniska frågor:

Länkar

<Länkar till dev-portal;

  • Test

  • Sandbox

  • Produktion>

FAQ

<FAQ>