Event types
Subscribe an endpoint to any combination of the six event types below. Everything shown here is the data object — the surrounding envelope is identical for every event.
Scholarships are identified as scholarship_id on the scholarship events and as opportunity_id on the application and award events. Both are the same identifier — the one you pass to the REST API’s scholarship endpoints. The two names are historical, and both are kept because renaming either would break existing integrations.
application.submitted
Sent when an application reaches submitted state, whether the student pressed submit or AwardSpring auto-submitted it. is_auto_submit tells you which.
This is the only event that carries applicant contact details inline, so a downstream system can act without a follow-up API call.
application.status_changed
Sent when an application’s review status moves — the workflow status a reviewer or administrator advances, such as In Progress to Complete.
This is not the award decision. An application being awarded produces award.created, not a status change. Subscribing to this event expecting award outcomes will miss them.
Status names are the labels used in the AwardSpring interface. Match on them defensively — an institution’s workflow can introduce values you have not seen.
award.created
Sent when an application’s status becomes awarded.
award.disbursed
Sent per disbursement, when a disbursement is marked disbursed. An award paid in two terms produces two of these.
scholarship.created
A scholarship is often created before its amounts and dates are filled in, so expect nulls here and read the current state from the REST API when you need it complete.
scholarship.deadline_changed
Sent when the application deadline moves. Useful for anything that has messaged applicants about a date.
Adding fields
New fields can be added to any data object without a change to api_version. A field being added is not a breaking change; parse permissively and ignore what you do not recognise.
Removing a field or changing its meaning is breaking, and would come with a new api_version value and notice to integrators.