Dictionary

Access Point

An access point (AP) is a server that enables Participants to exchange electronic documents.

Access Point Provider

An access point provider is an entity that provides one or more Access Points. The access point providers have a customer relation with the Service Providers.

Organization

An organization is an entity – such as a company, an institution, or an association.

Participant

A participant is an Organization's customer relation with a specific Service Provider. An organization can have multiple participants.

Service Provider

A service provider is an entity that provides the ability for Organizations to exchange electronic documents. An Organization that is a customer of a service provider is a Participant.

How to get access

Most of the API requires the user to be registered in ELMA as a Service Provider or an Access Point Provider. To get such a registration, you have to make an agreement with the Norwegian Peppol Authority in The Norwegian Agency for Public and Financial Management(DFØ). To initiate such a process, please send an email to peppolmyndighet@dfo.no. A registration is needed for all environments (test and production).

The service should not be used to find out if an organization can receive a certain document type in the Peppol network. This service will only give such information for organization registered in ELMA. The correct way to do such a check for the Peppol network is to use a combination of SML and SMP. ELMA is only one of several SMPs in the Peppol network. The SML will give information on which SMP that contain more details about the organization. An example of a library performing a SML + SMP lookup can be found here: https://github.com/OxalisCommunity/vefa-peppol - More specifically: the LookupClient class. If query by organization name is required, please use the REST API in Peppol Directory.

Specification

The services

Method URL Description Allowed Roles

GET

/rest/api/accessPoints

Find access points

SERVICE_PROVIDER, ACCESS_POINT_PROVIDER, ADMIN, PEPPOL_AUTHORITY

GET

/rest/api/accessPoints/{qualifiedIdentifier}

Get access point

SERVICE_PROVIDER, ACCESS_POINT_PROVIDER, ADMIN, PEPPOL_AUTHORITY

PUT

/rest/api/participants/{qualifiedIdentifier}/transfer/{serviceProviderIdentifier}

Transfer participant

SERVICE_PROVIDER

GET

/rest/api/document-types

Find document types

SERVICE_PROVIDER, ACCESS_POINT_PROVIDER, ADMIN, PEPPOL_AUTHORITY, ANONYMOUS

GET

/rest/api/document-types/{identifier}

Get document type

SERVICE_PROVIDER, ACCESS_POINT_PROVIDER, ADMIN, PEPPOL_AUTHORITY, ANONYMOUS

POST

/rest/api/document-types

Add document type

ADMIN, PEPPOL_AUTHORITY

PUT

/rest/api/document-types/{identifier}

Update document type

ADMIN, PEPPOL_AUTHORITY

DELETE

/rest/api/document-types/{identifier}

Delete document type

ADMIN, PEPPOL_AUTHORITY

GET

/rest/api/organizations/{qualifiedIdentifier}/processes

Find organization processes

SERVICE_PROVIDER, ACCESS_POINT_PROVIDER, ADMIN, PEPPOL_AUTHORITY, ANONYMOUS

GET

/rest/api/participants

Find participants (Array)

SERVICE_PROVIDER, ADMIN, PEPPOL_AUTHORITY

GET

/rest/api/participants

Find participants (Paged)

SERVICE_PROVIDER, ADMIN, PEPPOL_AUTHORITY

GET

/rest/api/participants/{qualifiedIdentifier}

Get participant

SERVICE_PROVIDER

GET

/rest/api/participants/{identifier}

Get participant

SERVICE_PROVIDER, ADMIN, PEPPOL_AUTHORITY

POST

/rest/api/participants

Add participant

SERVICE_PROVIDER

PUT

/rest/api/participants/{qualifiedIdentifier}

Update participant

SERVICE_PROVIDER

DELETE

/rest/api/participants/{qualifiedIdentifier}

Delete participant

SERVICE_PROVIDER

DELETE

/rest/api/participants/{identifier}

Delete participant

SERVICE_PROVIDER,ADMIN

GET

/rest/api/participants/{qualifiedIdentifier}/processes

Get participant processes

SERVICE_PROVIDER

GET

/rest/api/participants/{identifier}/processes

Get participant processes

SERVICE_PROVIDER, ADMIN, PEPPOL_AUTHORITY

PUT

/rest/api/participants/{qualifiedIdentifier}/transfer/{serviceProviderIdentifier}

Transfer participant

SERVICE_PROVIDER

GET

/rest/api/processes

Find processes (Array)

SERVICE_PROVIDER, ACCESS_POINT_PROVIDER, ADMIN, PEPPOL_AUTHORITY, ANONYMOUS

GET

/rest/api/processes

Find processes (Paged)

SERVICE_PROVIDER, ACCESS_POINT_PROVIDER, ADMIN, PEPPOL_AUTHORITY, ANONYMOUS

GET

/rest/api/processes/{identifier}

Get process

SERVICE_PROVIDER, ACCESS_POINT_PROVIDER, ADMIN, PEPPOL_AUTHORITY, ANONYMOUS

POST

/rest/api/processes

Add process

ADMIN, PEPPOL_AUTHORITY

PUT

/rest/api/processes/{identifier}

Update process

ADMIN, PEPPOL_AUTHORITY

DELETE

/rest/api/processes/{identifier}

Delete process

ADMIN, PEPPOL_AUTHORITY

Access Points

Find access points

The service is used to search for Access Points. The response is paged with a default page size of 10.

Example 1 - Find all Access Points
Curl
$ curl 'https://smp.difi.no/rest/api/accessPoints' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8'
Request
GET /rest/api/accessPoints HTTP/1.1
Accept: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1726

{
  "content" : [ {
    "identifier" : "1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0",
    "title" : "The Great Access Point",
    "provider" : {
      "identifier" : "d51718f7-f889-4d75-86a3-bc7475e23347",
      "title" : "The Hitech Company",
      "contact" : {
        "name" : "Mr. Robot",
        "email" : "robot@hitech.com",
        "phoneNumber" : "12345678"
      }
    },
    "endpoints" : [ {
      "transportProfile" : {
        "title" : "Peppol AS2 Profile 2.0",
        "value" : "busdox-transport-as2-ver2p0",
        "certificateTypes" : [ "Peppol Production" ]
      },
      "url" : "https://www.example.com/oxalis/as4"
    } ]
  }, {
    "identifier" : "6a450eaf-7023-419b-9e69-b21d2775cade",
    "title" : "The Shiny Access Point",
    "provider" : {
      "identifier" : "d51718f7-f889-4d75-86a3-bc7475e23347",
      "title" : "The Hitech Company",
      "contact" : {
        "name" : "Mr. Robot",
        "email" : "robot@hitech.com",
        "phoneNumber" : "12345678"
      }
    },
    "endpoints" : [ {
      "transportProfile" : {
        "title" : "Peppol AS2 Profile 2.0",
        "value" : "busdox-transport-as2-ver2p0",
        "certificateTypes" : [ "Peppol Production" ]
      },
      "url" : "https://www.example.com/shiny/as4"
    } ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 2,
  "size" : 30,
  "empty" : false
}
Example 2 - Sorting
Curl
$ curl 'https://smp.difi.no/rest/api/accessPoints?sort=qualifiedIdentifier.value%2Casc' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8'
Request
GET /rest/api/accessPoints?sort=qualifiedIdentifier.value%2Casc HTTP/1.1
Accept: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1728

{
  "content" : [ {
    "identifier" : "1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0",
    "title" : "The Great Access Point",
    "provider" : {
      "identifier" : "d51718f7-f889-4d75-86a3-bc7475e23347",
      "title" : "The Hitech Company",
      "contact" : {
        "name" : "Mr. Robot",
        "email" : "robot@hitech.com",
        "phoneNumber" : "12345678"
      }
    },
    "endpoints" : [ {
      "transportProfile" : {
        "title" : "Peppol AS2 Profile 2.0",
        "value" : "busdox-transport-as2-ver2p0",
        "certificateTypes" : [ "Peppol Production" ]
      },
      "url" : "https://www.example.com/oxalis/as4"
    } ]
  }, {
    "identifier" : "6a450eaf-7023-419b-9e69-b21d2775cade",
    "title" : "The Shiny Access Point",
    "provider" : {
      "identifier" : "d51718f7-f889-4d75-86a3-bc7475e23347",
      "title" : "The Hitech Company",
      "contact" : {
        "name" : "Mr. Robot",
        "email" : "robot@hitech.com",
        "phoneNumber" : "12345678"
      }
    },
    "endpoints" : [ {
      "transportProfile" : {
        "title" : "Peppol AS2 Profile 2.0",
        "value" : "busdox-transport-as2-ver2p0",
        "certificateTypes" : [ "Peppol Production" ]
      },
      "url" : "https://www.example.com/shiny/as4"
    } ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : true,
      "unsorted" : false,
      "empty" : false
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "sort" : {
    "sorted" : true,
    "unsorted" : false,
    "empty" : false
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 2,
  "size" : 30,
  "empty" : false
}
Example 3 - Paging
Curl
$ curl 'https://smp.difi.no/rest/api/accessPoints?page=3&size=10' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8'
Request
GET /rest/api/accessPoints?page=3&size=10 HTTP/1.1
Accept: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.accesspoints.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1729

{
  "content" : [ {
    "identifier" : "1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0",
    "title" : "The Great Access Point",
    "provider" : {
      "identifier" : "d51718f7-f889-4d75-86a3-bc7475e23347",
      "title" : "The Hitech Company",
      "contact" : {
        "name" : "Mr. Robot",
        "email" : "robot@hitech.com",
        "phoneNumber" : "12345678"
      }
    },
    "endpoints" : [ {
      "transportProfile" : {
        "title" : "Peppol AS2 Profile 2.0",
        "value" : "busdox-transport-as2-ver2p0",
        "certificateTypes" : [ "Peppol Production" ]
      },
      "url" : "https://www.example.com/oxalis/as4"
    } ]
  }, {
    "identifier" : "6a450eaf-7023-419b-9e69-b21d2775cade",
    "title" : "The Shiny Access Point",
    "provider" : {
      "identifier" : "d51718f7-f889-4d75-86a3-bc7475e23347",
      "title" : "The Hitech Company",
      "contact" : {
        "name" : "Mr. Robot",
        "email" : "robot@hitech.com",
        "phoneNumber" : "12345678"
      }
    },
    "endpoints" : [ {
      "transportProfile" : {
        "title" : "Peppol AS2 Profile 2.0",
        "value" : "busdox-transport-as2-ver2p0",
        "certificateTypes" : [ "Peppol Production" ]
      },
      "url" : "https://www.example.com/shiny/as4"
    } ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 3,
    "pageSize" : 10,
    "offset" : 30,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 4,
  "totalElements" : 32,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : false,
  "number" : 3,
  "numberOfElements" : 2,
  "size" : 10,
  "empty" : false
}
About the service
Request parameters
Parameter Description

page

Page you want to retrieve. First page is page 0

size

Size of the page you want to retrieve.

sort

Properties that should be sorted by in the format property,property(,ASC|DESC). Default sort direction is ascending. Use multiple sort parameters if you want to switch directions, e.g. ?sort=firstname&sort=lastname,asc.

Response fields
Path Type Description

content[].title

String

The name of service provider.

content[].identifier

String

A universally unique identifier.

content[].provider

Object

The access point provider.

content[].endpoints

Array

A list of endpoints belonging to the access point.

content[].provider.title

String

The name of service provider.

content[].provider.identifier

String

A universally unique identifier.

content[].provider.contact.name

String

Name of the contact.

content[].provider.contact.email

String

Email of the contact.

content[].provider.contact.phoneNumber

String

The phone number of the contact.

content[].endpoints[].url

String

The url of the endpoint.

content[].endpoints[].transportProfile

Object

A list of transport profiles supported by the endpoint.

content[].endpoints[].transportProfile.title

String

Name describing the transport profile.

content[].endpoints[].transportProfile.value

String

The transport profile identifier.

content[].endpoints[].transportProfile.certificateTypes

Array

A list of certificate types that is used by this endpoint.

last

Boolean

A boolean value indicating if this is the last page or not.

totalElements

Number

The total number of elements

totalPages

Number

The total number of pages

size

Number

The page size

number

Number

The page number

first

Boolean

A boolean value indicating if this is the first page or not.

numberOfElements

Number

Number of elements returned in the page.

empty

Boolean

True if the page is empty. False if not.

sort.sorted

Boolean

True if the result set is sorted. False otherwise.

sort.unsorted

Boolean

True if the result set is unsorted. False otherwise.

sort.empty

Boolean

True if no sorting. False otherwise

pageable.offset

Number

The offset to be taken according to the underlying page and page size.

pageable.pageSize

Number

The requested page size

pageable.pageNumber

Number

The requested page number

pageable.sort.sorted

Boolean

True if the result set is sorted. False otherwise.

pageable.sort.unsorted

Boolean

True if the result set is unsorted. False otherwise.

pageable.sort.empty

Boolean

True if no sorting. False otherwise

Get access point

Use this service to get information about an Access Point.

Example 1 - Get a accessPoint
Curl
$ curl 'https://smp.difi.no/rest/api/accessPoints/1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.accesspoints.get.v1+json;charset=UTF-8'
Request
GET /rest/api/accessPoints/1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0 HTTP/1.1
Accept: application/vnd.no.digdir.elma.accesspoints.get.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.accesspoints.get.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 585

{
  "identifier" : "1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0",
  "title" : "The Great Access Point",
  "provider" : {
    "identifier" : "d51718f7-f889-4d75-86a3-bc7475e23347",
    "title" : "The Hitech Company",
    "contact" : {
      "name" : "Mr. Robot",
      "email" : "robot@hitech.com",
      "phoneNumber" : "12345678"
    }
  },
  "endpoints" : [ {
    "transportProfile" : {
      "title" : "Peppol AS2 Profile 2.0",
      "value" : "busdox-transport-as2-ver2p0",
      "certificateTypes" : [ "Peppol Production" ]
    },
    "url" : "https://www.example.com/oxalis/as4"
  } ]
}
Example 2 - Not found
Curl
$ curl 'https://smp.difi.no/rest/api/accessPoints/1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.accesspoints.get.v1+json;charset=UTF-8'
Request
GET /rest/api/accessPoints/1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0 HTTP/1.1
Accept: application/vnd.no.digdir.elma.accesspoints.get.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 404 Not Found
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 314

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 404,
  "error" : "Not Found",
  "exception" : "no.difi.elma.lang.NotFoundException",
  "message" : "Unable to find instance with identifier '1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0'.",
  "path" : "/rest/api/accessPoints/1c0c645b-ca13-4bdd-8ad0-dfc518d78fe0"
}
About the service
Path parameters
Table 1. /rest/api/accessPoints/{accessPoint}
Parameter Description

accessPoint

An access point identifier that is an UUID.

Response fields
Path Type Description

title

String

The name of service provider.

identifier

String

A universally unique identifier.

provider

Object

The access point provider.

endpoints

Array

A list of endpoints belonging to the access point.

provider.title

String

The name of service provider.

provider.identifier

String

A universally unique identifier.

provider.contact.name

String

Name of the contact.

provider.contact.email

String

Email of the contact.

provider.contact.phoneNumber

String

The phone number of the contact.

endpoints[].url

String

The url of the endpoint.

endpoints[].transportProfile

Object

A list of transport profiles supported by the endpoint.

endpoints[].transportProfile.title

String

Name describing the transport profile.

endpoints[].transportProfile.value

String

The transport profile identifier.

endpoints[].transportProfile.certificateTypes

Array

A list of certificate types that is used by this endpoint.

Document Types

Find document types

The service is used to search for Document Types. The response is paged with a default page size of 10.

Example 1 - Find all Document Types
Curl
$ curl 'https://smp.difi.no/rest/api/document-types' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8'
Request
GET /rest/api/document-types HTTP/1.1
Accept: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1327

{
  "content" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
    "title" : "Arkivmelding",
    "visible" : true,
    "processes" : [ {
      "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:no:difi:profile:arkivmelding:administrasjon:ver1.0",
      "title" : "Arkivmelding_Administrasjon",
      "visible" : true,
      "restricted" : false
    } ]
  }, {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true,
    "processes" : [ ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 2,
  "size" : 30,
  "empty" : false
}
Example 2 - Sorting
Curl
$ curl 'https://smp.difi.no/rest/api/document-types?sort=qualifiedIdentifier.value%2Casc' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8'
Request
GET /rest/api/document-types?sort=qualifiedIdentifier.value%2Casc HTTP/1.1
Accept: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1285

{
  "content" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
    "title" : "Arkivmelding",
    "processes" : [ {
      "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:no:difi:profile:arkivmelding:administrasjon:ver1.0",
      "title" : "Arkivmelding_Administrasjon",
      "visible" : true,
      "restricted" : false
    } ]
  }, {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "processes" : [ ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : true,
      "unsorted" : false,
      "empty" : false
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "sort" : {
    "sorted" : true,
    "unsorted" : false,
    "empty" : false
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 2,
  "size" : 30,
  "empty" : false
}
Example 3 - Paging
Curl
$ curl 'https://smp.difi.no/rest/api/document-types?page=3&size=10' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8'
Request
GET /rest/api/document-types?page=3&size=10 HTTP/1.1
Accept: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.document-types.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1286

{
  "content" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
    "title" : "Arkivmelding",
    "processes" : [ {
      "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:no:difi:profile:arkivmelding:administrasjon:ver1.0",
      "title" : "Arkivmelding_Administrasjon",
      "visible" : true,
      "restricted" : false
    } ]
  }, {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "processes" : [ ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 3,
    "pageSize" : 10,
    "offset" : 30,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 4,
  "totalElements" : 32,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : false,
  "number" : 3,
  "numberOfElements" : 2,
  "size" : 10,
  "empty" : false
}
About the service
Request parameters
Parameter Description

page

Page you want to retrieve. First page is page 0

size

Size of the page you want to retrieve.

sort

Properties that should be sorted by in the format property,property(,ASC|DESC). Default sort direction is ascending. Use multiple sort parameters if you want to switch directions, e.g. ?sort=firstname&sort=lastname,asc.

Response fields
Path Type Description

content[].identifier

String

A UUID identifier.

content[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

content[].title

String

A title describing the document type.

content[].visible

Boolean

If the document type is visible in the SMP lookup.

content[].processes

Array

A list of processes

content[].processes[].identifier

String

A UUID identifier.

content[].processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

content[].processes[].title

String

The capability title.

content[].processes[].restricted

Boolean

If the process has been deprecated.

content[].processes[].visible

Boolean

If the process is visible in the SMP lookup.

last

Boolean

A boolean value indicating if this is the last page or not.

totalElements

Number

The total number of elements

totalPages

Number

The total number of pages

size

Number

The page size

number

Number

The page number

first

Boolean

A boolean value indicating if this is the first page or not.

numberOfElements

Number

Number of elements returned in the page.

empty

Boolean

True if the page is empty. False if not.

sort.sorted

Boolean

True if the result set is sorted. False otherwise.

sort.unsorted

Boolean

True if the result set is unsorted. False otherwise.

sort.empty

Boolean

True if no sorting. False otherwise

pageable.offset

Number

The offset to be taken according to the underlying page and page size.

pageable.pageSize

Number

The requested page size

pageable.pageNumber

Number

The requested page number

pageable.sort.sorted

Boolean

True if the result set is sorted. False otherwise.

pageable.sort.unsorted

Boolean

True if the result set is unsorted. False otherwise.

pageable.sort.empty

Boolean

True if no sorting. False otherwise

Get document type

Use this service to get information about a document type.

Example 1 - Get a document type by identifier
Curl
$ curl 'https://smp.difi.no/rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.get.v1+json;charset=UTF-8'
Request
GET /rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7 HTTP/1.1
Accept: application/vnd.no.digdir.elma.document-types.get.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.document-types.get.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 480

{
  "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "title" : "Arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:no:difi:profile:arkivmelding:administrasjon:ver1.0",
    "title" : "Arkivmelding_Administrasjon",
    "visible" : true,
    "restricted" : false
  } ]
}
Example 2 - Not found
Curl
$ curl 'https://smp.difi.no/rest/api/document-types/4891fab2-03da-42b1-812b-a9cf624ea588' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.get.v1+json;charset=UTF-8'
Request
GET /rest/api/document-types/4891fab2-03da-42b1-812b-a9cf624ea588 HTTP/1.1
Accept: application/vnd.no.digdir.elma.document-types.get.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 404 Not Found
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 316

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 404,
  "error" : "Not Found",
  "exception" : "no.difi.elma.lang.NotFoundException",
  "message" : "Unable to find instance with identifier '4891fab2-03da-42b1-812b-a9cf624ea588'.",
  "path" : "/rest/api/document-types/4891fab2-03da-42b1-812b-a9cf624ea588"
}
About the service
Path parameters
Table 2. /rest/api/document-types/{identifier}
Parameter Description

identifier

A process identifier that is an UUID.

Response fields
Path Type Description

.identifier

String

A UUID identifier.

.qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

.title

String

A title describing the document type.

.visible

Boolean

If the document type is visible in the SMP lookup.

.processes

Array

A list of processes

.processes[].identifier

String

A UUID identifier.

.processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

.processes[].title

String

The capability title.

.processes[].restricted

Boolean

If the process has been deprecated.

.processes[].visible

Boolean

If the process is visible in the SMP lookup.

Add document type

Use this service to add a new document type.

Example 1 - Add a document type
Curl
$ curl 'https://smp.difi.no/rest/api/document-types' -i -u 'admin:pw123' -X POST \
    -H 'Content-Type: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8' \
    -d '{
  "title" : "Arkivmelding",
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd"
  } ]
}'
Request
POST /rest/api/document-types HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8
Content-Length: 225
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no

{
  "title" : "Arkivmelding",
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd"
  } ]
}
Response
HTTP/1.1 201 Created
Content-Type: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 480

{
  "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "title" : "Arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:no:difi:profile:arkivmelding:administrasjon:ver1.0",
    "title" : "Arkivmelding_Administrasjon",
    "visible" : true,
    "restricted" : false
  } ]
}
Example 2 - Missing domain in input
Curl
$ curl 'https://smp.difi.no/rest/api/document-types' -i -u 'admin:pw123' -X POST \
    -H 'Content-Type: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8' \
    -d '{
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd"
  } ]
}'
Request
POST /rest/api/document-types HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.document-types.add.v1+json;charset=UTF-8
Content-Length: 197
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no

{
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd"
  } ]
}
Response
HTTP/1.1 400 Bad Request
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 741

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 400,
  "error" : "Bad Request",
  "exception" : "org.springframework.web.bind.MethodArgumentNotValidException",
  "message" : "Validation failed for object='documentTypeFormDTO'. Error count: 1",
  "errors" : [ {
    "codes" : [ "NotEmpty.documentTypeFormDTO.title", "NotEmpty.title", "NotEmpty.java.lang.String", "NotEmpty" ],
    "arguments" : [ {
      "codes" : [ "documentTypeFormDTO.title", "title" ],
      "defaultMessage" : "title",
      "code" : "title"
    } ],
    "defaultMessage" : "must not be empty",
    "objectName" : "documentTypeFormDTO",
    "field" : "title",
    "bindingFailure" : false,
    "code" : "NotEmpty"
  } ],
  "path" : "/rest/api/document-types"
}
About the service
Request fields
Path Type Description Constraints

title

String

A title describing the document type.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

visible

Boolean

If the document type is visible in the SMP lookup.

processes

Array

A list of processes

processes[].identifier

String

A UUID identifier.

Response fields
Path Type Description

identifier

String

A UUID identifier.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

title

String

A title describing the document type.

visible

Boolean

If the document type is visible in the SMP lookup.

processes

Array

A list of processes

processes[].identifier

String

A UUID identifier.

processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

processes[].title

String

The capability title.

processes[].restricted

Boolean

If the process has been deprecated.

processes[].visible

Boolean

If the process is visible in the SMP lookup.

Update document type

Use this service to update a document type.

Example 1 - Update a document type
Curl
$ curl 'https://smp.difi.no/rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7' -i -u 'admin:pw123' -X PUT \
    -H 'Content-Type: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8' \
    -d '{
  "title" : "Arkivmelding",
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd"
  } ]
}'
Request
PUT /rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7 HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8
Content-Length: 225
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no

{
  "title" : "Arkivmelding",
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd"
  } ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 480

{
  "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "title" : "Arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:no:difi:profile:arkivmelding:administrasjon:ver1.0",
    "title" : "Arkivmelding_Administrasjon",
    "visible" : true,
    "restricted" : false
  } ]
}
Example 2 - Missing domain in input
Curl
$ curl 'https://smp.difi.no/rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7' -i -u 'admin:pw123' -X PUT \
    -H 'Content-Type: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8' \
    -d '{
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd"
  } ]
}'
Request
PUT /rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7 HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.document-types.update.v1+json;charset=UTF-8
Content-Length: 197
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no

{
  "qualifiedIdentifier" : "busdox-docid-qns::urn:no:difi:arkivmelding:xsd::arkivmelding",
  "visible" : true,
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e74815956cd"
  } ]
}
Response
HTTP/1.1 400 Bad Request
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 778

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 400,
  "error" : "Bad Request",
  "exception" : "org.springframework.web.bind.MethodArgumentNotValidException",
  "message" : "Validation failed for object='documentTypeFormDTO'. Error count: 1",
  "errors" : [ {
    "codes" : [ "NotEmpty.documentTypeFormDTO.title", "NotEmpty.title", "NotEmpty.java.lang.String", "NotEmpty" ],
    "arguments" : [ {
      "codes" : [ "documentTypeFormDTO.title", "title" ],
      "defaultMessage" : "title",
      "code" : "title"
    } ],
    "defaultMessage" : "must not be empty",
    "objectName" : "documentTypeFormDTO",
    "field" : "title",
    "bindingFailure" : false,
    "code" : "NotEmpty"
  } ],
  "path" : "/rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7"
}
About the service
Request fields
Path Type Description Constraints

title

String

A title describing the document type.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

visible

Boolean

If the document type is visible in the SMP lookup.

processes

Array

A list of processes

processes[].identifier

String

A UUID identifier.

Response fields
Path Type Description

identifier

String

A UUID identifier.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

title

String

A title describing the document type.

visible

Boolean

If the document type is visible in the SMP lookup.

processes

Array

A list of processes

processes[].identifier

String

A UUID identifier.

processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

processes[].title

String

The capability title.

processes[].restricted

Boolean

If the process has been deprecated.

processes[].visible

Boolean

If the process is visible in the SMP lookup.

Delete document type

Use this service to delete a document type.

Example 1 - Delete a document type
Curl
$ curl 'https://smp.difi.no/rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7' -i -u 'dfo:pw123' -X DELETE \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.delete.v1+json;charset=UTF-8'
Request
DELETE /rest/api/document-types/8e83282a-577f-4b06-8207-f8d6674b0da7 HTTP/1.1
Accept: application/vnd.no.digdir.elma.document-types.delete.v1+json;charset=UTF-8
Authorization: Basic ZGZvOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Example 2 - Process not found
Curl
$ curl 'https://smp.difi.no/rest/api/document-types/4891fab2-03da-42b1-812b-a9cf624ea588' -i -u 'admin:pw123' -X DELETE \
    -H 'Accept: application/vnd.no.digdir.elma.document-types.delete.v1+json;charset=UTF-8'
Request
DELETE /rest/api/document-types/4891fab2-03da-42b1-812b-a9cf624ea588 HTTP/1.1
Accept: application/vnd.no.digdir.elma.document-types.delete.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 404 Not Found
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 316

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 404,
  "error" : "Not Found",
  "exception" : "no.difi.elma.lang.NotFoundException",
  "message" : "Unable to find instance with identifier '4891fab2-03da-42b1-812b-a9cf624ea588'.",
  "path" : "/rest/api/document-types/4891fab2-03da-42b1-812b-a9cf624ea588"
}

Organizations

Find organization processes

The service is used to search for processes that are in use by an organization. The response is paged with a default page size of 10. Please note! The service should not be used to find out if an organization can receive a certain document type in the Peppol network. This service will only give such information for organization registered in ELMA. The correct way to do such a check for the Peppol network is to use a combination of SML and SMP. ELMA is only one of several SMPs in the Peppol network. The SML will give information on which SMP that contain more details about the organization. An example of a library performing a SML + SMP lookup can be found here: https://github.com/OxalisCommunity/vefa-peppol - More specifically: the LookupClient class.

Example 1 - Find all processes
Curl
$ curl 'https://smp.difi.no/rest/api/organizations/iso6523-actorid-upis::0192:222222222/processes' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.organizations.processes.v1+json;charset=UTF-8'
Request
GET /rest/api/organizations/iso6523-actorid-upis::0192:222222222/processes HTTP/1.1
Accept: application/vnd.no.digdir.elma.organizations.processes.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.organizations.processes.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1793

[ {
  "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_28A_2.0",
  "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ ],
  "requiredICDs" : [ "9908" ]
}, {
  "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "peppolbis_order"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
    "title" : "TEST DEPENDENCY",
    "restricted" : false,
    "visible" : true
  } ],
  "requiredICDs" : [ "0192" ]
} ]
About the service
Path parameters
Table 3. /rest/api/organizations/{qualifiedIdentifier}/processes
Parameter Description

qualifiedIdentifier

An identifier that is qualified by a schema. It consists of <scheme> :: <ICD> : <organizationIdentifier>.

Response fields
Path Type Description

[].identifier

String

A UUID identifier.

[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

[].domain

String

The domain that this process belongs to.

[].title

String

A title describing the process.

[].alias

String

An alias for the process title

[].restricted

Boolean

If the process has been deprecated.

[].visible

Boolean

If the process is visible in the SMP lookup.

[].capabilities

Array

A list of capabilities

[].documentTypes

Array

A list of document types

[].dependencies

Array

A list of dependencies

[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

[].capabilities[].identifier

String

A UUID identifier.

[].capabilities[].title

String

The capability title.

[].documentTypes[].identifier

String

A UUID identifier.

[].documentTypes[].title

String

The document type title.

[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

[].dependencies[].identifier

String

A UUID identifier.

[].dependencies[].title

String

The dependency title.

[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

[].dependencies[].restricted

Boolean

If the process has been deprecated.

[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Participants

Find participants (Array)

The service is used to search for participants. The response is an array with all hits.

Example 1 - Find all participants
Curl
$ curl 'https://smp.difi.no/rest/api/participants' -i -u 'dfo:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.stream.v1+json;charset=UTF-8'
Request
GET /rest/api/participants HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.stream.v1+json;charset=UTF-8
Authorization: Basic ZGZvOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.stream.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1077

[ {
  "identifier" : "0eeddc80-3baa-44eb-98c2-90168ca09e91",
  "qualifiedIdentifier" : "iso6523-actorid-upis::0192:987654321",
  "icd" : "0192",
  "organizationIdentifier" : "987654321",
  "name" : "Snow Factory AS",
  "registrationDate" : "2020-08-26",
  "lastModificationDate" : "2020-09-02",
  "contact" : {
    "name" : "Snømannen Kalle",
    "email" : "kalle@snowfactory.no",
    "phoneNumber" : "111111111"
  },
  "provider" : {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "The Big Bank"
  }
}, {
  "identifier" : "a74363a2-1038-4a3f-a599-97ff860787e0",
  "qualifiedIdentifier" : "iso6523-actorid-upis::0192:222222222",
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "name" : "Doofenshmirtz Evil Inc",
  "registrationDate" : "2001-05-12",
  "lastModificationDate" : "2020-09-01",
  "contact" : {
    "name" : "Heinz Doofenshmirtz",
    "email" : "heinz.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222222"
  },
  "provider" : {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "The Big Bank"
  }
} ]
About the service
Request parameters
Parameter Description

query

Search for name and organization number.

processes

Set this to true if you want the response to include participant processes. Default: false

Response fields
Path Type Description

[].identifier

String

A participant identifier that is an UUID.

[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

[].icd

String

An International Code Designator (ICD) value, which uniquely identifies the authority which issued the code to the organization, up to 4 digits

[].organizationIdentifier

String

An organization identifier, up to a maximum of 35 characters.

[].name

String

Organization name

[].registrationDate

String

Registration date

[].lastModificationDate

String

Last modification date

[].deleteDate

String

Date the participant will be deleted.

[].provider

Object

The service provider.

[].processes

Array

List of processes.

[].contact.name

String

Name of the contact.

[].contact.email

String

Email of the contact.

[].contact.phoneNumber

String

The phone number of the contact.

[].provider.title

String

The name of service provider.

[].provider.identifier

String

A universally unique identifier.

[].processes[].identifier

String

A UUID identifier.

[].processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

[].processes[].domain

String

The domain that this process belongs to.

[].processes[].title

String

A title describing the process.

[].processes[].alias

String

An alias for the process title

[].processes[].restricted

Boolean

If the process has been deprecated.

[].processes[].visible

Boolean

If the process is visible in the SMP lookup.

[].processes[].capabilities

Array

A list of capabilities

[].processes[].documentTypes

Array

A list of document types

[].processes[].dependencies

Array

A list of dependencies

[].processes[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

[].processes[].capabilities[].identifier

String

A UUID identifier.

[].processes[].capabilities[].title

String

The capability title.

[].processes[].documentTypes[].identifier

String

A UUID identifier.

[].processes[].documentTypes[].title

String

The document type title.

[].processes[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

[].processes[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

[].processes[].dependencies[].identifier

String

A UUID identifier.

[].processes[].dependencies[].title

String

The dependency title.

[].processes[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

[].processes[].dependencies[].restricted

Boolean

If the process has been deprecated.

[].processes[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Find participants (Paged)

The service is used to search for participants. The response is paged with a default page size of 10.

Example 1 - Find all participants
Curl
$ curl 'https://smp.difi.no/rest/api/participants' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8'
Request
GET /rest/api/participants HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1616

{
  "content" : [ {
    "identifier" : "0eeddc80-3baa-44eb-98c2-90168ca09e91",
    "qualifiedIdentifier" : "iso6523-actorid-upis::0192:987654321",
    "icd" : "0192",
    "organizationIdentifier" : "987654321",
    "name" : "Snow Factory AS",
    "registrationDate" : "2020-08-26",
    "lastModificationDate" : "2020-09-02",
    "contact" : {
      "name" : "Snømannen Kalle",
      "email" : "kalle@snowfactory.no",
      "phoneNumber" : "111111111"
    },
    "provider" : {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "The Big Bank"
    }
  }, {
    "identifier" : "a74363a2-1038-4a3f-a599-97ff860787e0",
    "qualifiedIdentifier" : "iso6523-actorid-upis::0192:222222222",
    "icd" : "0192",
    "organizationIdentifier" : "222222222",
    "name" : "Doofenshmirtz Evil Inc",
    "registrationDate" : "2001-05-12",
    "lastModificationDate" : "2020-09-01",
    "contact" : {
      "name" : "Heinz Doofenshmirtz",
      "email" : "heinz.doofemshmirtz@evil.inc",
      "phoneNumber" : "22222222"
    },
    "provider" : {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "The Big Bank"
    }
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 2,
  "size" : 30,
  "empty" : false
}
Example 2 - Query on organization number
Curl
$ curl 'https://smp.difi.no/rest/api/participants?query=987654321' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8'
Request
GET /rest/api/participants?query=987654321 HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 918

{
  "content" : [ {
    "identifier" : "0eeddc80-3baa-44eb-98c2-90168ca09e91",
    "qualifiedIdentifier" : "iso6523-actorid-upis::0192:987654321",
    "icd" : "0192",
    "organizationIdentifier" : "987654321",
    "name" : "Snow Factory AS",
    "registrationDate" : "2020-08-26",
    "lastModificationDate" : "2020-09-02",
    "contact" : {
      "name" : "Snømannen Kalle",
      "email" : "kalle@snowfactory.no",
      "phoneNumber" : "111111111"
    }
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 1,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 1,
  "size" : 30,
  "empty" : false
}
Example 3 - Query on name
Curl
$ curl 'https://smp.difi.no/rest/api/participants?query=snow+fa' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8'
Request
GET /rest/api/participants?query=snow+fa HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 918

{
  "content" : [ {
    "identifier" : "0eeddc80-3baa-44eb-98c2-90168ca09e91",
    "qualifiedIdentifier" : "iso6523-actorid-upis::0192:987654321",
    "icd" : "0192",
    "organizationIdentifier" : "987654321",
    "name" : "Snow Factory AS",
    "registrationDate" : "2020-08-26",
    "lastModificationDate" : "2020-09-02",
    "contact" : {
      "name" : "Snømannen Kalle",
      "email" : "kalle@snowfactory.no",
      "phoneNumber" : "111111111"
    }
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 1,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 1,
  "size" : 30,
  "empty" : false
}
Example 4 - Sorting
Curl
$ curl 'https://smp.difi.no/rest/api/participants?sort=qualifiedIdentifier.value%2Casc' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8'
Request
GET /rest/api/participants?sort=qualifiedIdentifier.value%2Casc HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1382

{
  "content" : [ {
    "identifier" : "0eeddc80-3baa-44eb-98c2-90168ca09e91",
    "qualifiedIdentifier" : "iso6523-actorid-upis::0192:987654321",
    "icd" : "0192",
    "organizationIdentifier" : "987654321",
    "name" : "Snow Factory AS",
    "registrationDate" : "2020-08-26",
    "lastModificationDate" : "2020-09-02",
    "contact" : {
      "name" : "Snømannen Kalle",
      "email" : "kalle@snowfactory.no",
      "phoneNumber" : "111111111"
    }
  }, {
    "identifier" : "a74363a2-1038-4a3f-a599-97ff860787e0",
    "qualifiedIdentifier" : "iso6523-actorid-upis::0192:222222222",
    "icd" : "0192",
    "organizationIdentifier" : "222222222",
    "name" : "Doofenshmirtz Evil Inc",
    "registrationDate" : "2001-05-12",
    "lastModificationDate" : "2020-09-01",
    "contact" : {
      "name" : "Heinz Doofenshmirtz",
      "email" : "heinz.doofemshmirtz@evil.inc",
      "phoneNumber" : "22222222"
    }
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : true,
      "unsorted" : false,
      "empty" : false
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "sort" : {
    "sorted" : true,
    "unsorted" : false,
    "empty" : false
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 2,
  "size" : 30,
  "empty" : false
}
Example 5 - Paging
Curl
$ curl 'https://smp.difi.no/rest/api/participants?page=3&size=10' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8'
Request
GET /rest/api/participants?page=3&size=10 HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1383

{
  "content" : [ {
    "identifier" : "0eeddc80-3baa-44eb-98c2-90168ca09e91",
    "qualifiedIdentifier" : "iso6523-actorid-upis::0192:987654321",
    "icd" : "0192",
    "organizationIdentifier" : "987654321",
    "name" : "Snow Factory AS",
    "registrationDate" : "2020-08-26",
    "lastModificationDate" : "2020-09-02",
    "contact" : {
      "name" : "Snømannen Kalle",
      "email" : "kalle@snowfactory.no",
      "phoneNumber" : "111111111"
    }
  }, {
    "identifier" : "a74363a2-1038-4a3f-a599-97ff860787e0",
    "qualifiedIdentifier" : "iso6523-actorid-upis::0192:222222222",
    "icd" : "0192",
    "organizationIdentifier" : "222222222",
    "name" : "Doofenshmirtz Evil Inc",
    "registrationDate" : "2001-05-12",
    "lastModificationDate" : "2020-09-01",
    "contact" : {
      "name" : "Heinz Doofenshmirtz",
      "email" : "heinz.doofemshmirtz@evil.inc",
      "phoneNumber" : "22222222"
    }
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 3,
    "pageSize" : 10,
    "offset" : 30,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 4,
  "totalElements" : 32,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : false,
  "number" : 3,
  "numberOfElements" : 2,
  "size" : 10,
  "empty" : false
}
About the service
Request parameters
Parameter Description

page

Page you want to retrieve. First page is page 0

size

Size of the page you want to retrieve.

sort

Properties that should be sorted by in the format property,property(,ASC|DESC). Default sort direction is ascending. Use multiple sort parameters if you want to switch directions, e.g. ?sort=firstname&sort=lastname,asc.

query

Search for name and organization number.

processes

Set this to true if you want the response to include participant processes. Default: false

Response fields
Path Type Description

content[].identifier

String

A participant identifier that is an UUID.

content[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

content[].icd

String

An International Code Designator (ICD) value, which uniquely identifies the authority which issued the code to the organization, up to 4 digits

content[].organizationIdentifier

String

An organization identifier, up to a maximum of 35 characters.

content[].name

String

Organization name

content[].registrationDate

String

Registration date

content[].lastModificationDate

String

Last modification date

content[].deleteDate

String

Date the participant will be deleted.

content[].provider

Object

The service provider.

content[].processes

Array

List of processes.

content[].contact.name

String

Name of the contact.

content[].contact.email

String

Email of the contact.

content[].contact.phoneNumber

String

The phone number of the contact.

content[].provider.title

String

The name of service provider.

content[].provider.identifier

String

A universally unique identifier.

content[].processes[].identifier

String

A UUID identifier.

content[].processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

content[].processes[].domain

String

The domain that this process belongs to.

content[].processes[].title

String

A title describing the process.

content[].processes[].alias

String

An alias for the process title

content[].processes[].restricted

Boolean

If the process has been deprecated.

content[].processes[].visible

Boolean

If the process is visible in the SMP lookup.

content[].processes[].capabilities

Array

A list of capabilities

content[].processes[].documentTypes

Array

A list of document types

content[].processes[].dependencies

Array

A list of dependencies

content[].processes[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

content[].processes[].capabilities[].identifier

String

A UUID identifier.

content[].processes[].capabilities[].title

String

The capability title.

content[].processes[].documentTypes[].identifier

String

A UUID identifier.

content[].processes[].documentTypes[].title

String

The document type title.

content[].processes[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

content[].processes[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

content[].processes[].dependencies[].identifier

String

A UUID identifier.

content[].processes[].dependencies[].title

String

The dependency title.

content[].processes[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

content[].processes[].dependencies[].restricted

Boolean

If the process has been deprecated.

content[].processes[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

last

Boolean

A boolean value indicating if this is the last page or not.

totalElements

Number

The total number of elements

totalPages

Number

The total number of pages

size

Number

The page size

number

Number

The page number

first

Boolean

A boolean value indicating if this is the first page or not.

numberOfElements

Number

Number of elements returned in the page.

empty

Boolean

True if the page is empty. False if not.

sort.sorted

Boolean

True if the result set is sorted. False otherwise.

sort.unsorted

Boolean

True if the result set is unsorted. False otherwise.

sort.empty

Boolean

True if no sorting. False otherwise

pageable.offset

Number

The offset to be taken according to the underlying page and page size.

pageable.pageSize

Number

The requested page size

pageable.pageNumber

Number

The requested page number

pageable.sort.sorted

Boolean

True if the result set is sorted. False otherwise.

pageable.sort.unsorted

Boolean

True if the result set is unsorted. False otherwise.

pageable.sort.empty

Boolean

True if no sorting. False otherwise

Get participant

Use this service to get information about a participant.

Example 1 - Get a participant by qualified identifier
Curl
$ curl 'https://smp.difi.no/rest/api/participants/iso6523-actorid-upis::0192:222222222' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.get.v1+json;charset=UTF-8'
Request
GET /rest/api/participants/iso6523-actorid-upis::0192:222222222 HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.get.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.get.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2215

{
  "identifier" : "a74363a2-1038-4a3f-a599-97ff860787e0",
  "qualifiedIdentifier" : "iso6523-actorid-upis::0192:222222222",
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "name" : "Doofenshmirtz Evil Inc",
  "registrationDate" : "2001-05-12",
  "lastModificationDate" : "2020-09-01",
  "contact" : {
    "name" : "Heinz Doofenshmirtz",
    "email" : "heinz.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222222"
  },
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
    "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
    "restricted" : false,
    "capabilities" : [ {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "peppolbis_order"
    } ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ {
      "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
      "title" : "TEST DEPENDENCY",
      "restricted" : false
    } ],
    "requiredICDs" : [ "0192" ]
  }, {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_28A_2.0",
    "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
    "restricted" : false,
    "capabilities" : [ ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ ],
    "requiredICDs" : [ "9908" ]
  } ]
}
Example 2 - Get a participant by identifier
Curl
$ curl 'https://smp.difi.no/rest/api/participants/a74363a2-1038-4a3f-a599-97ff860787e0' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.get.v1+json;charset=UTF-8'
Request
GET /rest/api/participants/a74363a2-1038-4a3f-a599-97ff860787e0 HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.get.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.get.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2441

{
  "identifier" : "a74363a2-1038-4a3f-a599-97ff860787e0",
  "qualifiedIdentifier" : "iso6523-actorid-upis::0192:222222222",
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "name" : "Doofenshmirtz Evil Inc",
  "registrationDate" : "2001-05-12",
  "lastModificationDate" : "2020-09-01",
  "contact" : {
    "name" : "Heinz Doofenshmirtz",
    "email" : "heinz.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222222"
  },
  "provider" : {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "The Big Bank"
  },
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
    "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
    "restricted" : false,
    "visible" : true,
    "capabilities" : [ {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "peppolbis_order"
    } ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something",
      "visible" : true
    } ],
    "dependencies" : [ {
      "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
      "title" : "TEST DEPENDENCY",
      "restricted" : false,
      "visible" : true
    } ],
    "requiredICDs" : [ "0192" ]
  }, {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_28A_2.0",
    "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
    "restricted" : false,
    "visible" : true,
    "capabilities" : [ ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something",
      "visible" : true
    } ],
    "dependencies" : [ ],
    "requiredICDs" : [ "9908" ]
  } ]
}
Example 3 - Not found
Curl
$ curl 'https://smp.difi.no/rest/api/participants/iso6523-actorid-upis::0192:333333333' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.get.v1+json;charset=UTF-8'
Request
GET /rest/api/participants/iso6523-actorid-upis::0192:333333333 HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.get.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 404 Not Found
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 302

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 404,
  "error" : "Not Found",
  "exception" : "no.difi.elma.lang.NotFoundException",
  "message" : "Couldn't find organization for iso6523-actorid-upis::0192:333333333",
  "path" : "/rest/api/participants/iso6523-actorid-upis::0192:333333333"
}
About the service
Path parameters
Table 4. /rest/api/participants/{qualifiedIdentifier}
Parameter Description

qualifiedIdentifier

An identifier that is qualified by a schema. It consists of <scheme> :: <ICD> : <organizationIdentifier>.

Response fields
Path Type Description

identifier

String

A participant identifier that is an UUID.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

icd

String

An International Code Designator (ICD) value, which uniquely identifies the authority which issued the code to the organization, up to 4 digits

organizationIdentifier

String

An organization identifier, up to a maximum of 35 characters.

name

String

Organization name

registrationDate

String

Registration date

lastModificationDate

String

Last modification date

deleteDate

String

Date the participant will be deleted.

provider

Object

The service provider.

processes

Array

List of processes.

contact.name

String

Name of the contact.

contact.email

String

Email of the contact.

contact.phoneNumber

String

The phone number of the contact.

provider.title

String

The name of service provider.

provider.identifier

String

A universally unique identifier.

processes[].identifier

String

A UUID identifier.

processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

processes[].domain

String

The domain that this process belongs to.

processes[].title

String

A title describing the process.

processes[].alias

String

An alias for the process title

processes[].restricted

Boolean

If the process has been deprecated.

processes[].visible

Boolean

If the process is visible in the SMP lookup.

processes[].capabilities

Array

A list of capabilities

processes[].documentTypes

Array

A list of document types

processes[].dependencies

Array

A list of dependencies

processes[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

processes[].capabilities[].identifier

String

A UUID identifier.

processes[].capabilities[].title

String

The capability title.

processes[].documentTypes[].identifier

String

A UUID identifier.

processes[].documentTypes[].title

String

The document type title.

processes[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

processes[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

processes[].dependencies[].identifier

String

A UUID identifier.

processes[].dependencies[].title

String

The dependency title.

processes[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

processes[].dependencies[].restricted

Boolean

If the process has been deprecated.

processes[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Add participant

Use this service to add a new participant.

Example 1 - Add a participant
Curl
$ curl 'https://smp.difi.no/rest/api/participants' -i -u 'sp1:pw123' -X POST \
    -H 'Content-Type: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8' \
    -d '{
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "name" : "Doofenshmirtz Evil Inc",
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423"
  } ],
  "contact" : {
    "name" : "Heinz Doofenshmirtz",
    "email" : "heinz.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222222"
  }
}'
Request
POST /rest/api/participants HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8
Content-Length: 318
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no

{
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "name" : "Doofenshmirtz Evil Inc",
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423"
  } ],
  "contact" : {
    "name" : "Heinz Doofenshmirtz",
    "email" : "heinz.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222222"
  }
}
Response
HTTP/1.1 201 Created
Content-Type: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1494

{
  "identifier" : "a74363a2-1038-4a3f-a599-97ff860787e0",
  "qualifiedIdentifier" : "iso6523-actorid-upis::0192:222222222",
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "name" : "Doofenshmirtz Evil Inc",
  "registrationDate" : "2001-05-12",
  "lastModificationDate" : "2020-09-01",
  "contact" : {
    "name" : "Heinz Doofenshmirtz",
    "email" : "heinz.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222222"
  },
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
    "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
    "restricted" : false,
    "capabilities" : [ {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "peppolbis_order"
    } ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ {
      "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
      "title" : "TEST DEPENDENCY",
      "restricted" : false
    } ],
    "requiredICDs" : [ "0192" ]
  } ]
}
Example 2 - Missing contact in input
Curl
$ curl 'https://smp.difi.no/rest/api/participants' -i -u 'sp1:pw123' -X POST \
    -H 'Content-Type: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8' \
    -d '{
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423"
  } ]
}'
Request
POST /rest/api/participants HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.participants.add.v1+json;charset=UTF-8
Content-Length: 147
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no

{
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423"
  } ]
}
Response
HTTP/1.1 400 Bad Request
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 775

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 400,
  "error" : "Bad Request",
  "exception" : "org.springframework.web.bind.MethodArgumentNotValidException",
  "message" : "Validation failed for object='addParticipantFormDTO'. Error count: 1",
  "errors" : [ {
    "codes" : [ "NotNull.addParticipantFormDTO.contact", "NotNull.contact", "NotNull.no.difi.elma.dto.rest.ContactFormDTO", "NotNull" ],
    "arguments" : [ {
      "codes" : [ "addParticipantFormDTO.contact", "contact" ],
      "defaultMessage" : "contact",
      "code" : "contact"
    } ],
    "defaultMessage" : "must not be null",
    "objectName" : "addParticipantFormDTO",
    "field" : "contact",
    "bindingFailure" : false,
    "code" : "NotNull"
  } ],
  "path" : "/rest/api/participants"
}
About the service
Request fields
Path Type Description Constraints

icd

String

An International Code Designator (ICD) value, which uniquely identifies the authority which issued the code to the organization, up to 4 digits

Must not be null

organizationIdentifier

String

An organization identifier, up to a maximum of 35 characters.

Must not be empty

name

String

Organization name

processes

Array

A list of processes.

Must not be null

processes[].identifier

String

A UUID identifier.

contact.name

String

Name of the contact.

Must not be empty

contact.email

String

Email of the contact.

Must be a well-formed email address

contact.phoneNumber

String

The phone number of the contact.

'${validatedValue}' is not a valid phone number.. Must not be empty

Response fields
Path Type Description

identifier

String

A participant identifier that is an UUID.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

icd

String

An International Code Designator (ICD) value, which uniquely identifies the authority which issued the code to the organization, up to 4 digits

organizationIdentifier

String

An organization identifier, up to a maximum of 35 characters.

name

String

Organization name

registrationDate

String

Registration date

lastModificationDate

String

Last modification date

deleteDate

String

Date the participant will be deleted.

provider

Object

The service provider.

processes

Array

List of processes.

contact.name

String

Name of the contact.

contact.email

String

Email of the contact.

contact.phoneNumber

String

The phone number of the contact.

provider.title

String

The name of service provider.

provider.identifier

String

A universally unique identifier.

processes[].identifier

String

A UUID identifier.

processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

processes[].domain

String

The domain that this process belongs to.

processes[].title

String

A title describing the process.

processes[].alias

String

An alias for the process title

processes[].restricted

Boolean

If the process has been deprecated.

processes[].visible

Boolean

If the process is visible in the SMP lookup.

processes[].capabilities

Array

A list of capabilities

processes[].documentTypes

Array

A list of document types

processes[].dependencies

Array

A list of dependencies

processes[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

processes[].capabilities[].identifier

String

A UUID identifier.

processes[].capabilities[].title

String

The capability title.

processes[].documentTypes[].identifier

String

A UUID identifier.

processes[].documentTypes[].title

String

The document type title.

processes[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

processes[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

processes[].dependencies[].identifier

String

A UUID identifier.

processes[].dependencies[].title

String

The dependency title.

processes[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

processes[].dependencies[].restricted

Boolean

If the process has been deprecated.

processes[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Update participant

Use this service to update a participant.

Example 1 - Update a participant
Curl
$ curl 'https://smp.difi.no/rest/api/participants/iso6523-actorid-upis::0192:222222222' -i -u 'sp1:pw123' -X PUT \
    -H 'Content-Type: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8' \
    -d '{
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423"
  }, {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696"
  } ],
  "contact" : {
    "name" : "Roger Doofenshmirtz",
    "email" : "roger.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222233"
  }
}'
Request
PUT /rest/api/participants/iso6523-actorid-upis::0192:222222222 HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8
Content-Length: 286
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no

{
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423"
  }, {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696"
  } ],
  "contact" : {
    "name" : "Roger Doofenshmirtz",
    "email" : "roger.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222233"
  }
}
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2215

{
  "identifier" : "a74363a2-1038-4a3f-a599-97ff860787e0",
  "qualifiedIdentifier" : "iso6523-actorid-upis::0192:222222222",
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "name" : "Doofenshmirtz Evil Inc",
  "registrationDate" : "2001-05-12",
  "lastModificationDate" : "2020-09-01",
  "contact" : {
    "name" : "Roger Doofenshmirtz",
    "email" : "roger.doofemshmirtz@evil.inc",
    "phoneNumber" : "22222233"
  },
  "processes" : [ {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_28A_2.0",
    "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
    "restricted" : false,
    "capabilities" : [ ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ ],
    "requiredICDs" : [ "9908" ]
  }, {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
    "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
    "restricted" : false,
    "capabilities" : [ {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "peppolbis_order"
    } ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ {
      "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
      "title" : "TEST DEPENDENCY",
      "restricted" : false
    } ],
    "requiredICDs" : [ "0192" ]
  } ]
}
Example 2 - Missing contact in input
Curl
$ curl 'https://smp.difi.no/rest/api/participants/iso6523-actorid-upis::0192:222222222' -i -u 'sp1:pw123' -X PUT \
    -H 'Content-Type: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8' \
    -d '{
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423"
  } ]
}'
Request
PUT /rest/api/participants/iso6523-actorid-upis::0192:222222222 HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.participants.update.v1+json;charset=UTF-8
Content-Length: 147
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no

{
  "icd" : "0192",
  "organizationIdentifier" : "222222222",
  "processes" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423"
  } ]
}
Response
HTTP/1.1 400 Bad Request
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 824

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 400,
  "error" : "Bad Request",
  "exception" : "org.springframework.web.bind.MethodArgumentNotValidException",
  "message" : "Validation failed for object='updateParticipantFormDTO'. Error count: 1",
  "errors" : [ {
    "codes" : [ "NotNull.updateParticipantFormDTO.contact", "NotNull.contact", "NotNull.no.difi.elma.dto.rest.ContactFormDTO", "NotNull" ],
    "arguments" : [ {
      "codes" : [ "updateParticipantFormDTO.contact", "contact" ],
      "defaultMessage" : "contact",
      "code" : "contact"
    } ],
    "defaultMessage" : "must not be null",
    "objectName" : "updateParticipantFormDTO",
    "field" : "contact",
    "bindingFailure" : false,
    "code" : "NotNull"
  } ],
  "path" : "/rest/api/participants/iso6523-actorid-upis::0192:222222222"
}
About the service
Request fields
Path Type Description Constraints

processes

Array

A list of processes.

Must not be null

processes[].identifier

String

A UUID identifier.

contact.name

String

Name of the contact.

Must not be empty

contact.email

String

Email of the contact.

Must be a well-formed email address

contact.phoneNumber

String

The phone number of the contact.

'${validatedValue}' is not a valid phone number.. Must not be empty

Path parameters
Table 5. /rest/api/participants/{qualifiedIdentifier}
Parameter Description

qualifiedIdentifier

An identifier that is qualified by a schema. It consists of <scheme> :: <ICD> : <organizationIdentifier>.

Response fields
Path Type Description

identifier

String

A participant identifier that is an UUID.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

icd

String

An International Code Designator (ICD) value, which uniquely identifies the authority which issued the code to the organization, up to 4 digits

organizationIdentifier

String

An organization identifier, up to a maximum of 35 characters.

name

String

Organization name

registrationDate

String

Registration date

lastModificationDate

String

Last modification date

deleteDate

String

Date the participant will be deleted.

provider

Object

The service provider.

processes

Array

List of processes.

contact.name

String

Name of the contact.

contact.email

String

Email of the contact.

contact.phoneNumber

String

The phone number of the contact.

provider.title

String

The name of service provider.

provider.identifier

String

A universally unique identifier.

processes[].identifier

String

A UUID identifier.

processes[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

processes[].domain

String

The domain that this process belongs to.

processes[].title

String

A title describing the process.

processes[].alias

String

An alias for the process title

processes[].restricted

Boolean

If the process has been deprecated.

processes[].visible

Boolean

If the process is visible in the SMP lookup.

processes[].capabilities

Array

A list of capabilities

processes[].documentTypes

Array

A list of document types

processes[].dependencies

Array

A list of dependencies

processes[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

processes[].capabilities[].identifier

String

A UUID identifier.

processes[].capabilities[].title

String

The capability title.

processes[].documentTypes[].identifier

String

A UUID identifier.

processes[].documentTypes[].title

String

The document type title.

processes[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

processes[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

processes[].dependencies[].identifier

String

A UUID identifier.

processes[].dependencies[].title

String

The dependency title.

processes[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

processes[].dependencies[].restricted

Boolean

If the process has been deprecated.

processes[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Delete participant

Use this service to delete a participant.

Example 1 - Delete a participant by qualified identifier
Curl
$ curl 'https://smp.difi.no/rest/api/participants/iso6523-actorid-upis::0192:222222222' -i -u 'sp1:pw123' -X DELETE \
    -H 'Accept: application/vnd.no.digdir.elma.participants.delete.v1+json;charset=UTF-8'
Request
DELETE /rest/api/participants/iso6523-actorid-upis::0192:222222222 HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.delete.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Example 2 - Delete a participant by identifier
Curl
$ curl 'https://smp.difi.no/rest/api/participants/a74363a2-1038-4a3f-a599-97ff860787e0' -i -u 'sp1:pw123' -X DELETE \
    -H 'Accept: application/vnd.no.digdir.elma.participants.delete.v1+json;charset=UTF-8'
Request
DELETE /rest/api/participants/a74363a2-1038-4a3f-a599-97ff860787e0 HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.delete.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Example 3 - Not found
Curl
$ curl 'https://smp.difi.no/rest/api/participants/iso6523-actorid-upis::0192:333333333' -i -u 'sp1:pw123' -X DELETE \
    -H 'Accept: application/vnd.no.digdir.elma.participants.delete.v1+json;charset=UTF-8'
Request
DELETE /rest/api/participants/iso6523-actorid-upis::0192:333333333 HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.delete.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 404 Not Found
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 302

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 404,
  "error" : "Not Found",
  "exception" : "no.difi.elma.lang.NotFoundException",
  "message" : "Couldn't find organization for iso6523-actorid-upis::0192:333333333",
  "path" : "/rest/api/participants/iso6523-actorid-upis::0192:333333333"
}
About the service

There are two variants.

By qualified identifier
Path parameters
Table 6. /rest/api/participants/{qualifiedIdentifier}
Parameter Description

qualifiedIdentifier

An identifier that is qualified by a schema. It consists of <scheme> :: <ICD> : <organizationIdentifier>.

By UUID identifier
Path parameters
Table 7. /rest/api/participants/{identifier}
Parameter Description

identifier

A participant identifier that is an UUID.

Get participant processes

Use this service to get processes belonging to a participant.

Example 1 - Get participant processes by qualified identifier
Curl
$ curl 'https://smp.difi.no/rest/api/participants/iso6523-actorid-upis::0192:222222222/processes' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.processes.v1+json;charset=UTF-8'
Request
GET /rest/api/participants/iso6523-actorid-upis::0192:222222222/processes HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.processes.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.processes.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1687

[ {
  "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "restricted" : false,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "peppolbis_order"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
    "title" : "TEST DEPENDENCY",
    "restricted" : false
  } ],
  "requiredICDs" : [ "0192" ]
}, {
  "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_28A_2.0",
  "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
  "restricted" : false,
  "capabilities" : [ ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something"
  } ],
  "dependencies" : [ ],
  "requiredICDs" : [ "9908" ]
} ]
Example 2 - Get participant processes by identifier
Curl
$ curl 'https://smp.difi.no/rest/api/participants/a74363a2-1038-4a3f-a599-97ff860787e0/processes' -i -u 'dfo:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.participants.processes.v1+json;charset=UTF-8'
Request
GET /rest/api/participants/a74363a2-1038-4a3f-a599-97ff860787e0/processes HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.processes.v1+json;charset=UTF-8
Authorization: Basic ZGZvOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.participants.processes.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1793

[ {
  "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "peppolbis_order"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
    "title" : "TEST DEPENDENCY",
    "restricted" : false,
    "visible" : true
  } ],
  "requiredICDs" : [ "0192" ]
}, {
  "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_28A_2.0",
  "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ ],
  "requiredICDs" : [ "9908" ]
} ]
About the service
Path parameters
Table 8. /rest/api/participants/{qualifiedIdentifier}/processes
Parameter Description

qualifiedIdentifier

An identifier that is qualified by a schema. It consists of <scheme> :: <ICD> : <organizationIdentifier>.

Response fields
Path Type Description

[].identifier

String

A UUID identifier.

[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

[].domain

String

The domain that this process belongs to.

[].title

String

A title describing the process.

[].alias

String

An alias for the process title

[].restricted

Boolean

If the process has been deprecated.

[].visible

Boolean

If the process is visible in the SMP lookup.

[].capabilities

Array

A list of capabilities

[].documentTypes

Array

A list of document types

[].dependencies

Array

A list of dependencies

[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

[].capabilities[].identifier

String

A UUID identifier.

[].capabilities[].title

String

The capability title.

[].documentTypes[].identifier

String

A UUID identifier.

[].documentTypes[].title

String

The document type title.

[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

[].dependencies[].identifier

String

A UUID identifier.

[].dependencies[].title

String

The dependency title.

[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

[].dependencies[].restricted

Boolean

If the process has been deprecated.

[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Transfer participant

Use this service to transfer a participant to another service provider.

Example 1 - Transfer participant
Curl
$ curl 'https://smp.difi.no/rest/api/participants/iso6523-actorid-upis::0192:222222222/transfer/ab5e28f5-703d-5528-8b1f-a417c1ff99cc' -i -u 'sp1:pw123' -X PUT \
    -H 'Accept: application/vnd.no.digdir.elma.participants.transfer.v1+json;charset=UTF-8'
Request
PUT /rest/api/participants/iso6523-actorid-upis::0192:222222222/transfer/ab5e28f5-703d-5528-8b1f-a417c1ff99cc HTTP/1.1
Accept: application/vnd.no.digdir.elma.participants.transfer.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
About the service
Path parameters
Table 9. /rest/api/participants/{qualifiedIdentifier}/transfer/{serviceProviderIdentifier}
Parameter Description

qualifiedIdentifier

An identifier that is qualified by a schema. It consists of <scheme> :: <ICD> : <organizationIdentifier>.

serviceProviderIdentifier

Identifier of the Service Provider that should receive the participant to be transferred.

Processes

Find processes (Array)

The service is used to search for Processes. The response is an array.

Example 1 - Find all Processes
Curl
$ curl 'https://smp.difi.no/rest/api/processes' -i -u 'dfo:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.processes.stream.v1+json;charset=UTF-8'
Request
GET /rest/api/processes HTTP/1.1
Accept: application/vnd.no.digdir.elma.processes.stream.v1+json;charset=UTF-8
Authorization: Basic ZGZvOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.processes.stream.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1793

[ {
  "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "peppolbis_order"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
    "title" : "TEST DEPENDENCY",
    "restricted" : false,
    "visible" : true
  } ],
  "requiredICDs" : [ "0192" ]
}, {
  "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_28A_2.0",
  "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ ],
  "requiredICDs" : [ "9908" ]
} ]
About the service
Response fields
Path Type Description

[].identifier

String

A UUID identifier.

[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

[].domain

String

The domain that this process belongs to.

[].title

String

A title describing the process.

[].alias

String

An alias for the process title

[].restricted

Boolean

If the process has been deprecated.

[].visible

Boolean

If the process is visible in the SMP lookup.

[].capabilities

Array

A list of capabilities

[].documentTypes

Array

A list of document types

[].dependencies

Array

A list of dependencies

[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

[].capabilities[].identifier

String

A UUID identifier.

[].capabilities[].title

String

The capability title.

[].documentTypes[].identifier

String

A UUID identifier.

[].documentTypes[].title

String

The document type title.

[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

[].dependencies[].identifier

String

A UUID identifier.

[].dependencies[].title

String

The dependency title.

[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

[].dependencies[].restricted

Boolean

If the process has been deprecated.

[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Find processes (Paged)

The service is used to search for Processes. The response is paged with a default page size of 10.

Example 1 - Find all Processes
Curl
$ curl 'https://smp.difi.no/rest/api/processes' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8'
Request
GET /rest/api/processes HTTP/1.1
Accept: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2350

{
  "content" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
    "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
    "restricted" : false,
    "visible" : true,
    "capabilities" : [ {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "peppolbis_order"
    } ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something",
      "visible" : true
    } ],
    "dependencies" : [ {
      "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
      "title" : "TEST DEPENDENCY",
      "restricted" : false,
      "visible" : true
    } ],
    "requiredICDs" : [ "0192" ]
  }, {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_28A_2.0",
    "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
    "restricted" : false,
    "visible" : true,
    "capabilities" : [ ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something",
      "visible" : true
    } ],
    "dependencies" : [ ],
    "requiredICDs" : [ "9908" ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 2,
  "size" : 30,
  "empty" : false
}
Example 2 - Sorting
Curl
$ curl 'https://smp.difi.no/rest/api/processes?sort=qualifiedIdentifier.value%2Casc' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8'
Request
GET /rest/api/processes?sort=qualifiedIdentifier.value%2Casc HTTP/1.1
Accept: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2236

{
  "content" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
    "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
    "restricted" : false,
    "capabilities" : [ {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "peppolbis_order"
    } ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ {
      "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
      "title" : "TEST DEPENDENCY",
      "restricted" : false
    } ],
    "requiredICDs" : [ "0192" ]
  }, {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_28A_2.0",
    "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
    "restricted" : false,
    "capabilities" : [ ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ ],
    "requiredICDs" : [ "9908" ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : true,
      "unsorted" : false,
      "empty" : false
    },
    "pageNumber" : 0,
    "pageSize" : 30,
    "offset" : 0,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "sort" : {
    "sorted" : true,
    "unsorted" : false,
    "empty" : false
  },
  "first" : true,
  "number" : 0,
  "numberOfElements" : 2,
  "size" : 30,
  "empty" : false
}
Example 3 - Paging
Curl
$ curl 'https://smp.difi.no/rest/api/processes?page=3&size=10' -i -u 'sp1:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8'
Request
GET /rest/api/processes?page=3&size=10 HTTP/1.1
Accept: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8
Authorization: Basic c3AxOnB3MTIz
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.processes.find.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2237

{
  "content" : [ {
    "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
    "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
    "restricted" : false,
    "capabilities" : [ {
      "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
      "title" : "peppolbis_order"
    } ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ {
      "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
      "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
      "title" : "TEST DEPENDENCY",
      "restricted" : false
    } ],
    "requiredICDs" : [ "0192" ]
  }, {
    "identifier" : "705d8c8d-8ff1-4c21-a444-3e7481595696",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:www.cenbii.eu:profile:bii28:ver2.0",
    "domain" : "Post-Award",
    "title" : "PEPPOLBIS_28A_2.0",
    "alias" : "PEPPOL BIS Ordering 2.0 (Profile 28A)",
    "restricted" : false,
    "capabilities" : [ ],
    "documentTypes" : [ {
      "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
      "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
      "title" : "something"
    } ],
    "dependencies" : [ ],
    "requiredICDs" : [ "9908" ]
  } ],
  "pageable" : {
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "pageNumber" : 3,
    "pageSize" : 10,
    "offset" : 30,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 4,
  "totalElements" : 32,
  "sort" : {
    "sorted" : false,
    "unsorted" : true,
    "empty" : true
  },
  "first" : false,
  "number" : 3,
  "numberOfElements" : 2,
  "size" : 10,
  "empty" : false
}
About the service
Request parameters
Parameter Description

page

Page you want to retrieve. First page is page 0

size

Size of the page you want to retrieve.

sort

Properties that should be sorted by in the format property,property(,ASC|DESC). Default sort direction is ascending. Use multiple sort parameters if you want to switch directions, e.g. ?sort=firstname&sort=lastname,asc.

Response fields
Path Type Description

content[].identifier

String

A UUID identifier.

content[].qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

content[].domain

String

The domain that this process belongs to.

content[].title

String

A title describing the process.

content[].alias

String

An alias for the process title

content[].restricted

Boolean

If the process has been deprecated.

content[].visible

Boolean

If the process is visible in the SMP lookup.

content[].capabilities

Array

A list of capabilities

content[].documentTypes

Array

A list of document types

content[].dependencies

Array

A list of dependencies

content[].requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

content[].capabilities[].identifier

String

A UUID identifier.

content[].capabilities[].title

String

The capability title.

content[].documentTypes[].identifier

String

A UUID identifier.

content[].documentTypes[].title

String

The document type title.

content[].documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

content[].documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

content[].dependencies[].identifier

String

A UUID identifier.

content[].dependencies[].title

String

The dependency title.

content[].dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

content[].dependencies[].restricted

Boolean

If the process has been deprecated.

content[].dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

last

Boolean

A boolean value indicating if this is the last page or not.

totalElements

Number

The total number of elements

totalPages

Number

The total number of pages

size

Number

The page size

number

Number

The page number

first

Boolean

A boolean value indicating if this is the first page or not.

numberOfElements

Number

Number of elements returned in the page.

empty

Boolean

True if the page is empty. False if not.

sort.sorted

Boolean

True if the result set is sorted. False otherwise.

sort.unsorted

Boolean

True if the result set is unsorted. False otherwise.

sort.empty

Boolean

True if no sorting. False otherwise

pageable.offset

Number

The offset to be taken according to the underlying page and page size.

pageable.pageSize

Number

The requested page size

pageable.pageNumber

Number

The requested page number

pageable.sort.sorted

Boolean

True if the result set is sorted. False otherwise.

pageable.sort.unsorted

Boolean

True if the result set is unsorted. False otherwise.

pageable.sort.empty

Boolean

True if no sorting. False otherwise

Get process

Use this service to get information about a process.

Example 1 - Get a process by identifier
Curl
$ curl 'https://smp.difi.no/rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.processes.get.v1+json;charset=UTF-8'
Request
GET /rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423 HTTP/1.1
Accept: application/vnd.no.digdir.elma.processes.get.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.processes.get.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1056

{
  "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "peppolbis_order"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
    "title" : "TEST DEPENDENCY",
    "restricted" : false,
    "visible" : true
  } ],
  "requiredICDs" : [ "0192" ]
}
Example 2 - Not found
Curl
$ curl 'https://smp.difi.no/rest/api/processes/4891fab2-03da-42b1-812b-a9cf624ea588' -i -u 'admin:pw123' -X GET \
    -H 'Accept: application/vnd.no.digdir.elma.processes.get.v1+json;charset=UTF-8'
Request
GET /rest/api/processes/4891fab2-03da-42b1-812b-a9cf624ea588 HTTP/1.1
Accept: application/vnd.no.digdir.elma.processes.get.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 404 Not Found
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 311

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 404,
  "error" : "Not Found",
  "exception" : "no.difi.elma.lang.NotFoundException",
  "message" : "Unable to find instance with identifier '4891fab2-03da-42b1-812b-a9cf624ea588'.",
  "path" : "/rest/api/processes/4891fab2-03da-42b1-812b-a9cf624ea588"
}
About the service
Path parameters
Table 10. /rest/api/processes/{identifier}
Parameter Description

identifier

A process identifier that is an UUID.

Response fields
Path Type Description

.identifier

String

A UUID identifier.

.qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

.domain

String

The domain that this process belongs to.

.title

String

A title describing the process.

.alias

String

An alias for the process title

.restricted

Boolean

If the process has been deprecated.

.visible

Boolean

If the process is visible in the SMP lookup.

.capabilities

Array

A list of capabilities

.documentTypes

Array

A list of document types

.dependencies

Array

A list of dependencies

.requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

.capabilities[].identifier

String

A UUID identifier.

.capabilities[].title

String

The capability title.

.documentTypes[].identifier

String

A UUID identifier.

.documentTypes[].title

String

The document type title.

.documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

.documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

.dependencies[].identifier

String

A UUID identifier.

.dependencies[].title

String

The dependency title.

.dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

.dependencies[].restricted

Boolean

If the process has been deprecated.

.dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Add process

Use this service to add a new process.

Example 1 - Add a process
Curl
$ curl 'https://smp.difi.no/rest/api/processes' -i -u 'dfo:pw123' -X POST \
    -H 'Content-Type: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8' \
    -d '{
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd"
  } ],
  "requiredICDs" : [ "0192" ]
}'
Request
POST /rest/api/processes HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8
Content-Length: 553
Authorization: Basic ZGZvOnB3MTIz
Host: smp.difi.no

{
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd"
  } ],
  "requiredICDs" : [ "0192" ]
}
Response
HTTP/1.1 201 Created
Content-Type: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1056

{
  "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "peppolbis_order"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
    "title" : "TEST DEPENDENCY",
    "restricted" : false,
    "visible" : true
  } ],
  "requiredICDs" : [ "0192" ]
}
Example 2 - Missing domain in input
Curl
$ curl 'https://smp.difi.no/rest/api/processes' -i -u 'admin:pw123' -X POST \
    -H 'Content-Type: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8' \
    -d '{
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd"
  } ],
  "requiredICDs" : [ "0192" ]
}'
Request
POST /rest/api/processes HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.processes.add.v1+json;charset=UTF-8
Content-Length: 526
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no

{
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd"
  } ],
  "requiredICDs" : [ "0192" ]
}
Response
HTTP/1.1 400 Bad Request
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 717

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 400,
  "error" : "Bad Request",
  "exception" : "org.springframework.web.bind.MethodArgumentNotValidException",
  "message" : "Validation failed for object='processFormDTO'. Error count: 1",
  "errors" : [ {
    "codes" : [ "NotNull.processFormDTO.domain", "NotNull.domain", "NotNull.java.lang.String", "NotNull" ],
    "arguments" : [ {
      "codes" : [ "processFormDTO.domain", "domain" ],
      "defaultMessage" : "domain",
      "code" : "domain"
    } ],
    "defaultMessage" : "must not be null",
    "objectName" : "processFormDTO",
    "field" : "domain",
    "bindingFailure" : false,
    "code" : "NotNull"
  } ],
  "path" : "/rest/api/processes"
}
About the service
Request fields
Path Type Description Constraints

domain

String

The domain that this process belongs to.

title

String

A title describing the process.

alias

String

An alias for the process title

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

restricted

Boolean

If the process has been deprecated.

visible

Boolean

If the process is visible in the SMP lookup.

capabilities

Array

A list of capabilities

documentTypes

Array

A list of document types

dependencies

Array

A list of dependencies

requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

capabilities[].identifier

String

A UUID identifier.

documentTypes[].identifier

String

A UUID identifier.

dependencies[].identifier

String

A UUID identifier.

Response fields
Path Type Description

identifier

String

A UUID identifier.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

domain

String

The domain that this process belongs to.

title

String

A title describing the process.

alias

String

An alias for the process title

restricted

Boolean

If the process has been deprecated.

visible

Boolean

If the process is visible in the SMP lookup.

capabilities

Array

A list of capabilities

documentTypes

Array

A list of document types

dependencies

Array

A list of dependencies

requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

capabilities[].identifier

String

A UUID identifier.

capabilities[].title

String

The capability title.

documentTypes[].identifier

String

A UUID identifier.

documentTypes[].title

String

The document type title.

documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

dependencies[].identifier

String

A UUID identifier.

dependencies[].title

String

The dependency title.

dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

dependencies[].restricted

Boolean

If the process has been deprecated.

dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Update process

Use this service to update a process.

Example 1 - Update a process
Curl
$ curl 'https://smp.difi.no/rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423' -i -u 'admin:pw123' -X PUT \
    -H 'Content-Type: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8' \
    -d '{
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd"
  } ],
  "requiredICDs" : [ "0192" ]
}'
Request
PUT /rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423 HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8
Content-Length: 553
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no

{
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd"
  } ],
  "requiredICDs" : [ "0192" ]
}
Response
HTTP/1.1 200 OK
Content-Type: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1056

{
  "identifier" : "adf9c140-995e-4be6-a1be-a09add595423",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "domain" : "Post-Award",
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa",
    "title" : "peppolbis_order"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7",
    "qualifiedIdentifier" : "busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Order-2::Order##urn:www.cenbii.eu:transaction:biitrns001:ver2.0:extended:urn:www.peppol.eu:bis:peppol28a:ver1.0::2.1",
    "title" : "something",
    "visible" : true
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd",
    "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:dep",
    "title" : "TEST DEPENDENCY",
    "restricted" : false,
    "visible" : true
  } ],
  "requiredICDs" : [ "0192" ]
}
Example 2 - Missing domain in input
Curl
$ curl 'https://smp.difi.no/rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423' -i -u 'admin:pw123' -X PUT \
    -H 'Content-Type: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8' \
    -H 'Accept: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8' \
    -d '{
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd"
  } ],
  "requiredICDs" : [ "0192" ]
}'
Request
PUT /rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423 HTTP/1.1
Content-Type: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8
Accept: application/vnd.no.digdir.elma.processes.update.v1+json;charset=UTF-8
Content-Length: 526
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no

{
  "title" : "PEPPOLBIS_3_0_BILLING_01_UBL",
  "alias" : "PEPPOL BIS Billing 3.0 (01, UBL)",
  "qualifiedIdentifier" : "cenbii-procid-ubl::urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
  "restricted" : false,
  "visible" : true,
  "capabilities" : [ {
    "identifier" : "ab5e28f5-703d-4428-8b1f-a417c1ff99aa"
  } ],
  "documentTypes" : [ {
    "identifier" : "8e83282a-577f-4b06-8207-f8d6674b0da7"
  } ],
  "dependencies" : [ {
    "identifier" : "205391ed-d9d3-494b-a907-ebafc6890ffd"
  } ],
  "requiredICDs" : [ "0192" ]
}
Response
HTTP/1.1 400 Bad Request
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 754

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 400,
  "error" : "Bad Request",
  "exception" : "org.springframework.web.bind.MethodArgumentNotValidException",
  "message" : "Validation failed for object='processFormDTO'. Error count: 1",
  "errors" : [ {
    "codes" : [ "NotNull.processFormDTO.domain", "NotNull.domain", "NotNull.java.lang.String", "NotNull" ],
    "arguments" : [ {
      "codes" : [ "processFormDTO.domain", "domain" ],
      "defaultMessage" : "domain",
      "code" : "domain"
    } ],
    "defaultMessage" : "must not be null",
    "objectName" : "processFormDTO",
    "field" : "domain",
    "bindingFailure" : false,
    "code" : "NotNull"
  } ],
  "path" : "/rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423"
}
About the service
Request fields
Path Type Description Constraints

domain

String

The domain that this process belongs to.

title

String

A title describing the process.

alias

String

An alias for the process title

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

restricted

Boolean

If the process has been deprecated.

visible

Boolean

If the process is visible in the SMP lookup.

capabilities

Array

A list of capabilities

documentTypes

Array

A list of document types

dependencies

Array

A list of dependencies

requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

capabilities[].identifier

String

A UUID identifier.

documentTypes[].identifier

String

A UUID identifier.

dependencies[].identifier

String

A UUID identifier.

Response fields
Path Type Description

identifier

String

A UUID identifier.

qualifiedIdentifier

String

A qualified identifier that consist of a scheme and a value.

domain

String

The domain that this process belongs to.

title

String

A title describing the process.

alias

String

An alias for the process title

restricted

Boolean

If the process has been deprecated.

visible

Boolean

If the process is visible in the SMP lookup.

capabilities

Array

A list of capabilities

documentTypes

Array

A list of document types

dependencies

Array

A list of dependencies

requiredICDs

Array

A participant must have a ICD contained in this list to be able to add a process.

capabilities[].identifier

String

A UUID identifier.

capabilities[].title

String

The capability title.

documentTypes[].identifier

String

A UUID identifier.

documentTypes[].title

String

The document type title.

documentTypes[].qualifiedIdentifier

String

The qualified identifier for the document type.

documentTypes[].visible

Boolean

If the document type is visible or not in the SMP.

dependencies[].identifier

String

A UUID identifier.

dependencies[].title

String

The dependency title.

dependencies[].qualifiedIdentifier

String

The qualified identifier for the dependency.

dependencies[].restricted

Boolean

If the process has been deprecated.

dependencies[].visible

Boolean

If the process is visible in the SMP lookup.

Delete process

Use this service to delete a process.

Example 1 - Delete a process
Curl
$ curl 'https://smp.difi.no/rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423' -i -u 'admin:pw123' -X DELETE \
    -H 'Accept: application/vnd.no.digdir.elma.processes.delete.v1+json;charset=UTF-8'
Request
DELETE /rest/api/processes/adf9c140-995e-4be6-a1be-a09add595423 HTTP/1.1
Accept: application/vnd.no.digdir.elma.processes.delete.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Example 2 - Process not found
Curl
$ curl 'https://smp.difi.no/rest/api/processes/4891fab2-03da-42b1-812b-a9cf624ea588' -i -u 'admin:pw123' -X DELETE \
    -H 'Accept: application/vnd.no.digdir.elma.processes.delete.v1+json;charset=UTF-8'
Request
DELETE /rest/api/processes/4891fab2-03da-42b1-812b-a9cf624ea588 HTTP/1.1
Accept: application/vnd.no.digdir.elma.processes.delete.v1+json;charset=UTF-8
Authorization: Basic YWRtaW46cHcxMjM=
Host: smp.difi.no
Response
HTTP/1.1 404 Not Found
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 311

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 404,
  "error" : "Not Found",
  "exception" : "no.difi.elma.lang.NotFoundException",
  "message" : "Unable to find instance with identifier '4891fab2-03da-42b1-812b-a9cf624ea588'.",
  "path" : "/rest/api/processes/4891fab2-03da-42b1-812b-a9cf624ea588"
}

Errors

Response
HTTP/1.1 400 Bad Request
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 775

{
  "timestamp" : "2019-03-25T12:38:23.000",
  "status" : 400,
  "error" : "Bad Request",
  "exception" : "org.springframework.web.bind.MethodArgumentNotValidException",
  "message" : "Validation failed for object='addParticipantFormDTO'. Error count: 1",
  "errors" : [ {
    "codes" : [ "NotNull.addParticipantFormDTO.contact", "NotNull.contact", "NotNull.no.difi.elma.dto.rest.ContactFormDTO", "NotNull" ],
    "arguments" : [ {
      "codes" : [ "addParticipantFormDTO.contact", "contact" ],
      "defaultMessage" : "contact",
      "code" : "contact"
    } ],
    "defaultMessage" : "must not be null",
    "objectName" : "addParticipantFormDTO",
    "field" : "contact",
    "bindingFailure" : false,
    "code" : "NotNull"
  } ],
  "path" : "/rest/api/participants"
}
Response fields
Path Type Description

timestamp

String

Date and time for when the error occured.

status

Number

HTTP status code.

error

String

Error description

exception

String

The java class of the Exception that was thrown

message

String

A message describing the error.

path

String

The request URI

description

String

A more detailed description of the error.

errors

Array

Constraint validations details.

errors[].codes[]

Array

The message codes to be used to resolve this message.

errors[].defaultMessage

String

The default message to be used to resolve this message.

errors[].objectName

String

The name/path of the object where the constraint validation occurred.

errors[].field

String

The name/path of the field where the constraint validation occurred.

errors[].rejectedValue

String

The rejected field value.

errors[].bindingFailure

Boolean

Whether this error represents a binding failure (like a type mismatch); otherwise it is a validation failure.

errors[].code

String

The message code to be used to resolve this message.

errors[].arguments

Array

Constraint arguments.

errors[].arguments[].codes[]

Array

The message codes to be used to resolve this argument.

errors[].arguments[].defaultMessage

String

The default message to be used to resolve this argument.

errors[].arguments[].code

String

The message code to be used to resolve this argument.

Versioning

Active versions

Method URL Accept-Header

GET

/rest/api/accessPoints

application/vnd.no.digdir.elma.accesspoints.find.v1+json

GET

/rest/api/accessPoints/{qualifiedIdentifier}

application/vnd.no.digdir.elma.accesspoints.get.v1+json

GET

/rest/api/document-types

application/vnd.no.digdir.elma.document-types.find.v1+json

GET

/rest/api/document-types/{identifier}

application/vnd.no.digdir.elma.document-types.get.v1+json

POST

/rest/api/document-types

application/vnd.no.digdir.elma.document-types.add.v1+json

PUT

/rest/api/document-types/{identifier}

application/vnd.no.digdir.elma.document-types.update.v1+json

DELETE

/rest/api/document-types/{identifier}

application/vnd.no.digdir.elma.document-types.delete.v1+json

GET

/rest/api/organizations/{qualifiedIdentifier}/processes

application/vnd.no.digdir.elma.organization.processes.v1+json

GET

/rest/api/participants

application/vnd.no.digdir.elma.participants.stream.v1+json

GET

/rest/api/participants

application/vnd.no.digdir.elma.participants.find.v1+json

GET

/rest/api/participants/{qualifiedIdentifier}

application/vnd.no.digdir.elma.participants.get.v1+json

GET

/rest/api/participants/{identifier}

application/vnd.no.digdir.elma.participants.get.v1+json

POST

/rest/api/participants

application/vnd.no.digdir.elma.participants.add.v1+json

PUT

/rest/api/participants

application/vnd.no.digdir.elma.participants.update.v1+json

DELETE

/rest/api/participants/{qualifiedIdentifier}

application/vnd.no.digdir.elma.participants.delete.v1+json

DELETE

/rest/api/participants/{identifier}

application/vnd.no.digdir.elma.participants.delete.v1+json

GET

/rest/api/participants/{qualifiedIdentifier}/processes

application/vnd.no.digdir.elma.participants.processes.v1+json

GET

/rest/api/participants/{identifier}/processes

application/vnd.no.digdir.elma.participants.processes.v1+json

PUT

/rest/api/participants/{qualifiedIdentifier}/transfer/{serviceProviderIdentifier}

application/vnd.no.digdir.elma.participants.transfer.v1+json

GET

/rest/api/processes

application/vnd.no.digdir.elma.processes.stream.v1+json

GET

/rest/api/processes

application/vnd.no.digdir.elma.processes.find.v1+json

GET

/rest/api/processes/{identifier}

application/vnd.no.digdir.elma.processes.get.v1+json

POST

/rest/api/processes

application/vnd.no.digdir.elma.processes.add.v1+json

PUT

/rest/api/processes/{identifier}

application/vnd.no.digdir.elma.processes.update.v1+json

DELETE

/rest/api/processes/{identifier}

application/vnd.no.digdir.elma.processes.delete.v1+json