Versions Compared
Version | Old Version 48 | New Version Current |
---|---|---|
Changes made by | ||
Saved on |
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 |
---|
|
|
|
|
|
|
|
|
Hantering av personuppgifter
API specifikation
Expand | ||
---|---|---|
| ||
eyJ4NXQiOiJPV1l4TkRJd016ZGhPREk1WVdRNU1EZGxPREkzT1RZeU1qTXpZemN4TW1NMU0yRTFaREF5WXpGa01qQmpNV0ZrTkROa1pXVTFPRFk1T1dJMlpHRTBZZyIsImtpZCI6ImdhdGV3YXlfY2VydGlmaWNhdGVfYWxpYXMiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJQRVJTT05BTFwvV1NPMl9NU19zaWduYXRvcnlAY2FyYm9uLnN1cGVyIiwiYXBwbGljYXRpb24iOnsib3duZXIiOiJQRVJTT05BTFwvV1NPMl9NU19zaWduYXRvcnkiLCJ0aWVyUXVvdGFUeXBlIjpudWxsLCJ0aWVyIjoiVW5saW1pdGVkIiwibmFtZSI6IkRlZmF1bHRBcHBsaWNhdGlvbiIsImlkIjoyNSwidXVpZCI6ImYwZDU4MTc3LWVlNzctNDNjOC1iNDM0LTBmNDQyOTBkMWU5ZiJ9LCJpc3MiOiJodHRwczpcL1wvYXBpLWltLXRlc3Quc3VuZHN2YWxsLnNlOjQ0M1wvb2F1dGgyXC90b2tlbiIsInRpZXJJbmZvIjp7IkJyb256ZSI6eyJ0aWVyUXVvdGFUeXBlIjoicmVxdWVzdENvdW50IiwiZ3JhcGhRTE1heENvbXBsZXhpdHkiOjAsImdyYXBoUUxNYXhEZXB0aCI6MCwic3RvcE9uUXVvdGFSZWFjaCI6dHJ1ZSwic3Bpa2VBcnJlc3RMaW1pdCI6MCwic3Bpa2VBcnJlc3RVbml0IjpudWxsfSwiVW5saW1pdGVkIjp7InRpZXJRdW90YVR5cGUiOiJyZXF1ZXN0Q291bnQiLCJncmFwaFFMTWF4Q29tcGxleGl0eSI6MCwiZ3JhcGhRTE1heERlcHRoIjowLCJzdG9wT25RdW90YVJlYWNoIjp0cnVlLCJzcGlrZUFycmVzdExpbWl0IjowLCJzcGlrZUFycmVzdFVuaXQiOm51bGx9fSwia2V5dHlwZSI6IlNBTkRCT1giLCJwZXJtaXR0ZWRSZWZlcmVyIjoiIiwic3Vic2NyaWJlZEFQSXMiOlt7InN1YnNjcmliZXJUZW5hbnREb21haW4iOiJjYXJib24uc3VwZXIiLCJuYW1lIjoiQnVzaW5lc3NFbmdhZ2VtZW50cyIsImNvbnRleHQiOiJcL2J1c2luZXNzZW5nYWdlbWVudHNcLzEuMCIsInB1Ymxpc2hlciI6IlBFUlNPTkFMXC9tYXIxNGhhbiIsInZlcnNpb24iOiIxLjAiLCJzdWJzY3JpcHRpb25UaWVyIjoiQnJvbnplIn0seyJzdWJzY3JpYmVyVGVuYW50RG9tYWluIjoiY2FyYm9uLnN1cGVyIiwibmFtZSI6IkNpdGl6ZW5NYXBwaW5nIiwiY29udGV4dCI6IlwvY2l0aXplbm1hcHBpbmdcLzEuMCIsInB1Ymxpc2hlciI6IlBFUlNPTkFMXC9qb2UxNGxpbiIsInZlcnNpb24iOiIxLjAiLCJzdWJzY3JpcHRpb25UaWVyIjoiVW5saW1pdGVkIn0seyJzdWJzY3JpYmVyVGVuYW50RG9tYWluIjoiY2FyYm9uLnN1cGVyIiwibmFtZSI6IkxlZ2FsRW50aXR5IiwiY29udGV4dCI6IlwvbGVnYWxlbnRpdHlcLzEuMCIsInB1Ymxpc2hlciI6IlBFUlNPTkFMXC9qb2UxNGxpbiIsInZlcnNpb24iOiIxLjAiLCJzdWJzY3JpcHRpb25UaWVyIjoiVW5saW1pdGVkIn1dLCJwZXJtaXR0ZWRJUCI6IiIsImlhdCI6MTY2MDcyMDE3NiwianRpIjoiM2Q3ZDYxZTgtMzY3YS00YTgwLWJjNDItM2M5N2Y5MjQzNjVkIn0=.rOzKm1CCSVC8PYy5Rb1hOOkDWtNgxMOrBnXUPo1g1u2k8yAoAzPHjskzbXgUdllXFNiJSnDTYg4imGnUv_4o6OF4yoCALLD31OxbmSkosYLnZ-hnVZToZ42mnouIuwsmaTTnuEZSa3GB3eL3K9k5NnjZu-hw_jvAN10cekvYp5JLMDUNI6STPMEtMCXo_jiB-UYbisgUh-2JWSBGgciE_wnakaMFUZKpamHpdHw93B415RzXR5dUJTebVKvafo8oASgO5MElYdBVBretrdmZXipaLYL5b7xObmqokx1MmqhFA_7iyvuLH9csjdYQTrZjG1vmj5LV4pGUDTXofYaC-A== |
Open api | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| /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:
"200":
description: Successful Operation
content:
'*/*':
schema:
$ref: '#/components/schemas/BusinessEngagementsResponse'
"204":
description: No Content
content:
'*/*':
schema:
$ref: '#/components/schemas/BusinessEngagementsResponse'
"404":
description: Not Found
content:
'*/*':
schema:
$ref: '#/components/schemas/Problem'
"400":
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/Problem'
"500":
description: Internal Server Error
content:
'*/*':
schema:
$ref: '#/components/schemas/Problem'
/
| :
get:
tags:
- API
summary: OpenAPI
operationId: getApiDocs
responses:
"200":
description: OK
content:
application/yaml:
schema:
type: string
x-auth-type: None
x-throttling-tier: Unlimited
x-wso2-mutual-ssl: Optional
security:
- ApiKeyAuth: []
components:
schemas:
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)
example: bab17d8b-af38-4531-967c-083f15ca1571
description: Represents a persons business engagement.
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:
statusCode:
type: integer
format: int32
reasonPhrase:
type: string
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: apikey
Alla anrop mot bolagsverket har två tvingande parametrar vilket även är tvingande in i detta API förutom partyId:
serviceName
- Det system som anropet initierades ifrån.personalName
- Namnet på den person som företagen skall hämtas för.
Hämta företagsengagemang (/engagements/{partyId})
Request: /engagements/6a5c3d04-412d-11ec-973a-0242ac130003?personalName=Jane%20Doe&serviceName=Kommunen
language | json |
---|
Kommunen
Response:
Code Block | ||
---|---|---|
| ||
{
"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"
} | ||
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 | ||
---|---|---|
| ||
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
Ansvarigt team: Team DynastyUnmasked
För tekniska frågor:mailto:teamdynasty@sundsvall teamunmasked@sundsvall.se