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, 51 = Cost of Attendance Appeal. |
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 |
111 | Transaction Expired | Transaction was expired by school user | |
112 | Transaction 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 |
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 | |
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 |
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 |
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.