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.

AdditionalInfoId Optional The 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.
SvTransactionCategoryId Optional The 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.
 CommunicationBody  Optional The body of the communication that was sent. This identifier is optional, and if not applicable this value will be null.
 CommunicationTypeId  Optional The 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  Optional The 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  Optional The 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
 
108
Transaction Deactivated
Transaction entered deactivated status
 
109
Transaction Pending Veritax
Transaction entered pending Veritax status
TBD 110 Transaction Requirements Changed Transaction requirements were added or deleted
  111 Transaction Expired Transaction was expired by school user

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
  227 Verification task was reopened Verification task was reopened
  228 Student profile was updated Student profile was updated
  229 Activity Transaction Expired {Category} transaction for {award} was expired
  230 Activity 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

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
  310 Parent Account Creation Confirmation email of Parent Account Creation
  311 Transaction Expired Email that the school has expired the students transaction
  312 Transaction Unexpired Email that the school has unexpired the students transaction
  313 Task Waived Task was waived by school user
  314 Task Unwaived Task was unwaived by school user
  315 SAP Approved Communication Communication that SAP appeal was approved
  316 SAP Denied Communcation  Communication that SAP appeal was denied
  317 SAP Rescinded Communcation  Communication that SAP appeal was rescinded
  318 PJ DO Approved Communication  Communication that PJ Dependency Override was approved 
  319 PJ DO Denied Communcation  Communication that PJ Dependency Override was denied 
  320 PJ DO Rescinded Communication  Communication that PJ Dependency Override was rescinded
  321 PJ EFC Approved Communication  Communication that PJ EFC was approved 
  322 PJ EFC Denied Communication  Communication that PJ EFC was denied
  323 PJ 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

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