CPPA API

A REST API for managing CollaborationProtocolProfiles and CollaborationProtocolAgreements. A CollaborationProtocolProfile (hereafter referred to as CPP) for a communication party defines which message types it supports. A CollaborationProtocolAgreement (hereafter referred to as CPA) between two communication parties defines which message types they can use to communicate with each other.

Auth

Access to the API is restricted, and requires authentication with HelseId. See the Auth page for more information about how to get started.

Environments

Environment URL
Development cppa.dev.grunndata.nhn.no
Test cppa.test.grunndata.nhn.no
QA cppa.qa.grunndata.nhn.no
Production cppa.grunndata.nhn.no

Endpoints

HTTP Method Endpoint Description
GET /Profiles/herId Get the Profile for the given herId
GET /Profiles/herId/History Get the audit log for the given herId
GET /Profiles/herId/Processes Get the list of Processes in the Profile of the given herId
POST /Profiles/herId/Processes Add a new Process to the Profile for the given herId
PATCH /Profiles/herId/Processes/uuid/version/role Update the version of a Process used in the Profile for the given herId
PUT /Profiles/herId/Processes/ Set the Processes used in the Profile for the given herId
DELETE /Profiles/herId/Processes/uuid/version/role Delete a Process from the Profile for the given herId
GET /Agreements/cpaId Get a Agreement by its cpaId
GET /Agreements/HerIds/herIdA/herIdB Get the Agreement between the given herIds
DELETE /Agreements/cpaId Delete the Agreement with the given cpaId
GET /AgreementSummaries/herId Get an AgreementSummary for the given herId
GET /Processes Get a list of all available Processes

GET /Profiles/herId

Get the Profile (CPP) for the communication party with the given herId.

Path parameters

Parameter Type Description
herId int The herId of the communication party that the Profile belongs to

Example

Get the Profile (CPP) for communication party with herId 123:

GET /Profiles/123

Curl

curl -X 'GET' \
  'https://cppa.grunndata.nhn.no/Profiles/123' \
  -H 'accept: application/json'

GET /Profiles/herId/History

Get the audit log for the communication party with the given herId.

Path parameters

Parameter Type Description
herId int The herId of the communication party that the Profile belongs to

Example

Get the audit log for the Profile (CPP) for communication party with herId 123:

GET /Profiles/123/History

Curl

curl -X 'GET' \
  'https://cppa.grunndata.nhn.no/Profiles/123/History' \
  -H 'accept: application/json'

GET /Profiles/herId/Processes

Get the list of Processes in the Profile of the given herId. Returns a list of ProcessDefinitions. The list can be used as is for input to PUT for the same endpoint.

Path parameters

Parameter Type Description
herId int The herId of the communication party that the Profile belongs to

Example

Get the Processes in the Profile (CPP) for communication party with herId 123:

GET /Profiles/123/Processes

Curl

curl -X 'GET' \
  'https://cppa.grunndata.nhn.no/Profiles/123/Processes' \
  -H 'accept: application/json'

POST /Profiles/herId/Processes

Add a new Process to the Profile (CPP) for the communication party with the given herId.

Path parameters

Parameter Type Description
herId int The herId of the communication party that the Profile belongs to

Body

Parameters

Parameter Type Description
uuid string The unique identifier (Guid) of the Process to add. Can be found in the template
version string The version of the Process to add. The same uuid may have several versions
role string The name of the role for the Process to add

Body structure

{
  "uuid": "string",
  "version": "string",
  "role": "string"
}

Example

Add a new Process to the Profile (CPP) for herId 123:

POST /Profiles/123/Processes
{
  "uuid": "da9f7883-599c-4b07-b95d-7dcce4f19b93",
  "version": "2.0",
  "role": "Innbygger"
}

Curl

curl -X 'POST' \
  'https://cppa.grunndata.nhn.no/Profiles/123/Processes' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "uuid": "da9f7883-599c-4b07-b95d-7dcce4f19b93",
  "version": "2.0",
  "role": "Innbygger"
}'

PATCH /Profiles/herId/Processes/uuid/version/role

Update the version of a Process used in the Profile (CPP) for the communication party with the given herId.

Path parameters

Parameter Type Description
herId int The herId of the communication party that the Profile belongs to
uuid string The unique identifier (Guid) of the Process to update. Can be found in the template
version string The version of the Process to update (the old version)
role string The name of the role for the Process to update

Body

Parameters

Parameter Type Description
version string The version of the Process to update to (the new version)

Body structure

{
  "version": "string"
}

Example

Update Process to version 2.0 on the Profile for herId 123:

PATCH /Profiles/123/Processes/da9f7883-599c-4b07-b95d-7dcce4f19b93/1.0/Innbygger
{
  "version": "2.0"
}

Curl

curl -X 'PATCH' \
  'https://cppa.test.grunndata.nhn.no/Profiles/123/Processes/da9f7883-599c-4b07-b95d-7dcce4f19b93/1.0/Innbygger' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "version": "2.0"
}'

PUT /Profiles/herId/Processes/

Set the Processes used in the Profile (CPP) for the communication party with the given herId. NB: This will override any Processes that are on the Profile.

Path parameters

Parameter Type Description
herId int The herId of the communication party that the Profile belongs to

Body

The body takes in a list of ProcessDefinitions.

Parameters

Parameter Type Description
uuid string The unique identifier (Guid) of the Process to add. Can be found in the template
version string The version of the Process to add. The same uuid may have several versions
role string The name of the role for the Process to add

Body structure

[
  {
    "uuid": "string",
    "version": "string",
    "role": "string"
  }
]

Example

Set these 2 Processes on the Profile (CPP) for herId 123:

PUT /Profiles/123/Processes
[
  {
    "uuid": "da9f7883-599c-4b07-b95d-7dcce4f19b93",
    "version": "2.0",
    "role": "Innbygger"
  },
  {
    "uuid": "03088aaa-a5dc-4a1b-9895-3139354c27e4",
    "version": "1.1",
    "role": "Innbygger"
  }
]

Curl

curl -X 'PUT' \
  'https://cppa.test.grunndata.nhn.no/Profiles/123/Processes' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "uuid": "da9f7883-599c-4b07-b95d-7dcce4f19b93",
    "version": "1.0",
    "role": "Innbygger"
  }
]'

DELETE /Profiles/herId/Processes/uuid/version/role

Delete a Process from the Profile (CPP) for the communication party with the given herId.

Path parameters

Parameter Type Description
herId int The herId of the communication party that the Profile belongs to
uuid string The unique identifier (Guid) of the Process to delete. Can be found in the template
version string The version of the Process to delete (the old version)
role string The name of the role for the Process to delete

Example

Delete a Process from the Profile for herId 123:

DELETE /Profiles/123/Processes/da9f7883-599c-4b07-b95d-7dcce4f19b93/1.0/Innbygger

Curl

curl -X 'DELETE' \
  'https://cppa.test.grunndata.nhn.no/Profiles/92104/Processes/da9f7883-599c-4b07-b95d-7dcce4f19b93/1.0/Innbygger' \
  -H 'accept: application/json'

GET /Agreements/cpaId

Get an Agreement (CPA) by its unique identifier.

Path parameters

Parameter Type Description
cpaId string The unique identifier (Guid) of the Agreement

Example

Get the Agreement (CPA) with cpaId af3877ea-a0d8-40a3-9ae9-ab7119060ae3:

GET /Agreements/HerIds/af3877ea-a0d8-40a3-9ae9-ab7119060ae3

Curl

curl -X 'GET' \
  'https://cppa.grunndata.nhn.no/Agreements/af3877ea-a0d8-40a3-9ae9-ab7119060ae3' \
  -H 'accept: application/xml'

GET /Agreements/HerIds/herIdA/herIdB

Get the Agreement (CPA) between the two communication parties with the given herIds.

Path parameters

Parameter Type Description
herIdA int The herId of the first communication party in the Agreement
herIdB int The herId of the second communication party in the Agreement

Example

Get the Agreement (CPA) between the communication parties with herIds 123 and 321:

GET /Agreements/HerIds/123/321

Curl

curl -X 'GET' \
  'https://cppa.grunndata.nhn.no/Agreements/HerIds/123/321' \
  -H 'accept: application/json'

DELETE /Agreements/cpaId

Delete the Agreement with the given cpaId.

Path parameters

Parameter Type Description
cpaId string The unique identifier (Guid) of the Agreement

Example

Delete an Agreement (CPA) with cpaId da9f7883-599c-4b07-b95d-7dcce4f19b93:

DELETE /Agreements/da9f7883-599c-4b07-b95d-7dcce4f19b93

Curl

curl -X 'DELETE' \
  'https://cppa.grunndata.nhn.no/Agreements/da9f7883-599c-4b07-b95d-7dcce4f19b93' \
  -H 'accept: application/json'

GET /AgreementSummaries/herId

Get an AgreementSummary of all Agreements (CPAs) for the communication party with the given herId.

Path parameters

Parameter Type Description
herId int The herId of the communication party

Query parameters

Parameter Type Description
includeExpired boolean Will include expired Agreements if true
includeTerminated boolean Will include terminated Agreements if true

Example

Get the AgreementSummary for communication party with herId 123 and include expired Agreements:

GET /AgreementSummaries/123?includeExpired=true

Curl

curl -X 'GET' \
  'https://cppa.grunndata.nhn.no/AgreementSummaries/123?includeExpired=true' \
  -H 'accept: application/json'

Response

{
  "agreements": [
    {
      "cpaId": "string",
      "terminated": "2023-04-11T12:17:42.195Z",
      "created": "2023-04-11T12:17:42.195Z",
      "start": "2023-04-11T12:17:42.195Z",
      "end": "2023-04-11T12:17:42.195Z",
      "communicationPartySummaryA": {
        "herId": 0,
        "name": "string",
        "parentHerId": 0,
        "parentName": "string",
        "type": "string"
      },
      "communicationPartySummaryB": {
        "herId": 0,
        "name": "string",
        "parentHerId": 0,
        "parentName": "string",
        "type": "string"
      }
    }
  ]
}

GET /Processes

Get a list of all available Processes.

Example

Get all available Processes:

GET /Processes

Curl

curl -X 'GET' \
  'https://cppa.grunndata.nhn.no/Processes' \
  -H 'accept: application/json'

Response

[
  {
    "name": "string",
    "description": "string",
    "categories": [],
    "uuid": "string",
    "version": "string",
    "role": "string"
  },
  {
    "name": "string",
    "description": "string",
    "categories": [
      "string",
      "string"
    ],
    "uuid": "string",
    "version": "string",
    "role": "string"
  }
]