Event notifications are events that occur in the CampusLogic system that trigger pre-defined notifications to be sent via a HTTP post to an endpoint URL defined by the client that can receive JSON data.  The notification will be sent in near real-time to the endpoint.  The client can then receive the events and perform internal processes based on the notification.

Settings for the event notifications can be set by administrator users from the School Settings screen on the Event Notification tab.  This screen allows you to set information concerning enabling notifications, endpoint URL and optional username and password information.  You can also make your subscription selections to certain events from this screen.

 

Setup
HTTP Post Information
Post Header Information
Post Body Information
JSON Body Field Definitions Client Success Response
Post Response and Retries
Testing Your Integration
Event Notification Definitions
Student Transaction Events
User Activities Events
Communication Events
Document Events
Event Notification Endpoint Best Practices
ISIR Correction Integration
Summary of ISIR Correction Integration
Output Format
Get Correction Batches
Request
Response


Setup

The client will provide a URL that can accept the HTTP post of JSON data.  This can be in the form of either HTTP or HTTPS.  The client can optionally provide credentials in the form of username and password that will be sent with each request in the header information.

The client will then choose which event notifications they would like to subscribe to from the available pre-defined events.  Based on these selections, CampusLogic will begin sending posts to the endpoint when any of the subscribed events occur.

HTTP Post Information

You will receive a HTTP Post containing a JSON array of multiple events in one request after a very short delay.  These posts will be sent to the URL you have defined in the endpoint URL setting.  The array may contain events of similar or different types.  Events that occur within a set period of time generally between 5 – 30 seconds will be combined.  The max number of events that will be placed into a single POST is 32.

Post Header Information

The following is an example of header information that will be sent in the post where the username and password were provided by the client:

Error rendering macro 'panel' : com.atlassian.renderer.v2.macro.basic.validator.MacroParameterValidationException: Border style is not a valid CSS2 border-style value

When username and password are provided by the client, basic authorization will be implemented using a Base64 encoding scheme. When the username and password information is not provided the Authorization header will not be present.

Post Body Information

The following is an example JSON body that will be sent in the post:


Post

[

  {

                "Id": "832fa69d-8d33-405d-8016-3f8fac6e2bac",

"EventNotificationId": "105",

                "EventNotificationName": "Transaction Completed",

                "Description": "Transaction entered completed status.",

                "DateTimeUtc": 2014-05-01 15:12:00,

                "StudentId": "123584",

                "SvStudentId": "5745",

                "SvUserId": "6895",

                "SvTransactionId": "895411",

              "AwardYear": "2014-2015",

              "SvDocumentId": null,

              "SvTransactionCategoryId": 1

 

  },

  {

"Id": "832fa69d-8d33-405d-8016-3f8fac6e2bad",               

"EventNotificationId": "201",

                "EventNotificationName": " Account Locked",

                "Description": "Account was locked by John Doe.",

                "DateTimeUtc": "2014-05-01 15:12:00",

                "StudentId": "DV5789452",

                "SvStudentId": "5123",

                "SvUserId": "6775",

                "SvTransactionId": "8977841",

              "AwardYear": "2014-2015",

              "SvDocumentId": null,

              "SvTransactionCategoryId": null

  },

  {

"Id": "832fa69d-8d33-405d-8016-3f8fac6e2bae",               

"EventNotificationId": "307",

                "EventNotificationName": "Action Reminder",

                "Description": "Reminder email that one or more requirements needs action.",

                "DateTimeUtc": "2014-05-01 15:12:00",

                "StudentId": "654852",

                "SvStudentId": "3654",

                "SvUserId": "8565",

                "SvTransactionId": "7896545",

              "AwardYear": "2014-2015",

              "SvDocumentId": null,

              "SvTransactionCategoryId": 1

  },

 {

"Id": "832fa69d-8d33-405d-8016-3f8fac6e2bae",               

"EventNotificationId": "202",

                "EventNotificationName": " Account UnLocked",

                "Description": " Account was unlocked by Jane Smith.",

                "DateTimeUtc": "2014-05-01 15:12:00",

                "StudentId": "",

                "SvStudentId": null,

                "SvUserId": "8945",

                "SvTransactionId": null,

              "AwardYear": "",

              "SvDocumentId": null,

              "SvTransactionCategoryId": null

  },

 {

"Id": "832fa69d-8d33-405d-8016-3f8fac6e2baf",               

"EventNotificationId": "401",

                "EventNotificationName": "Document Event Submitted",

                "Description": " Document Event Submitted.",

                "DateTimeUtc": "2014-05-01 15:12:00",

                "StudentId": "654123",

                "SvStudentId": "3654",

                "SvUserId": "8945",

                "SvTransactionId": "4512",

              "AwardYear": "2013-2014",

              "SvDocumentId": "56541",

               "SvTransactionCategoryId": 2

  }

]


JSON Body Field Definitions Client Success Response

HTTP Status Code: 200

Content: OK


The following are the field definitions within the event JSON that is posted in the body of the POST. 


Event Field
Presence

Description

EventNotificationId
Always

Represents the unique identifier of the event notification.  This value is always present.

EventNotificationName
Always

Represents the name of the event notification.  This value is always present.

Description
Always
Represents the description of the event notification.  This value is always present.
DateTimeUtc
Always

This is the date and time in UTC time in which the event originally took place.  This value is always present.

StudentId
Optional

This is the school student id provided by the student when they created their user account.  This value is present when the event notification is in relation to a student record, otherwise it will be an empty string.

SvStudentId
Optional
The unique identifier for the student record in the CampusLogic system.  This identifier is optional depending on the type of event notification being sent and may be required when calling the CampusLogic API to retrieve other information.  If not applicable this value will be null.
SvUserId
Optional

The unique identifier for the student user account record in the CampusLogic system.  This identifier is optional and may be required when calling the CampusLogic API to retrieve other information. If not applicable this value will be null.

SvTransactionId
Optional

The unique identifier for the student award year transaction in the CampusLogic system. This identifier is optional and may be required when calling the CampusLogic API to retrieve other information. If not applicable this value will be null.

AwardYear
Optional

The award years associated with the student transaction.  This identifier is optional depending on the type of event notification being sent and may be required when calling the CampusLogicAPI to retrieve other information. If not applicable this value will be empty string.

SvDocumentId
Optional

The unique identifier for the associated student document in the CampusLogic system.  This identifier is optional and may be required when calling the CampusLogic API to retrieve other information.  If not applicable this value will be null.

AdditionalInfoIdOptionalThe unique identifier for the associated communication event notification in the CampusLogic system.  This identifier is optional and may be required when calling the CampusLogic API to retrieve other information.  If not applicable this value will be null.
SvTransactionCategoryIdOptionalThe transaction category associated with the transaction.  Available options currently include 1 = Student Verification, 2 = SAP Appeal, 3 = PJ Dependency Override Appeal, 4 = PJ EFC Appeal, 5 = Other Documents, 51 = Cost of Attendance Appeal.
 CommunicationBody OptionalThe body of the communication that was sent. This identifier is optional, and if not applicable this value will be null.
 CommunicationTypeId OptionalThe typeId associated with a communication. Available options currently include 1 = Email, 2 = SMS. This identifier is optional, and if not applicable this value will be null.
 CommunicationType OptionalThe description of type associated with a communication. Available options currently include "Email", "SMS". This identifier is optional, and if not applicable this value will be null.
 CommunicationAddress OptionalThe address where the communication was sent. Available options would be an email address or phone number. This identifier is optional, and if not applicable this value will be null.

Post Response and Retries

The CampusLogic system expects a 200 HTTP response status code to the POST, otherwise the event notification will be retried.  If the endpoint returns a non-200 HTTP status code it will be deferred and retried in hour intervals {configurable #} up to {configurable # of} times according to the current settings. If after the max number of attempts the message cannot be sent successfully, it is removed from the queue and marked as a failure.  This is currently configured to try 8 times with a delay between retries of 6 hours.  This gives your system 42 hours to recover before the event notice is considered a failure.  Failed events can be manually sent through again using the Student Verification administration area for integration.

Testing Your Integration

The School Settings screen, Event Notifications tab contains a button under the endpoint URL and username and password settings that allows you to test your integration.  Once you’ve provided the information requested, you can click this button to have a test Post set to the provided URL. The test post will contain an array of test event notification events of different kinds for you to test against.  This enables the technical staff to test their endpoint without having to simulate the events in their sandbox or production environments.

Event Notification Definitions

The following are the event notifications defined in the CampusLogic system that can be subscribed to along with their associated Type and unique Event Notification Id number, name and description:

 

Student Transaction Events

 
Event Notification Id
Event Name
Event Description
 
101
Transaction Collect
Transaction entered collect status
 
102
Transaction Document Review
Transaction entered document review status
 
103
Transaction File Review
Transaction entered file review status
 
104
Transaction Correcting
Transaction entered correcting status
 
105
Transaction Completed
Transaction entered completed status
 
106
Transaction Ignored
Transaction entered ignored status
 
107
Transaction ReCollect
Transaction entered recollect status
 111Transaction ExpiredTransaction was expired by school user

112Transaction Subsequent File Review
Transaction entered Subsequent File Review status

User Activities Events

 
Event Notification Id
Event Name
Event Description
 
201
Account Locked
Account was locked by {User}
 
202
Account Unlocked
Account was unlocked by {User}
 
203
Account Activated
Account was activated by {User}
 
204
Account Deactivated
Account was deactivated by {User}
 
205
Reopened File Review
Reopened file review for the {award} year
 
206
Completed File Review
Completed file review for the {award} year
 
207
Submitted
Submitted all tasks for {award}
 
208
Logged In
Logged in from IP address {IP}
 
209
Account Created
Account was created
 
210
Parent Account Created
Parent account was created
 
211
Tasks Opened
Tasks for {award} were opened
 
212
Transaction Approved
Tasks for {award} were completed and approved
 
213
Task Completed
Completed {task name}
 
214
Document Rejected
Rejected {doc name}
 
215
Document Downloaded
Downloaded {doc name}
 
216

Document Uploaded

Uploaded {doc name}
 
217
Requested Additional Information
Requested additional information: {doc name}
 
218
School Selected for Verification
School selected student for verification
 
219
Email Unsubscribed
Unsubscribed from email notifications
TBD
220
Email Resubscribed
Resubscribed to email notifications
 
221
Activity ESign Accepted
Student has accepted E-Sign option
 
222
Activity ESign Declined
Student has declined E-Sign option
 
223
Activity ESign Terms Accepted
Student has accepted E-Sign Terms and Conditions
 
224
Activity ESign Terms Declined
Student has declined E-Sign Terms and Conditions
 
225
Task Waived
Task was waived by school user
 
226
Task Unwaived
Task was unwaived by school user
 227Verification task was reopenedVerification task was reopened
 228Student profile was updatedStudent profile was updated
 229Activity Transaction Expired{Category} transaction for {award} was expired
 230Activity Transaction Unexpired{Category} transaction for {award} was unexpired

  231  Activity Sap Appeal Selected  Student was selected for SAP

  232  Activity Pj Dependency Override Selected  Student was selected for PJ Dependency Override

  233  Activity Pj Efc Calculation Selected  Student was selected for PJ EFC Calculation

  234  Activity File Review Approved  The student's appeal was approved

  235  Activity File Review Denied  The student's appeal was denied

  236  Activity File Review Rescinded  The student's appeal was rescinded

  237  Activity Client User Password Reset Requested  The user requested a password reset

  238  Activity User Verified Email  User's email was verified

  239  Student Re-Registration Error
  Re-Registration Error for "{0}" already registered as "{1}"

  240  Student Disconnected From User Account
  Disconnected from user account "{0}"

Communication Events

 
Event Notification Id
Event Name
Event Description
 
301
New Item Requested
Email that student has a new task to complete assigned by the school
 
302
Rejected Item
Email that student had a task item rejected by the school
 
303
Transaction Submission
Email that student has submitted their transaction to the school for review
 
304
Completed Review
Email that the school has completed reviewing the students transaction
 
305
Information Requested
Email that student needs to provide additional information to the school
 
306
Parent Signature Request
Email that student has asked a parent to e-sign a form.
 
307
Action Reminder
Reminder email that one or more requirements needs action
 
308
Account Creation
Confirmation email of Account Creation
 
309
Unsubscribe Confirmation
Confirmation email of unsubscription
 310Parent Account CreationConfirmation email of Parent Account Creation
 311Transaction ExpiredEmail that the school has expired the students transaction
 312Transaction UnexpiredEmail that the school has unexpired the students transaction
 313Task WaivedTask was waived by school user
 314Task UnwaivedTask was unwaived by school user
 315SAP Approved CommunicationCommunication that SAP appeal was approved
 316SAP Denied Communcation Communication that SAP appeal was denied
 317SAP Rescinded Communcation Communication that SAP appeal was rescinded
 318PJ DO Approved Communication Communication that PJ Dependency Override was approved 
 319PJ DO Denied Communcation Communication that PJ Dependency Override was denied 
 320PJ DO Rescinded Communication Communication that PJ Dependency Override was rescinded
 321PJ EFC Approved Communication Communication that PJ EFC was approved 
 322PJ EFC Denied Communication Communication that PJ EFC was denied
 323PJ EFC Rescinded Communication 
Communication that PJ EFC was rescinded
  324 Communication Verification Requested Communication Communication Verification Requested Communication
  325 Email Changed Communication Email Changed Communication
  326 Reset Password Reset Password Communication
  327 Forgot Username Forgot Username Communication
  328 Two Step Authentication Code Communication Two-Step Authentication Code Communication
  329 School User Account Creation School User Account Creation Communication
  330 Verification Manual Request Communication Verification Manual Request Communication
  331 SAP Appeal Manual Request Communication SAP Appeal Manual Request Communication
  332 PJ Appeal Manual Request Communication PJ Appeal Manual Request Communication
  339 Parent Task Reminder Communication Parent Tasks reminders have been enabled for Communication

  340  Student Phone Number Updated By School Communication  Student's phone number was updated by the school

Document Events

 
Event Notification Id
Event Name
Event Description
 
401
Document Submitted
Document entered submitted status
 
402
Document Rejected
Document entered rejected status
 
403
Document Accepted
Document entered accepted status
 
404
Document Recalled
Document entered recalled status
 
405
Document Deleted
Document entered deleted status

  406  Document E-Signed by Student  Document was e-signed by the student

  407  Document E-Signed by Parent  Document was e-signed by the parent

ScholarshipUniverse Events

 
Event Notification Id
Event Name
Event Description
 
701
Scholarship Award Posted
Award entered posted status
 
702
Scholarship Award Pending
Award entered pending status
 
703
Scholarship Award Offered
Award entered offered status
 
704
Scholarship Award Ready to Post
Award entered ready to post status
 
705
Scholarship Award Declined
Award entered declined status

  706  Scholarship Award Removed  Award entered removed status

  707  Scholarship Award Promoted  Award entered promoted status

  708  Scholarship Award Pending Approval
  Award entered pending approval status

TBD – To Be Developed

Event Notification Endpoint Best Practices

The event notification system can produce a high volume of HTTP Posts to occur over a short period of time depending on the event notification subscriptions you’ve selected.

The event notification POST expects a response status code of 200 to be sent once the information of the POST is successfully received.  This ensures that the POST is not sent again when it’s been properly processed.  However, due to the high volume of events, the CampusLogic system will only wait 30 seconds for a response before timing out the request.  If a timeout is received, it will be assumed that the event was not received properly and it will attempt to send the POST again at a later time.

To ensure that your endpoint processes the request in a timely manner that is under the timeout, it is recommended that once your endpoint has validated the request and the data is properly received that an asynchronous process on the clients end is used for the internal processing of the request so that a status code can immediately be sent back to CampusLogic.  Procedures should be taken to ensure that if there is a failure during this process that the information received is stored or logged so that it can be corrected internally without requiring another POST of the same information.  A queuing system might be one possible solution for internal processing of the information.Following this pattern will also allow your endpoint to receive a higher volume of POSTS and avoid duplicate issues that could arise if proper responses are not sent in a timely manner.

ISIR Correction Integration

This section describes ISIR correction retrieval through the use of a web API endpoint.

Summary of ISIR Correction Integration

The CampusLogic system exposes the ability to retrieve all batched ISIR corrections between two dates.  This file contains corrections that were automatically batched and corrections that were manually batched, and does not distinguish between the two. 

Output Format

The output will be in the format of a standard ZIP file.  The generated ZIP file will contain a folder for each date inside the date range requested, even if no corrections were batched on that day.  The folder will be named in the format “MM-DD-YYYY”.  Inside the folder will be zero or more text files, with each text file containing the contents of an individual correction batch made on that given day.  Each text file is in the format specified by EDE for the transmission of ISIR corrections.  The text files will be named in the format “XXXX.txt” where “XXXX” is the ID of the correction batch.

Get Correction Batches

Retrieve all batched corrections for a given date range. All data shall be compressed and delivered as a single .zip file in the format described above.

Request

Request Format: [API Root Url]/correction/zip?startDate=MM-DD-YYYY&endDate=MM-DD-YYYY

Request URL: [API Root Url]/correction/zip?startDate=01-01-2014&endDate=01-31-2014

Request Method: Get

Request Header:

Authorization: WRAP access_token="[security token value]" 

Response

 Content-Type: application/zip