Versions Compared

Key

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

Beskrivning

Hämta Hämtar bolagengagemang för en privatperson från Bolagsverket samt bolagsinformation för ett specifikt bolag.

I steg två skall tjänsten byggas ut mot Bolagsverkets Mina Ombud.

I ett första steg anropar vi Bolagsverkets engagemang-tjänst för att hämta vilka bolagsengagemang en privatperson har.

Då alla anrop mot bolagsverket innebär en kostnad, cachas alla Alla lyckade svar från bolagsverket cachas i 30 minuter.

Livscykelstatus

DesignI produktion

Lösningsbeskrivning

Gliffy

imageAttachmentIdatt810057752

macroId

8e68bf78

8350b3f0-

b11f

19a2-

46cc

4c54-

829c

8d10-

91df332effc8baseUrlhttps://sundsvall.atlassian.net/wiki

e6586ba6bd15
name

BusinessEngagements

businessEngagement

diagramAttachmentIdatt810778625containerId793640981timestamp1640605330419

pagePin1

Hantering av personuppgifter


API specifikation


Swagger uiopen-api
showCommonExtensionstrue
deepLinkingtrue
supportedSubmitMethodsnone
locationurl
showExtensionstrue
urlhttps://api-test.sundsvall.se/businessengagements/1.0/api-docs
openapi: 3.0.1
info:
  title: Business Engagements API
  contact: {}
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
  version: "1.0"
servers:
- url: https://api-test.sundsvall.se/businessengagements/sandbox/1.0/
tags:
- name: Business Engagements
  description: En tjänst som hämtar en persons företagsengagemang
paths:
  /engagements/{partyId}:
    get:
      tags:
      - Business Engagements
      operationId: getEngagements
      parameters:
      - name: partyId
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier for a person
          example: 6a5c3d04-412d-11ec-973a-0242ac130003
      - name: personalName
        in: query
        required: true
        schema:
          type: string
          description: The first and surname of the person
      - name: serviceName
        in: query
        required: true
        schema:
          type: string
          description: Name of the system initiating the request
          example: Mina Sidor
      responses:
        "500":
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        "200":
          description: Successful Operation
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BusinessEngagementsResponse'
        "204":
          description: No Content
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/BusinessEngagementsResponse'
        "400":
          description: Bad Request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
        "404":
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Problem'
components:
  schemas:
    Problem:
      type: object
      properties:
        instance:
          type: string
          format: uri
        type:
          type: string
          format: uri
        parameters:
          type: object
          additionalProperties:
            type: object
        status:
          $ref: '#/components/schemas/StatusType'
        title:
          type: string
        detail:
          type: string
    StatusType:
      type: object
      properties:
        reasonPhrase:
          type: string
        statusCode:
          type: integer
          format: int32
    BusinessEngagementsResponse:
      required:
      - status
      type: object
      properties:
        engagements:
          type: array
          items:
            $ref: '#/components/schemas/Engagement'
        statusDescriptions:
          type: object
          additionalProperties:
            type: string
            description: "In case fetching one or more engagement failed, this will\
              \ show why it failed. There may be more than one description if several\
              \ engagements failed."
            example: Timeout
          description: "In case fetching one or more engagement failed, this will\
            \ show why it failed. There may be more than one description if several\
            \ engagements failed."
          example: Timeout
        status:
          type: string
          description: If fetching all engagements went "OK" or "NOK". A "NOK" may
            still return engagements but indicates that the information is incomplete.
          example: OK
          enum:
          - OK
          - NOK
    Engagement:
      type: object
      properties:
        organizationName:
          type: string
          description: Name of the organization
          example: Styrbjörns båtar
        organizationNumber:
          type: string
          description: "Organization number, may also be personal number in case of\
            \ enskild firma"
          example: "2021005448"
        organizationId:
          type: string
          description: "Unique id for the organization (UUID), NOT implemented yet!"
          example: "2021005448"
      description: Represents a persons business engagement.
  securitySchemes: {}

Alla anrop mot bolagsverket har två tvingande parametrar vilket även är tvingande in i detta API förutom partyId:

  1. serviceName - Det system som anropet initierades ifrån.

  2. personalName - Namnet på den person som företagen skall hämtas för.

Hämta företagsengagemang (/engagements


Hämta företagsengagemang (/engagements/{partyId})

Request: /engagements/6a5c3d04-412d-11ec-973a-0242ac130003?personalName=Jane%20Doe&serviceName=Kommunen

Code Block
languagejson
{
	"partyId": "6a5c3d04-412d-11ec-973a-0242ac130003",
	"personalName": "Jane Doe",
	"serviceName": "Kommunen"
}


Response:

{ "engagements": [ { "organizationName": "Fritjofs blommor och blad", "organizationNumber": "5561234567", "organizationId": " 793afd03-3be5-4e14-863f-a61d4859841d" }, { "organizationName": "Vanja Jumpers plåt", "organizationNumber": "5561234568" } ] "statusDescriptions": { "5561234568": "Couldn't fetch guid for organization number" }, "status": "NOK" }
Code Block
languagejson

Förtydligande response-parametrar:

  • engagements: Kan innehålla 0 → n antal engagemang personen har, varje objekt innehåller organisationsnamn och organisationsnummer.

    • organizationId: unikt uuid/guid för organisationsnumret, om det inte återfinns i LegalEntity utelämnas denna helt.

  • statusDescriptions: Innehåller eventuella fel i samband med hämtandet av bolagsengagemang eller organizationId. T.ex. att underliggande system (från bolagsverket) överskred begärd svarstid eller att det inte gick att hämta organizationId. Typen är en “Map<String, String>”.

  • status: Visar om personens alla engagemang kunde hämtas utan fel. Vid eventuella fel sätts denna till “NOK” och det reflekteras även i parametern statusDescriptions genom att varje felbeskrivning läggs till.


Hämta företagsinformation (/information/{partyId})

Request: /information/6a5c3d04-412d-11ec-973a-0242ac130003?organizationName=Testbusiness

Response:

Code Block
languagejson

Beroende på svaret från Bolagsverket kan det saknas information i en eller flera fält.
Istället för att invalidera hela svaret indikeras det att information inte är komplett / kunde hämtas från bolagsverket i errorInformation-fältet, med tillhörande felmeddelande om varför information inte gick att hämta.
errorDescription är en Map där nyckeln är felkoden och värdet är felbeskrivningen från bolagsverket.

Testdata

Bolagsverket har lagt upp fiktiva personnummer med olika bolagsengagemang, partyId för dessa personer finns upplagda i testmiljön för CitizenMapping och mappar till följande dokument.

Personnummer

partyId

198104112381

65694a6d-5f5d-4bb6-b256-3b81cb419b60

198101032384

d1eda732-5aec-45e2-a673-4debd42b2f04

198101052382

d4554399-91bb-4258-a7a7-afb9f265dd66

198101012386

740c013c-f979-4ad3-a073-42a6d5255e3a

198101042383

5a4afbf9-8897-42a8-aaf0-de9530849f7c

193403223328

af99121e-4dfc-477c-8b02-daf70603b55f

198104152387

ea4a0b53-fa9a-42a6-89a6-7ab1431a014f


Säkerhetsklassning

Säkerhetsklass 1

Autentiseringsmetod: Oauth2

(Ref: Säkerhetsklassning av APIer )

API-ägare

<Kontaktuppgifter till den verksamhet som äger APIets livscykel>N/A

Teknisk ägare

API-teamet

Ansvarigt team: Team DynastyUnmasked

För tekniska frågor:mailto:teamdynasty@sundsvall teamunmasked@sundsvall.se

Länkar