Overview

The API is used for accessing private data related to enrolments.

Endpoints

Export calendar events

GET /api/calendar-events/v1/export

Entities can be exported in modification order based on one of two separate ways of specifying the starting point.With the 'since' parameter (recommended): an integer key (modification ordinal), which is different for every modification of the entity table. The ordinals are guaranteed to increase for each modification, but not guaranteed to be concecutive.With the 'sinceTime' parameter: an ISO-8601 timestamp. SinceTime is only supported for the case when the modification ordinal is not known by the exporter. In actual practice, if efficient export of all data is desired, the greatest modification ordinal from the previous export must be remembered and used as the since parameter for the next export. Both the since and sinceTime parameters are exclusive: if in one export you get the modification ordinals 3, 4 and 5, the next query should be export?since=5 and then you get the ordinals 6, 7, 8, etc.

Parameters

Query Parameters
Name Description Schema Example

since optional

Return calendar events modified after (exclusive comparison) this modification ordinal (increasing value within ILMO). Alternate parameter with sinceTime. This is the recommended option.

Long (int64)

789

sinceTime optional

Return calendar events modified after (exclusive comparison) this ISO-8601 time. Alternate parameter with since. This is the not recommended but sometimes necessary option.

Date (date-time)

2013-10-20T19:20:30+01:00

limit required

Maximum number of calendar events to return. May return less, either because there are not enough change items, or because of internal limits. If limit is higher than 10 000, returns only 10 000 items.

Integer (int32)

56

Responses

Table 1. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

ExportResultCalendarEvent[ExportResultCalendarEvent]

Produces
  • application/json

Samples

GET /api/calendar-events/v1/export?since=0&limit=1 HTTP/1.1
Host: localhost:8080
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 731

{
  "greatestOrdinal" : 6385,
  "hasMore" : true,
  "entities" : [ {
    "metadata" : {
      "revision" : 1,
      "createdBy" : "spectre.i",
      "createdOn" : "2025-05-30T15:44:20.819757",
      "lastModifiedBy" : "spectre.i",
      "lastModifiedOn" : "2025-05-30T15:44:20.819757",
      "modificationOrdinal" : 6385
    },
    "documentState" : "ACTIVE",
    "id" : "otm-b01825eb-4403-4f6a-a4d2-30c0cedc7bab",
    "name" : "otm-c535c310-4b6e-4a79-a0cc-f87e71075266-2025-05-30T15:44:20.819559626",
    "userId" : "otm-c535c310-4b6e-4a79-a0cc-f87e71075266",
    "recursEvery" : "WEEKLY",
    "startTime" : "2025-05-30T15:44:20.819581848",
    "duration" : "PT2H",
    "recursUntil" : "2025-06-13",
    "exceptions" : [ ]
  } ]
}

Import calendar events

POST /api/calendar-events/v1/import

Parameters

Body Parameter
Name Description Schema Example

CalendarEvent required

List (CalendarEvent)

Responses

Table 2. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

POST /api/calendar-events/v1/import HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJraWQiOiJ0ZXN0LjEiLCJ0eXAiOiJKV1QiLCJhbGciOiJFUzUxMiJ9.eyJzdWIiOiJzcGVjdHJlLmkiLCJzY29wZSI6ImludGVncmF0aW9uIiwiaXNzIjoic2lzIiwidW5pdmVyc2l0eU9yZ0lkcyI6InRoZS1zcGVjdHJlIHRoZS1xdWFudHVtIiwiZXhwIjoxNzQ4NjA5MjQwLCJ1c2VyaW5mbyI6e319.AaSqmz08_GNcRs48see_edhPfz-Qv8hBVXtBw_TK4cWtoc39_Q38lmdy0WjwhcwpdR3GdVkXQMG8VLi6ky28AgpVAMNsSxBaMi_FPrJ_iILUzeYkZeRrfSf8D0oM5cLFksyIUY-81oohsUl6rieqWWZskoD-uRA2Ifiimix9q-B5CsVS
Content-Length: 810
Host: localhost:8080

[ {
  "metadata" : null,
  "documentState" : "ACTIVE",
  "id" : "otm-d7d101ba-908f-4f83-bfc8-50d754296091",
  "name" : "otm-c535c310-4b6e-4a79-a0cc-f87e71075266-2025-05-30T15:44:20.446701767",
  "userId" : "otm-c535c310-4b6e-4a79-a0cc-f87e71075266",
  "recursEvery" : "WEEKLY",
  "startTime" : "2025-05-30T15:44:20.446727906",
  "duration" : "PT2H",
  "recursUntil" : "2025-06-13",
  "exceptions" : [ ]
}, {
  "metadata" : null,
  "documentState" : "ACTIVE",
  "id" : "otm-90a37e9e-a2ca-49d4-b2f3-8dd134f3bcda",
  "name" : "otm-c535c310-4b6e-4a79-a0cc-f87e71075266-2025-05-30T15:44:20.446762912",
  "userId" : "otm-c535c310-4b6e-4a79-a0cc-f87e71075266",
  "recursEvery" : "WEEKLY",
  "startTime" : "2025-05-30T15:44:20.446767981",
  "duration" : "PT2H",
  "recursUntil" : "2025-06-13",
  "exceptions" : [ ]
} ]
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Export enrolment calculation configs

GET /api/enrolment-calculation-configs/v1/export

Entities can be exported in modification order based on one of two separate ways of specifying the starting point.With the 'since' parameter (recommended): an integer key (modification ordinal), which is different for every modification of the entity table. The ordinals are guaranteed to increase for each modification, but not guaranteed to be concecutive.With the 'sinceTime' parameter: an ISO-8601 timestamp. SinceTime is only supported for the case when the modification ordinal is not known by the exporter. In actual practice, if efficient export of all data is desired, the greatest modification ordinal from the previous export must be remembered and used as the since parameter for the next export. Both the since and sinceTime parameters are exclusive: if in one export you get the modification ordinals 3, 4 and 5, the next query should be export?since=5 and then you get the ordinals 6, 7, 8, etc.

Parameters

Query Parameters
Name Description Schema Example

since optional

Return enrolment calculation configs modified after (exclusive comparison) this modification ordinal (increasing value within ILMO). Alternate parameter with sinceTime. This is the recommended option.

Long (int64)

789

sinceTime optional

Return enrolment calculation configs modified after (exclusive comparison) this ISO-8601 time. Alternate parameter with since. This is the not recommended but sometimes necessary option.

Date (date-time)

2013-10-20T19:20:30+01:00

limit required

Maximum number of enrolment calculation configs to return. May return less, either because there are not enough change items, or because of internal limits. If limit is higher than 10 000, returns only 10 000 items.

Integer (int32)

56

Responses

Table 3. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

ExportResultEnrolmentCalculationConfig[ExportResultEnrolmentCalculationConfig]

Produces
  • application/json

Samples

Import enrolment calculation configs

POST /api/enrolment-calculation-configs/v1/import

Parameters

Body Parameter
Name Description Schema Example

EnrolmentCalculationConfig required

List (EnrolmentCalculationConfig)

Responses

Table 4. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

Patch enrolment calculation configs

PATCH /api/enrolment-calculation-configs/v1/import

Patch import with strict validation

Parameters

Body Parameter
Name Description Schema Example

PatchEntity required

List (PatchEntity)

Responses

Table 5. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

Confirm imported enrolments

POST /api/enrolments/v1/confirm-import/{courseUnitRealisationId}

This should be called after imports IF AND ONLY IF enrolments are calculated in external system

Parameters

Path Parameters

Name

Description

Schema

Example

courseUnitRealisationId required

Identifier for the course unit realisation for which the import is confirmed

String

otm-123456

Responses

Table 6. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

POST /api/enrolments/v1/confirm-import/otm-e6dff583-35fc-41fb-8b47-59152ca467ad HTTP/1.1
Content-Type: application/json
Host: localhost:8080
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Export enrolments

GET /api/enrolments/v1/export

Entities can be exported in modification order based on one of two separate ways of specifying the starting point.With the 'since' parameter (recommended): an integer key (modification ordinal), which is different for every modification of the entity table. The ordinals are guaranteed to increase for each modification, but not guaranteed to be concecutive.With the 'sinceTime' parameter: an ISO-8601 timestamp. SinceTime is only supported for the case when the modification ordinal is not known by the exporter. In actual practice, if efficient export of all data is desired, the greatest modification ordinal from the previous export must be remembered and used as the since parameter for the next export. Both the since and sinceTime parameters are exclusive: if in one export you get the modification ordinals 3, 4 and 5, the next query should be export?since=5 and then you get the ordinals 6, 7, 8, etc.

Parameters

Query Parameters
Name Description Schema Example

since optional

Return enrolments modified after (exclusive comparison) this modification ordinal (increasing value within ILMO). Alternate parameter with sinceTime. This is the recommended option.

Long (int64)

789

sinceTime optional

Return enrolments modified after (exclusive comparison) this ISO-8601 time. Alternate parameter with since. This is the not recommended but sometimes necessary option.

Date (date-time)

2013-10-20T19:20:30+01:00

limit required

Maximum number of enrolments to return. May return less, either because there are not enough change items, or because of internal limits. If limit is higher than 10 000, returns only 10 000 items.

Integer (int32)

56

Responses

Table 7. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

ExportResultEnrolment[ExportResultEnrolment]

Produces
  • application/json

Samples

GET /api/enrolments/v1/export?since=7082&limit=5 HTTP/1.1
Accept: application/json
Authorization: Basic aHkuZTp0ZXN0MTIz
Host: localhost:8080
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1396

{
  "greatestOrdinal" : 7084,
  "hasMore" : false,
  "entities" : [ {
    "metadata" : {
      "revision" : 1,
      "createdBy" : "arska",
      "createdOn" : "2025-05-30T15:44:30.168708",
      "lastModifiedBy" : "arska",
      "lastModifiedOn" : "2025-05-30T15:44:30.168708",
      "modificationOrdinal" : 7084
    },
    "documentState" : "ACTIVE",
    "id" : "otm-4ea40aac-995b-4ff9-9dad-c8d8e33467a6",
    "personId" : "otm-3bca02e0-2bc4-46ae-b3e0-1328f6082b08",
    "courseUnitRealisationId" : "otm-0ca3427e-eb75-4f52-bf63-0a1f8b7614fc",
    "courseUnitId" : "otm-61b175ea-cc36-4a82-9df2-7d7a8870407e",
    "assessmentItemId" : "otm-d6ced023-28d8-4c9e-a1a8-04fc123b5f08",
    "studyRightId" : null,
    "openUniversityCartId" : null,
    "openUniversityCartItemId" : null,
    "status" : "NOT_ENROLLED",
    "state" : "NOT_ENROLLED",
    "processingState" : "NOT_PROCESSED",
    "studySubGroups" : [ ],
    "studyGroupSets" : null,
    "confirmedStudySubGroupIds" : [ ],
    "tentativeStudySubGroupIds" : [ ],
    "enrolmentDateTime" : "2025-05-30T15:44:30.196477",
    "isInCalendar" : true,
    "colorIndex" : 0,
    "quotaIds" : [ ],
    "activeQuotaId" : null,
    "allocatedQuotaId" : null,
    "maximumQuotaIds" : [ ],
    "enrolmentRightId" : null,
    "replacedByEnrolmentId" : null,
    "cooperationNetworkStatus" : null,
    "studentConsentForOutboundDataTransfer" : null
  } ]
}

Import enrolments

POST /api/enrolments/v1/import

Parameters

Body Parameter
Name Description Schema Example

Enrolment required

List (Enrolment)

Query Parameters
Name Description Schema Example

calculation optional

When true, schedule enrolment calculation

Boolean

true

Responses

Table 8. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

POST /api/enrolments/v1/import HTTP/1.1
Content-Type: application/json
Content-Length: 3937
Host: localhost:8080

[ {
  "metadata" : {
    "revision" : 1,
    "createdBy" : "arska",
    "createdOn" : "2025-05-30T15:44:30.96443",
    "lastModifiedBy" : "arska",
    "lastModifiedOn" : "2025-05-30T15:44:30.96443",
    "modificationOrdinal" : null
  },
  "documentState" : "ACTIVE",
  "id" : "test-enrolment",
  "personId" : "test-personid",
  "courseUnitRealisationId" : "otm-cur-1",
  "courseUnitId" : "otm-273d65ce-c761-4f27-aa40-6680eb64f55a",
  "assessmentItemId" : "otm-d15950f8-b1a5-4785-a77e-20b3e0010d5f",
  "studyRightId" : null,
  "openUniversityCartId" : null,
  "openUniversityCartItemId" : null,
  "status" : null,
  "state" : "PROCESSING",
  "processingState" : "CURRENTLY_NOT_SELECTED",
  "studySubGroups" : [ {
    "studySubGroupId" : "otm-2f87f7c9-7eec-40b4-9cbf-d5f9cd7336a1",
    "enrolmentStudySubGroupPriority" : "PRIMARY",
    "isInCalendar" : true
  } ],
  "studyGroupSets" : null,
  "confirmedStudySubGroupIds" : [ ],
  "tentativeStudySubGroupIds" : [ ],
  "enrolmentDateTime" : "2025-05-30T15:44:30.96443",
  "isInCalendar" : true,
  "colorIndex" : null,
  "quotaIds" : [ ],
  "activeQuotaId" : null,
  "allocatedQuotaId" : null,
  "maximumQuotaIds" : [ ],
  "enrolmentRightId" : null,
  "replacedByEnrolmentId" : null,
  "cooperationNetworkStatus" : null,
  "studentConsentForOutboundDataTransfer" : null
}, {
  "metadata" : {
    "revision" : 1,
    "createdBy" : "arska",
    "createdOn" : "2025-05-30T15:44:30.96443",
    "lastModifiedBy" : "arska",
    "lastModifiedOn" : "2025-05-30T15:44:30.96443",
    "modificationOrdinal" : null
  },
  "documentState" : "ACTIVE",
  "id" : "test-enrolment-2",
  "personId" : "test-personid-2",
  "courseUnitRealisationId" : "otm-cur-2",
  "courseUnitId" : "otm-f30b0dfa-c5de-4e72-8cdd-eb4fedb0d9e7",
  "assessmentItemId" : "otm-147953a8-45cc-4ae3-bccf-974e6fff6741",
  "studyRightId" : null,
  "openUniversityCartId" : null,
  "openUniversityCartItemId" : null,
  "status" : null,
  "state" : "PROCESSING",
  "processingState" : "SELECTED",
  "studySubGroups" : [ {
    "studySubGroupId" : "otm-2f87f7c9-7eec-40b4-9cbf-d5f9cd7336a1",
    "enrolmentStudySubGroupPriority" : "PRIMARY",
    "isInCalendar" : true
  } ],
  "studyGroupSets" : null,
  "confirmedStudySubGroupIds" : [ ],
  "tentativeStudySubGroupIds" : [ ],
  "enrolmentDateTime" : "2025-05-30T15:44:30.96443",
  "isInCalendar" : true,
  "colorIndex" : null,
  "quotaIds" : [ ],
  "activeQuotaId" : null,
  "allocatedQuotaId" : null,
  "maximumQuotaIds" : [ ],
  "enrolmentRightId" : null,
  "replacedByEnrolmentId" : null,
  "cooperationNetworkStatus" : null,
  "studentConsentForOutboundDataTransfer" : null
}, {
  "metadata" : {
    "revision" : 1,
    "createdBy" : "arska",
    "createdOn" : "2025-05-30T15:44:30.96443",
    "lastModifiedBy" : "arska",
    "lastModifiedOn" : "2025-05-30T15:44:30.96443",
    "modificationOrdinal" : null
  },
  "documentState" : "ACTIVE",
  "id" : "test-enrolment-3",
  "personId" : "test-personid-3",
  "courseUnitRealisationId" : "otm-cur-2",
  "courseUnitId" : "otm-47638248-d1eb-41ff-8676-d6f08a33d288",
  "assessmentItemId" : "otm-48fd2e1b-24d7-470b-af9f-eb348a9e1cff",
  "studyRightId" : null,
  "openUniversityCartId" : null,
  "openUniversityCartItemId" : null,
  "status" : null,
  "state" : "PROCESSING",
  "processingState" : "NOT_SELECTED",
  "studySubGroups" : [ {
    "studySubGroupId" : "otm-2f87f7c9-7eec-40b4-9cbf-d5f9cd7336a1",
    "enrolmentStudySubGroupPriority" : "PRIMARY",
    "isInCalendar" : true
  } ],
  "studyGroupSets" : null,
  "confirmedStudySubGroupIds" : [ ],
  "tentativeStudySubGroupIds" : [ ],
  "enrolmentDateTime" : "2025-05-30T15:44:30.96443",
  "isInCalendar" : true,
  "colorIndex" : null,
  "quotaIds" : [ ],
  "activeQuotaId" : null,
  "allocatedQuotaId" : null,
  "maximumQuotaIds" : [ ],
  "enrolmentRightId" : null,
  "replacedByEnrolmentId" : null,
  "cooperationNetworkStatus" : null,
  "studentConsentForOutboundDataTransfer" : null
} ]
HTTP/1.1 200 OK
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Patch enrolments

PATCH /api/enrolments/v1/import

Parameters

Body Parameter
Name Description Schema Example

PatchEntity required

List (PatchEntity)

Query Parameters
Name Description Schema Example

calculation optional

When true, schedule enrolment calculation

Boolean

true

Responses

Table 9. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

Reopen enrolment

POST /api/enrolments/reopen-enrolment

Reopens enrolment to a course unit realisation.

Parameters

Query Parameters
Name Description Schema Example

courseUnitRealisationId required

String

otm-123456

Responses

Table 10. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

EnrolmentCalculationResult[EnrolmentCalculationResult]

Produces
  • application/json

Samples

Search enrolments for person

GET /api/enrolments/v1/for-person

Search all enrolments by person id, regardless of enrolment state, but excluding DELETED enrolments.

Parameters

Query Parameters
Name Description Schema Example

personId required

String

otm-123456

activityStatus optional

Filter enrolments for person by course unit realisation activityPeriods

String

activityStatus_example

state optional

Filter enrolments for person by enrolment state

List ([String])

Responses

Table 11. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

List[Enrolment]

Produces
  • application/json

Samples

Stream enrolments

GET /api/enrolments/v1/stream

Entities can be exported as a stream in modification order, and the stream can be left open to listen for changes. Duplicates are possible if entities are modified several times.

Parameters

Query Parameters
Name Description Schema Example

since optional

Return entities modified after (exclusive comparison) this modification ordinal Alternate parameter with sinceTime. This is the recommended option.

Long (int64)

789

sinceTime optional

Return entities modified after (exclusive comparison) this ISO-8601 time. Alternate parameter with since. This is the not recommended but sometimes necessary option.

Date (date-time)

2013-10-20T19:20:30+01:00

follow optional

Return modified entities after modified after (exclusive comparison) this modification ordinal Alternate parameter with sinceTime. This is the recommended option.

Boolean

true

Responses

Table 12. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

List[[object]]

Produces
  • /

Samples

Stream enrolment data changes

GET /api/enrolment-data-changes/v1/stream

Entities can be exported as a stream in modification order, and the stream can be left open to listen for changes. Duplicates are possible if entities are modified several times.

Parameters

Query Parameters
Name Description Schema Example

since optional

Return entities modified after (exclusive comparison) this modification ordinal Alternate parameter with sinceTime. This is the recommended option.

Long (int64)

789

sinceTime optional

Return entities modified after (exclusive comparison) this ISO-8601 time. Alternate parameter with since. This is the not recommended but sometimes necessary option.

Date (date-time)

2013-10-20T19:20:30+01:00

follow optional

Return modified entities after modified after (exclusive comparison) this modification ordinal Alternate parameter with sinceTime. This is the recommended option.

Boolean

true

Responses

Table 13. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

List[[object]]

Produces
  • /

Samples

Export enrolment questionnaire answers

GET /api/enrolment-questionnaire-answers/v1/export

Parameters

Query Parameters
Name Description Schema Example

since optional

Return enrolment questionnaire answers modified after (exclusive comparison) this modification ordinal (increasing value within ILMO). Alternate parameter with sinceTime. This is the recommended option.

Long (int64)

789

sinceTime optional

Return enrolment questionnaire answers modified after (exclusive comparison) this ISO-8601 time. Alternate parameter with since. This is the not recommended but sometimes necessary option.

Date (date-time)

2013-10-20T19:20:30+01:00

limit required

Maximum number of enrolment questionnaire answers to return. May return less, either because there are not enough change items, or because of internal limits. If limit is higher than 10 000, returns only 10 000 items.

Integer (int32)

56

Responses

Table 14. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

ExportResultEnrolmentQuestionnaireAnswers[ExportResultEnrolmentQuestionnaireAnswers]

Produces
  • application/json

Samples

Import enrolment questionnaire answers

POST /api/enrolment-questionnaire-answers/v1/import

Parameters

Body Parameter
Name Description Schema Example

EnrolmentQuestionnaireAnswers required

List (EnrolmentQuestionnaireAnswers)

Responses

Table 15. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

Export open university carts

GET /api/open-university/carts/v1/export

Entities can be exported in modification order based on one of two separate ways of specifying the starting point.With the 'since' parameter (recommended): an integer key (modification ordinal), which is different for every modification of the entity table. The ordinals are guaranteed to increase for each modification, but not guaranteed to be consecutive.With the 'sinceTime' parameter: an ISO-8601 timestamp. SinceTime is only supported for the case when the modification ordinal is not known by the exporter. In actual practice, if efficient export of all data is desired, the greatest modification ordinal from the previous export must be remembered and used as the since parameter for the next export. Both the since and sinceTime parameters are exclusive: if in one export you get the modification ordinals 3, 4 and 5, the next query should be export?since=5 and then you get the ordinals 6, 7, 8, etc.

Parameters

Query Parameters
Name Description Schema Example

since optional

Return open university carts modified after (exclusive comparison) this modification ordinal (increasing value within Ori). Alternate parameter with sinceTime. This is the recommended option.

Long (int64)

789

sinceTime optional

Return open university carts modified after (exclusive comparison) this ISO-8601 time. Alternate parameter with since. This is the not recommended but sometimes necessary option.

Date (date-time)

2013-10-20T19:20:30+01:00

limit required

Maximum number of open university carts to return. May return less, either because there are not enough change items, or because of internal limits. If limit is higher than 10 000, returns only 10 000 items.

Integer (int32)

56

Responses

Table 16. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

ExportResultOpenUniversityCart[ExportResultOpenUniversityCart]

Produces
  • application/json

Samples

Import open university carts

POST /api/open-university/carts/v1/import

Parameters

Body Parameter
Name Description Schema Example

OpenUniversityCart required

List (OpenUniversityCart)

Responses

Table 17. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

Export payment system payments

GET /api/payment-system-payments/v1/export

Entities can be exported in modification order based on one of two separate ways of specifying the starting point.With the 'since' parameter (recommended): an integer key (modification ordinal), which is different for every modification of the entity table. The ordinals are guaranteed to increase for each modification, but not guaranteed to be consecutive.With the 'sinceTime' parameter: an ISO-8601 timestamp. SinceTime is only supported for the case when the modification ordinal is not known by the exporter. In actual practice, if efficient export of all data is desired, the greatest modification ordinal from the previous export must be remembered and used as the since parameter for the next export. Both the since and sinceTime parameters are exclusive: if in one export you get the modification ordinals 3, 4 and 5, the next query should be export?since=5 and then you get the ordinals 6, 7, 8, etc.

Parameters

Query Parameters
Name Description Schema Example

since optional

Return payemnt system payments modified after (exclusive comparison) this modification ordinal (increasing value within Ori). Alternate parameter with sinceTime. This is the recommended option.

Long (int64)

789

sinceTime optional

Return payemnt system payments modified after (exclusive comparison) this ISO-8601 time. Alternate parameter with since. This is the not recommended but sometimes necessary option.

Date (date-time)

2013-10-20T19:20:30+01:00

limit required

Maximum number of payemnt system payments to return. May return less, either because there are not enough change items, or because of internal limits. If limit is higher than 10 000, returns only 10 000 items.

Integer (int32)

56

Responses

Table 18. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

ExportResultOpenUniversityPaymentSystemPayment[ExportResultOpenUniversityPaymentSystemPayment]

Produces
  • application/json

Samples

Import payment system payments

POST /api/payment-system-payments/v1/import

Parameters

Body Parameter
Name Description Schema Example

OpenUniversityPaymentSystemPayment required

List (OpenUniversityPaymentSystemPayment)

Responses

Table 19. http response codes
Code Message Datatype

401

Authentication required

400

Bad request

422

Validation failed

403

Authorization failed, access forbidden

200

OK

Samples

Models

AbstractPersonRule

Abstract supertype of person rules used as either requirement rules, that must all evaluate to true for a person's enrolment to be accepted, or ordering rules that are used to determine order of precedence for enrolments, in which they are selected and allocated into study sub groups.

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

AttainedCreditRangeRule

Evaluates to true if student has attained credits in plan for the degree programme with selected type and education selected in the rule

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

educationIds required

Optional restriction for educations that are taken into account when calculating credits. If empty, then active study rights for all educations are taken into account.

Set of [string]

degreeProgramTypeUrn optional

Supported values available here

[String]

urn:code:degree-program-type:*

creditRange required

CreditRange

CalendarEvent

Calendar event containing a series of event occurrences.

FieldsNotNullWhenConditionTrue(condition = recursEvery != NEVER, fields = [Ljava.lang.String;@55738d8)
ValidCalendarEvent

Field Name Description Validation Schema Example

documentState optional

State of this object: DRAFT, ACTIVE or DELETED

[String] enum DRAFT, ACTIVE, DELETED,

id optional

Unique identifier for this object. Persisted value is never null.

NotNull

[String]

otm-123456

name required

Name for the calendar event series

Size(max = 255, min = 2)
NotNull

[String]

userId optional

Id of the user this event belongs to. Persisted value is never null.

PrivatePersonId

[String]

otm-123456

recursEvery required

How often the event recurs

NotNull

[String] enum NEVER, DAILY, WEEKLY, EVERY_SECOND_WEEK, MONTHLY,

startTime required

When the event occurs for the first time

NotNull

[Date] date-time

duration required

How long a single event is (using ISO-8601 seconds based representation)

NotNull

[String]

recursUntil optional

Recurs until this date (this date included). Mandatory for recurring events.

[date] date

exceptions optional

Possible exception dates the user has removed from the event sequence. Each date must be on the same day as one of the event instances. Event on exception dates are not visible to user. Defaults to an empty list.

Size(max = 200, min = 0)
ContainsNoNulls

List of [date] date

CompulsoryFormalPrerequisitesRule

Evaluates to true if student has valid attainments for compulsory formal prerequisites for the course unit selected in the enrolment

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

CooperationNetworkStatus

Co-operation network status for entities that are created or targeted through RIPA to a cooperation network university

Field Name Description Validation Schema Example

direction required

Co-operation network direction. Is this INBOUND or OUTBOUND from SISU perspective. INBOUND entities can not be edited in SISU.

NotNull

[String] enum INBOUND, OUTBOUND, NONE,

organisationTkCode optional

Organisation TK code used in CSC's Ristiinopiskelupalvelu. For OUTBOUND entities, organisationTkCode represents the organisation where this entity is going to be sent. For INBOUND entities, organisationTkCode represents the organisation this entity originated from.

[String]

outboundStatus optional

Status on processing an OUTBOUND entity to other university

[String] enum NOT_VALID, FORWARDED, RECORDED, REJECTED,

rejectionReason optional

Rejection reason of OUTBOUND entity to other university

LocalizedString

outboundStatusMessage optional

Status message further describing processing of OUTBOUND entity to other university

[String]

cooperationNetworkId optional

Unique identifier within source system. Prefixed with a source system specific prefix, guaranteeing uniqueness also locally.

Allowable prefix values are 1 to 5 characters (a-z, A-Z) long. Allowable postfixes are 1 to 58 characters (a-z, A-Z, 0-9, dash (-) or underscore (_)) long. The separator is a dash (-).

[String]

otm-123456

universityOrgId optional

Unique identifier within source system. Prefixed with a source system specific prefix, guaranteeing uniqueness also locally.

Allowable prefix values are 1 to 5 characters (a-z, A-Z) long. Allowable postfixes are 1 to 58 characters (a-z, A-Z, 0-9, dash (-) or underscore (_)) long. The separator is a dash (-).

[String]

otm-123456

homeStudyRightId optional

[String]

CourseUnitInPrimaryPlanRule

Evaluates to true if student has the course unit selected in the enrolment in a primary plan

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

CreditRange

Range of acceptable credit values. Leaving max unspecified indicates an upwards unbound range.

Field Name Description Validation Schema Example

min required

minimum acceptable value

NotNull
Min(value = 0)

[BigDecimal]

max optional

maximum acceptable value

[BigDecimal]

EducationRule

Evaluates to true if the education of the enrolment's StudyRight is one of specified in this rule

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

educationGroupIds required

Required educations

Set of [string]

EducationTypeRule

Evaluates to true if student has required educations.

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

educationTypeUrns required

Required education types

Set of [string]

Enrolment

This class represents student calendar selections as well as enrolments of the student. The process of enrolments typically starts by student adding a selection to their calendar. It is stored as a enrolment with status NOT_ENROLLED. The process of enrolments ends where the process of assessment starts. In other words, there may be assessment and/or attainments related to this enrolment.

Field Name Description Validation Schema Example

documentState optional

State of this object: DRAFT, ACTIVE or DELETED

[String] enum DRAFT, ACTIVE, DELETED,

id optional

Unique identifier for this object. Persisted value is never null.

NotNull

[String]

otm-123456

personId optional

PrivatePerson identifier for the student who is doing the enrolment

PrivatePersonId

[String]

otm-123456

courseUnitRealisationId required

Reference to course unit realisation to which this enrolment is related to. This must be defined, as the details of the assessments depend on the course unit realisation in some special cases. This can often be automatically inferred from the study plan of the enrolling student and/or the context where enrolment request was initiated. However, in certain circumstances it is necessary for the student to adjust this. Persisted value is never null.

NotNull
CourseUnitRealisationId

[String]

otm-123456

courseUnitId required

Reference to course unit to which this enrolment is related to. This must be defined when state is not NOT_ENROLLED, as it is needed when creating course unit attainments based on assessment item attainments. This can often be automatically inferred from the study plan of the enrolling student and/or the context where enrolment request was initiated. However, in certain circumstances it is necessary for the student to adjust this.

CourseUnitId
NotNull

[String]

otm-123456

assessmentItemId required

Reference to assessment item to which this enrolment is related to. This is the actual thing where student is enrolling into. However, student may add course unit realisation to their study calendar, in which case this may be empty.

AssessmentItemId
NotNull

[String]

otm-123456

studyRightId optional

Reference to study right id in which context student enrolled.

StudyRightId

[String]

otm-123456

openUniversityCartId optional

OpenUniversityCart through which this enrolment is created. If present, the enrolment is created by choosing the course unit realisation into open university shopping cart

OpenUniversityCartId

[String]

otm-123456

openUniversityCartItemId optional

OpenUniversityCartItem through which this enrolment is created. If present, the enrolment is created by choosing the course unit realisation into open university shopping cart

[String]

otm-123456

status optional

DEPRECATED: Refer to the enrolment state instead.

[String] enum ENROLLED, NOT_ENROLLED, NOT_CONFIRMED, IN_QUEUE, CANCELLED,

state optional

State of the enrolment. If the state is PROCESSING, processingState contains the substate. Persisted value is never null.

[String] enum NOT_ENROLLED, PROCESSING, INVALID, RESERVED, CONFIRMED, ENROLLED, REJECTED, ABORTED_BY_STUDENT, ABORTED_BY_TEACHER,

processingState optional

If state is PROCESSING, this has the current status of the calculation and selection process. This field may be used to indicate tentative (but not final) state to the student. Persisted value is never null.

[String] enum NOT_PROCESSED, PENDING, CURRENTLY_SELECTED, CURRENTLY_NOT_SELECTED, REQ_NOT_FULFILLED, SELECTED, NOT_SELECTED, NOT_VALID,

studySubGroups optional

Study sub groups that the student selected for enrolment or added to calendar.

ContainsNoNulls
Size(max = 200, min = 0)

List of EnrolmentStudySubGroup

studyGroupSets optional

Study group sets that the student had specific selections for. This can be empty if no study group set has no range for how many study sub groups the student can and must select

ContainsNoNulls
Size(max = 200, min = 0)

List of EnrolmentStudyGroupSet

confirmedStudySubGroupIds optional

Student is selected to these study sub groups. This information is relevant after the enrolment confirmation before that this should be an empty collection

ContainsNoNulls
Size(max = 200, min = 0)

Set of [string]

tentativeStudySubGroupIds optional

Student is tentatively selected to these study sub groups. This information is relevant during the enrolment time.

ContainsNoNulls
Size(max = 200, min = 0)

Set of [string]

enrolmentDateTime optional

Time and date when the student enrolled. Must be defined unless state is NOT_ENROLLED or PROCESSING.

[Date] date-time

isInCalendar optional

Whether this enrolment should be displayed in the student calendar. Default value is true. Persisted value is never null.

[Boolean]

colorIndex optional

In which color should the CUR be rendered in the UI. The frontend should decide this. In imports, this should be left null.

[Integer] int32

quotaIds optional

Determines the minimum quota groups enrolment has been categorized in, or empty if not applicable

ContainsNoNulls

Set of [string]

activeQuotaId optional

Determines the currently chosen minimum quota the enrolment has been categorized in, or null if not applicable

[String]

otm-123456

allocatedQuotaId optional

Determines the minimum quota the enrolment has been allocated to. If this is null but activeQuotaId is not, that means the enrolment was allocated into the non-quota seat.

[String]

otm-123456

maximumQuotaIds optional

Determines the maximum quota groups enrolment has been categorized in.

ContainsNoNulls

Set of [string]

enrolmentRightId optional

EnrolmentRight, through which this enrolment was created, if any

EnrolmentRightId

[String]

otm-123456

replacedByEnrolmentId optional

If another Enrolment has replaced this one, the id of the replacing enrolment is saved here. This Enrolment must be deleted (documentState==DELETED) if the value is set.

EnrolmentId

[String]

otm-123456

cooperationNetworkStatus optional

CooperationNetworkStatus

studentConsentForOutboundDataTransfer optional

Student consent on data transfer when enrolment is targeted to a cooperation network university

PersonConsent

EnrolmentCalculationConfig

This class represents the config for enrolment calculation process. There is one instance of this class for each course unit realisation. ID field is equal to course unit realisation ID.

Field Name Description Validation Schema Example

documentState optional

State of this object: DRAFT, ACTIVE or DELETED

[String] enum DRAFT, ACTIVE, DELETED,

id optional

Unique identifier for this object. Persisted value is never null.

NotNull

[String]

otm-123456

maxSelected optional

The maximum number of students automatically selected during the enrolment calculation. Null value means no limit

Min(value = 0)
Max(value = 5000)

[Integer] int32

manualConfirmation required

Whether confirmation is done manually

NotNull

[Boolean]

requirementPersonRules optional

Rules that must all evaluate to true for enrolment to be selected

List of [EnrolmentCalculationResult_evaluatedRequirementPersonRules_inner]

orderingPersonRules optional

Rules used to determine order of precedence for enrolments, in which they are selected and allocated into study sub groups

List of [EnrolmentCalculationResult_evaluatedRequirementPersonRules_inner]

selectedUsersQuotas optional

Minimum quotas for enrolments

UniqueBy(sameValueProperties = [Ljava.lang.String;@67ffa04c)

List of EnrolmentSelectedUsersQuota

maximumUsersQuotas optional

Maximum quotas for enrolments

UniqueBy(sameValueProperties = [Ljava.lang.String;@5d05a7ed)

List of EnrolmentMaximumUsersQuota

EnrolmentCalculationResult

This class represents the result for enrolment calculation process. There is one instance of this class for each course unit realisation. ID field is equal to course unit realisation ID.

Field Name Description Validation Schema Example

documentState optional

State of this object: DRAFT, ACTIVE or DELETED

[String] enum DRAFT, ACTIVE, DELETED,

id optional

Unique identifier for this object. Persisted value is never null.

NotNull

[String]

otm-123456

lastEnrolmentModificationOrdinal required

The last ordinal of modification to enrolments that is included in this result. Persisted value is never null.

NotNull

[Long] int64

lastCourseUnitRealisationModificationOrdinal required

The last ordinal of modification to course unit realisation that is included in this result

NotNull

[Long] int64

lastEnrolmentCalculationConfigModificationOrdinal required

The last ordinal of modification to enrolment calculation config that is included in this result

NotNull

[Long] int64

lastCalculationTime optional

The last time enrolment calculation was done

[Date] date-time

evaluatedRequirementPersonRules optional

List of requirement rules that were used for calculating person results

List of [EnrolmentCalculationResult_evaluatedRequirementPersonRules_inner]

evaluatedOrderingPersonRules optional

List of ordering rules that were used for calculating person results

List of [EnrolmentCalculationResult_evaluatedRequirementPersonRules_inner]

lastCalculationState required

The state of last enrolment calculation

[String] enum UNKNOWN, SUCCESS, ERROR,

state required

The state of the enrolment calculation. Persisted value is never null.

NotNull

[String] enum NOT_STARTED, TENTATIVE_CALCULATION, FINAL_CALCULATION_ONGOING, FINAL_CALCULATION_FINISHED, CONFIRMED,

personResults optional

Evaluation results of person rules

List of EnrolmentCalculationResultForPerson

EnrolmentCalculationResultEvaluatedRequirementPersonRulesInner

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

educationIds required

Optional restriction for educations that are taken into account when calculating credits. If empty, then active study rights for all educations are taken into account.

Set of [string]

degreeProgramTypeUrn optional

Supported values available here

[String]

urn:code:degree-program-type:*

creditRange required

CreditRange

educationGroupIds required

Required educations

Set of [string]

educationTypeUrns required

Required education types

Set of [string]

courseUnitRealisationIds required

Enrolment with state ENROLLED and reference to any of these course unit realisations allow student to pass this rule

Set of [string]

personGroupIds required

Ids of all person groups where student must be a member to pass this rule

List of [string]

EnrolmentCalculationResultForPerson

This class contains evaluation results of person rules for one person.

Field Name Description Validation Schema Example

personId optional

The person to whom these evaluation results relate

[String]

otm-123456

evaluatedRequirementRules optional

Evaluation results of requirement person rules

List of [boolean]

evaluatedOrderingRules optional

Evaluation results of ordering person rules

List of [boolean]

EnrolmentForCourseUnitRealisationRule

Evaluates to true if student is enrolled to any of course unit realisations that are selected in the rule.

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

courseUnitRealisationIds required

Enrolment with state ENROLLED and reference to any of these course unit realisations allow student to pass this rule

Set of [string]

EnrolmentMaximumUsersQuota

Maximum quota for student selections ie. Open University students vs. Degree programme students

Field Name Description Validation Schema Example

size required

Number of seats

Min(value = 0)
Max(value = 8000)
NotNull

[Integer] int32

name required

The name of the quota

NotNull
LocalizedStringSize(maxSize = 255, minSize = 1)

LocalizedString

quotaPersonRules required

The quota applies to these rules.

NotNull
ContainsNoNulls

Set of [EnrolmentCalculationResult_evaluatedRequirementPersonRules_inner]

id required

The quota id.

NotNull

[String]

otm-123456

EnrolmentQuestionAnswer

Single EnrolmentQuestionAnswer represents an answer to a single EnrolmentQuestion.

Field Name Description Validation Schema Example

questionId required

Reference to local id of a single EnrolmentQuestion in EnrolmentQuestionnaire.

NotNull

[String]

otm-123456

answerText optional

Free text answer to the question.

Size(max = 8000, min = 0)

[String]

selections optional

Answers to questions where selections can be made from multiple options.

Set of [string]

EnrolmentQuestionnaireAnswers

Student's answers for the enrolment. Student may have one EnrolmentQuestionnaireAnswers for each enrolment.

Field Name Description Validation Schema Example

documentState optional

State of this object: DRAFT, ACTIVE or DELETED

[String] enum DRAFT, ACTIVE, DELETED,

enrolmentId required

Student's enrolment ID. Persisted value is never null.

NotNull

[String]

otm-123456

courseUnitRealisationId optional

Course unit realisation ID. Persisted value is never null.

CourseUnitRealisationId

[String]

otm-123456

studentId optional

Student ID.

PrivatePersonId

[String]

otm-123456

answers optional

Student's answers for enrolment.

List of EnrolmentQuestionAnswer

EnrolmentSelectedUsersQuota

Quota for student selections with different abstractPersonRules. Example: studyTypes: Open University students vs. Degree programme students

Field Name Description Validation Schema Example

size required

Number of seats

Min(value = 0)
Max(value = 8000)
NotNull

[Integer] int32

name required

The name of the quota

NotNull
LocalizedStringSize(maxSize = 255, minSize = 1)

LocalizedString

quotaPersonRules required

The quota applies to these rules.

NotNull
ContainsNoNulls

Set of [EnrolmentCalculationResult_evaluatedRequirementPersonRules_inner]

id required

The quota id.

NotNull

[String]

otm-123456

EnrolmentStudyGroupSet

Study group sets that the student had specific selections for. This can be empty if no study group set has no range for how many study sub groups the student can and must select

Field Name Description Validation Schema Example

studyGroupSetId required

Unique identifier within some local context. Context must be defined in use site api documentation.

Allowable values are 1 to 58 characters (a-z, A-Z, 0-9, dash (-) or underscore (_)) long.

[String]

otm-123456

targetStudySubGroupAmount optional

Number of study sub groups that the student wishes to enrol to. The actual number of study sub groups allocated to student may be smaller if groups are full. If not set, the number of primary study sub groups is used for backwards compatibility

[Integer] int32

EnrolmentStudySubGroup

Study sub groups that the student selected for enrolment or added to calendar.

Field Name Description Validation Schema Example

studySubGroupId required

Unique identifier within source system. Prefixed with a source system specific prefix, guaranteeing uniqueness also locally.

Allowable prefix values are 1 to 5 characters (a-z, A-Z) long. Allowable postfixes are 1 to 58 characters (a-z, A-Z, 0-9, dash (-) or underscore (_)) long. The separator is a dash (-).

[String]

otm-123456

enrolmentStudySubGroupPriority required

Priority of selected study sub group.

[String] enum PRIMARY, SUITABLE, NOT_SUITABLE,

isInCalendar optional

Whether this enrolment should be displayed in the student calendar. Default value is true.

[Boolean]

ExportResultCalendarEvent

Container for results of export api calls. Specifies a continuation key for next similar api call with 'greatestOrdinal', and 'hasMore' tells if there are, at this time, any continuation data to be had. The field 'entities' contains the actual data.

Field Name Description Validation Schema Example

greatestOrdinal optional

The modification ordinal number of the last modification whose corresponding entity data is included in this result.

[Long] int64

hasMore optional

Is there more data to be had?

[Boolean]

entities optional

The actual data.

List of CalendarEvent

ExportResultEnrolment

Container for results of export api calls. Specifies a continuation key for next similar api call with 'greatestOrdinal', and 'hasMore' tells if there are, at this time, any continuation data to be had. The field 'entities' contains the actual data.

Field Name Description Validation Schema Example

greatestOrdinal optional

The modification ordinal number of the last modification whose corresponding entity data is included in this result.

[Long] int64

hasMore optional

Is there more data to be had?

[Boolean]

entities optional

The actual data.

List of Enrolment

ExportResultEnrolmentCalculationConfig

Container for results of export api calls. Specifies a continuation key for next similar api call with 'greatestOrdinal', and 'hasMore' tells if there are, at this time, any continuation data to be had. The field 'entities' contains the actual data.

Field Name Description Validation Schema Example

greatestOrdinal optional

The modification ordinal number of the last modification whose corresponding entity data is included in this result.

[Long] int64

hasMore optional

Is there more data to be had?

[Boolean]

entities optional

The actual data.

List of EnrolmentCalculationConfig

ExportResultEnrolmentQuestionnaireAnswers

Container for results of export api calls. Specifies a continuation key for next similar api call with 'greatestOrdinal', and 'hasMore' tells if there are, at this time, any continuation data to be had. The field 'entities' contains the actual data.

Field Name Description Validation Schema Example

greatestOrdinal optional

The modification ordinal number of the last modification whose corresponding entity data is included in this result.

[Long] int64

hasMore optional

Is there more data to be had?

[Boolean]

entities optional

The actual data.

List of EnrolmentQuestionnaireAnswers

ExportResultOpenUniversityCart

Container for results of export api calls. Specifies a continuation key for next similar api call with 'greatestOrdinal', and 'hasMore' tells if there are, at this time, any continuation data to be had. The field 'entities' contains the actual data.

Field Name Description Validation Schema Example

greatestOrdinal optional

The modification ordinal number of the last modification whose corresponding entity data is included in this result.

[Long] int64

hasMore optional

Is there more data to be had?

[Boolean]

entities optional

The actual data.

List of OpenUniversityCart

ExportResultOpenUniversityPaymentSystemPayment

Container for results of export api calls. Specifies a continuation key for next similar api call with 'greatestOrdinal', and 'hasMore' tells if there are, at this time, any continuation data to be had. The field 'entities' contains the actual data.

Field Name Description Validation Schema Example

greatestOrdinal optional

The modification ordinal number of the last modification whose corresponding entity data is included in this result.

[Long] int64

hasMore optional

Is there more data to be had?

[Boolean]

entities optional

The actual data.

List of OpenUniversityPaymentSystemPayment

LocalizedString

A map <langCode, value> of plain strings containing localized versions of a text

Field Name Description Validation Schema Example

fi optional

Finnish version

[String]

Finnish version

sv optional

Swedish version

[String]

Swedish version

en optional

English version

[String]

English version

NotAlreadyEnrolledToAssessmentItemRule

Evaluates to true if student is enrolled to another course unit realisation (with overlapping activity period) for the same assessment item.

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

OpenUniversityCart

Shopping cart for Open University purchases. Includes OpenUniversityCartItems that are purchased or to be purchased

Field Name Description Validation Schema Example

documentState optional

State of this object: DRAFT, ACTIVE or DELETED

[String] enum DRAFT, ACTIVE, DELETED,

id optional

Unique identifier for this object. Persisted value is never null.

NotNull

[String]

otm-123456

state required

State of the cart, eg. reserved, expired, purchased. Persisted value is never null.

NotNull

[String] enum TENTATIVE, RESERVED, EXPIRED, PURCHASED, ACTIVATED, CANCELLED,

reservedUntilDateTime optional

Instant in time to which the items in the cart are reserved, if not purchased before. Required if cart is not purchased.

[Date] date-time

purchaseDateTime optional

Instant in time when the items in the cart where purchased. If not given, the items have not yet been paid for.

[Date] date-time

priceTotal optional

Total sum of the prices in EUR of the items in the cart (includes VAT). If not given, will be calculated based on the items in the cart

[String]

vatPercent optional

VAT percent to be used. If not given, will use default from OpenUniversitySettings.

Min(value = 0)
Max(value = 100)

[BigDecimal]

buyerFirstName optional

First name of the person purchasing the products

Size(max = 100, min = 1)
Pattern(flags = [Ljakarta.validation.constraints.Pattern$Flag;@3d98e738, regexp = [;]+)
ValidSanitized

[String]

buyerLastName optional

Last name of the person purchasing the products

Size(max = 100, min = 1)
Pattern(flags = [Ljakarta.validation.constraints.Pattern$Flag;@4d5215a9, regexp = [;]+)
ValidSanitized

[String]

buyerEmail optional

Email of the person purchasing the products

Size(max = 100, min = 1)
Email(flags = [Ljakarta.validation.constraints.Pattern$Flag;@43aec2be, regexp = .*)
ValidSanitized

[String]

buyerDetailsErased optional

Indicates if buyer details have been erased.

[Boolean]

studentId optional

Id of the student to whom the studyRights are created for

PrivatePersonId

[String]

otm-123456

items optional

The items that are (to be) purchased.

ContainsNoNulls
CollectionWithUniqueLocalIds

List of OpenUniversityCartItem

orderNumber optional

The order number that can be used to identify a purchase over phone and to search for the cart in staff UI. Order number will be inserted into purchase confirmations.

Size(max = 100, min = 1)

[String]

activationCode optional

The code that can be used to activate the purchased items and connect the cart to a person.

Size(max = 255, min = 1)

[String]

activationCodeValidUntil optional

The timestamp to which the activationCode is valid. If the cart is not activated in time, the purchase will expire.

[Date] date-time

language optional

Language what user is using in sisu while doing the payment

Pattern(flags = [Ljakarta.validation.constraints.Pattern$Flag;@1afa4196, regexp = ^[a-z]{2}$)

[String]

priceWithoutVat optional

The string format is '$currencyCode $amount' where there may be zero to many spaces between the two parts. The currency code must be a valid three letter currency. The amount must match the regular expression [+-]?[.]?[0-9]. The spaces and numbers must be ASCII characters

[String]

vatTotal optional

The string format is '$currencyCode $amount' where there may be zero to many spaces between the two parts. The currency code must be a valid three letter currency. The amount must match the regular expression [+-]?[.]?[0-9]. The spaces and numbers must be ASCII characters

[String]

OpenUniversityCartItem

Single item in shopping cart

Field Name Description Validation Schema Example

localId required

LocalId of the item in the cart

NotNull

[String]

otm-123456

state required

Is the item eg. tentative, reserved, expired or purchased

NotNull

[String] enum TENTATIVE, RESERVED, EXPIRED, PURCHASED, ACTIVATED, CANCELLED,

openUniversityProductId required

The product that is to be purchased

NotNull
OpenUniversityProductId

[String]

otm-123456

price required

The total price of the item, VAT included.

NotNull

[String]

OpenUniversityPaymentSystemPayment

Payment that is made in an external payment system (except if it is a zero-amount payment).This is used for open university purchases.

Field Name Description Validation Schema Example

id required

Unique identifier of the payment. Also sent to the external payment system to allow linking the confirmation/notification messages back to this payment entry. Persisted value is never null.

NotNull

[String]

payment123456

openUniversityCartId required

Open university cart to which this payment is related to. Persisted value is never null.

NotNull

[String]

otm-123456

externalId optional

Unique identifier of the payment used by the external payment system. Null means that no external payment system has been used to create the payment (zero-amount payments),but the payment has been created and marked as paid directly by Sisu.

Size(max = 255, min = 1)

[String]

paymentAddress optional

The payment address which is used to direct the customer to completing the payment.

Size(max = 1024, min = 1)

[String]

status required

Status of this payment. Persisted value is never null.

NotNull

[String] enum INITIALIZED, STARTED, PAID, CANCELLED,

amount required

Amount of this payment

NotNull

[String]

paidTimestamp optional

Timestamp that tells when this payment was marked as paid or cancelled

[Date] date-time

paymentSystem optional

Payment system to which this payment is made. If a zero-amount payment, the type UNDEFINED is used.

[String] enum CEEPOS, PAYTRAIL, UNDEFINED,

buyerFirstName optional

First name of the person purchasing the products

Size(max = 100, min = 1)

[String]

buyerLastName optional

Last name of the person purchasing the products

Size(max = 100, min = 1)

[String]

buyerEmail optional

Email of the person purchasing the products

Size(max = 100, min = 1)
Email(flags = [Ljakarta.validation.constraints.Pattern$Flag;@3d037a36, regexp = .*)

[String]

cartChecksum required

Checksum calculated from the related open university cart at the initialization of the payment

Size(max = 100, min = 1)
NotNull

[String]

documentState optional

State of this object: DRAFT, ACTIVE or DELETED

[String] enum DRAFT, ACTIVE, DELETED,

PatchEntity

A single patched entity must include the 'id' parameter to identify which entity to apply the patch to, and any other fields to be changed.

Field Name Description Validation Schema Example

id required

Unique identifier within source system. Prefixed with a source system specific prefix, guaranteeing uniqueness also locally.

Allowable prefix values are 1 to 5 characters (a-z, A-Z) long. Allowable postfixes are 1 to 58 characters (a-z, A-Z, 0-9, dash (-) or underscore (_)) long. The separator is a dash (-).

[String]

otm-123456

PersonConsent

Contains consent information of a person, including the consent clause, consent target and user response.

Field Name Description Validation Schema Example

consentApprovalType required

User response to the consent clause

NotNull

[String] enum APPROVED,

consentTargetType required

The target of the consent

NotNull

[String] enum CROSS_STUDY_DATA_TRANSFER_ON_OUTBOUND_ENROLMENT,

clause required

Consent clause that has been presented to the user

NotNull

[String]

PersonGroupMembershipRule

Evaluates to true if student is a member of any specified person group

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

personGroupIds required

Ids of all person groups where student must be a member to pass this rule

List of [string]

RecommendedFormalPrerequisitesRule

Evaluates to true if student has valid attainments for recommended formal prerequisites for the course unit selected in the enrolment

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

ValidStudyRightRule

Valid study right rule evaluates to true if student has any study right that is valid during the activity period of the course unit realisation to be enrolled to

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

ValidTermRegistrationRule

Evaluates to true if student has a valid term registration as ATTENDING during the activity period of the course unit realisation to be enrolled to

Field Name Description Validation Schema Example

type optional

Person rule type

[String]

Validations

AssessmentItemId

OtmId or set of OtmIds which must refer to AssessmentItems of any state, which need not necessarily exist at the present time.

CollectionWithUniqueLocalIds

LocalIds of elements within a collection must be unique.

ContainsNoNulls

Collection may not contain null elements.

CourseUnitId

OtmId or set of OtmIds which must refer to CourseUnits of any state.

CourseUnitRealisationId

OtmId or set of OtmIds which must refer to non-DELETED CourseUnitRealisations.

EnrolmentId

OtmId or set of OtmIds which must refer to ACTIVE Enrolments.

EnrolmentRightId

OtmId or set of OtmIds which must refer to an EnrolmentRight.

FieldsNotNullWhenConditionTrue

Conditionally check that a collection of fields are not null.

LocalizedStringSize

Check minimum and maximum size of localized string types.

OpenUniversityCartId

OtmId or set of OtmIds which must refer to OpenUniversityCarts of any state.

OpenUniversityProductId

OtmId or set of OtmIds which must refer to OpenUniversityProducts of any state.

PrivatePersonId

OtmId or set of OtmIds which must refer to ACTIVE PrivatePersons (persons in Ori).

StudyRightId

OtmId or set of OtmIds which must refer to a study right.

UniqueBy

Checks that collection is unique by given properties

ValidCalendarEvent

Checks that event max recurrence is one year. Checks that recurs until is after event series start time

ValidEnrolment

Check that enrolment has valid assessment item and course unit realisation references when state is something else than NOT_ENROLLED.

ValidMaximumUsersQuotas

Validates each of the maximum quotas

ValidOpenUniversityCart

Validates that OpenUniversityCart has all state specific information

ValidSanitized

Check string has no vulnerable XSS fields.

ValidSelectedUsersQuotas

Validates that each of tha quotas is at maximum the same size as the maxSelected property of EnrolmentCalculationConfig