Skip to main content
Liaison

Setting Up the CAS API to Deliver Submitted Applications and Documents

Before you can begin working with the CAS API, your programs should be configured, and at least one program must be active.

Next, you'll need to request access to the CAS API and establish the CAS API subscription to enable the delivery of application data and documents to Slate. This documentation contains the established subscription configuration that will work with the standard Source Formats.

Once implemented, these instructions will accomplish the following:

  • Delivery of CAS applications to Slate when applicants click Submit.
  • Delivery of CAS documents to Slate for submitted applications.
    • All documents received prior to CAS application submission will be delivered at the point of submission.
    • Any documents received after submission will be delivered as they are received by the CAS.

Creating a CAS API Subscription

You may use any tool for interacting with HTTPS endpoints to create your subscription. Here are some popular options:

  •  cURL: A command-line tool for interacting with HTTPS endpoints available out of the box in most operating systems
  • Coding languages: Versatile and powerful languages with a variety of tools for interacting with HTTPS endpoints, such as Python, Java, Perl, C#, and JavaScript.
  • Postman: A graphic user interface for interacting with HTTPS endpoints

To create a CAS API subscription:

  1. Select the target environment:
  2. Authenticate:
    • Hit the POST /v1/auth/token endpoint.
      • Send in username and password in the body of the request.
      • Send the API key as a header with key “x-api-key”.
    • The token retrieved must be passed in all subsequent requests as a header with key “Authorization.” Pass this token in addition to your API key. Authorization tokens are valid for 1 hour after generation.
  3. Retrieve identifiers – These will be provided at account creation. These identifiers are used in the URL string parameters.
    • Application Form
      • Definition: A CAS/cycle combination of interest (e.g. “CSDCAS 20-21”, “BusinessCAS 19-20”.)
    • Organization
      • Definition: An identifier unique to the institution within a CAS.
  4. Create the subscription.
    • Endpoint to create subscription: POST /v1/applicationForms/:applicationFormId/organizations/:organizationId/subscriptions
      • This subscription is created at the organization scope, which means that any time an event occurs on any application to any program at your organization, a payload will be delivered to the Slate SFTP by the CAS API. Subscribing at the organization scope means that you can freely add, open, and close CAS programs knowing that the application data and documents will be delivered to Slate.
    • URL string parameters: applicationFormId, organizationId
      • Add the relevant applicationFormId and organizationId values, referring to the values delivered to you upon CAS API account creation.
      • Note that you need to subscribe to each CAS separately. If you are interested in integrating applications from 3 different CAS to Slate, then you will need to create 3 CAS API subscriptions.
    • Submit a CAS API subscription creation request.
      • This subscription delivers application data at the point of submission: when the applicant hits the Submit button and pays the application fee, having completed all submission requirements (questions, document uploads, etc.). All application documents are also delivered: once the application has been submitted, any documents present at that time will be delivered, after the application has been submitted, documents will be delivered as they arrive at the CAS. A Full Application PDF, which represents all responses the applicant provided to application questions, is generated and delivered at the point of submission, as well. Here's a breakdown of the CAS API business events (the bolded entries are included in the standard, recommended subscription below):

Business Event

Event Description

Payload Type

Payload Description

application.program.selected

Application started (added to the "shopping cart")

Data

File with all available application data

application.program.received

Application submitted (all required fields completed, "submit" button hit, fee paid)

Data

File with all available application data

application.program.completed

Application completed (all configured requirements - like transcripts and letters of recommendation - fulfilled)

Data

File with all available application data

application.program.verified

Application verified (not relevant to all CASs)

Data

File with all available application data

application.program.received

Application submitted (all required fields completed, "submit" button hit, fee paid)

Document

Full Application PDF, containing all responses the applicant provided to application questions

file.attachment.updated

Document updated

Document

Applicant-uploaded documents collected from all applicants to the CAS, regardless of programs selected

file.supplementalAttachment.updated

Document updated

Document

Applicant-uploaded documents collected only from programs at your institution

file.evaluation.updated

Document updated

Document

Letters of recommendation

file.transcript.updated

Document updated

Document

College transcripts

file.vendorTranscriptEval.updated

Document updated

Document

Official foreign transcript evaluations from WES or ECE

 Your request should be as follows. Remember to replace our [SAMPLE TEXT APPEARING IN BRACKETS] with the appropriate values.

POST /v1/applicationForms/[THE TARGET APPLICATIONFORMID >> CAS+CYCLE]/organizations/[THE RELEVANT ORGANIZATIONID FOR YOUR INSTITUTION WITHIN THAT CAS+CYCLE]/subscriptions
Authorization: [A VALID AUTHORIZATION TOKEN RETRIEVED FROM POST /v1/auth/token]
Content-Type: application/json
x-api-key: [YOUR CAS API KEY]
Host: [THE APPROPRIATE CAS API ROOT URL: PRODUCTION – api.liaisonedu.com, PRELAUNCH – api.prelaunch.liaisonedu.com]
{
"notificationEmailAddress": "[ENTER A MONITORED EMAIL ADDRESS TO RECEIVE NOTIFICATIONS ABOUT YOUR SUBSCRIPTIONS]",
"subscriptionDetails": [
{
"destinationType": "SFTP",
"event": "application.program.received",
"responseLevel": "program",
"responseType": "fullResponse",
"responseOptions": "expand=all,contentType=text/csv,columnSeparator=COMMA,csvHeaderTruncationSize=4,csvShortName=question",
"apiVersion": "v2",
"sftpDestination": {
"sftpHost": "ft.technolutions.net",
"sftpPort": 22,
"sftpUser": "[ENTER SFTP USERNAME HERE]",
"sftpPassword": "[ENTER SFTP PASSWORD HERE]",
"sftpBaseDirectory": "/incoming/liaison/[ENTER CAS NAME HERE]/data/",
"sftpPathTemplate": "casapi-app-submitted_<instanceId>_<organizationId>_<programId>_<applicationId>_<casApplicantId>.csv"
}
},
{
"destinationType": "SFTP",
"event": "application.program.received",
"responseLevel": "program",
"responseType": "fullResponse",
"responseOptions": "contentType=application/pdf",
"apiVersion": "v1",
"sftpDestination": {
"sftpHost": "ft.technolutions.net",
"sftpPort": 22,
"sftpUser": "[ENTER SFTP USERNAME HERE]",
"sftpPassword": "[ENTER SFTP PASSWORD HERE]",
"sftpBaseDirectory": "/incoming/liaison/",
"sftpPathTemplate": "[ENTER CAS NAME HERE]_app_<casApplicantId>_<programId>_fullAppPDF__<applicationId>!<deliveredDate>.pdf"
}
},
{
"destinationType": "SFTP",
"event": "file.attachment.updated",
"responseLevel": "organization",
"responseType": "fullResponse",
"dataHold": "InProgress",
"sftpDestination": {
"sftpHost": "ft.technolutions.net",
"sftpPort": 22,
"sftpUser": "[ENTER SFTP USERNAME HERE]",
"sftpPassword": "[ENTER SFTP PASSWORD HERE]",
"sftpBaseDirectory": "/incoming/liaison/",
"sftpPathTemplate": "[ENTER CAS NAME HERE]_pers_<casApplicantId>__<documentSubType>__<fileId>!<deliveredDate>.pdf"
}
},
{
"destinationType": "SFTP",
"event": "file.supplementalAttachment.updated",
"responseLevel": "program",
"responseType": "fullResponse",
"dataHold": "InProgress",
"sftpDestination": {
"sftpHost": "ft.technolutions.net",
"sftpPort": 22,
"sftpUser": "[ENTER SFTP USERNAME HERE]",
"sftpPassword": "[ENTER SFTP PASSWORD HERE]",
"sftpBaseDirectory": "/incoming/liaison/",
"sftpPathTemplate": "[ENTER CAS NAME HERE]_app_<casApplicantId>_<programId>_<documentSubType>__<fileId>!<deliveredDate>.pdf"
}
},
{
"destinationType": "SFTP",
"event": "file.evaluation.updated",
"responseLevel": "program",
"responseType": "fullResponse",
"dataHold": "InProgress",
"sftpDestination": {
"sftpHost": "ft.technolutions.net",
"sftpPort": 22,
"sftpUser": "[ENTER SFTP USERNAME HERE]",
"sftpPassword": "[ENTER SFTP PASSWORD HERE]",
"sftpBaseDirectory": "/incoming/liaison/",
"sftpPathTemplate": "[ENTER CAS NAME HERE]_app_<casApplicantId>_<programId>_<docType>__<fileId>!<deliveredDate>.pdf"
}
},
{
"destinationType": "SFTP",
"event": "file.transcript.updated",
"responseLevel": "organization",
"responseType": "fullResponse",
"dataHold": "InProgress",
"sftpDestination": {
"sftpHost": "ft.technolutions.net",
"sftpPort": 22,
"sftpUser": "[ENTER SFTP USERNAME HERE]",
"sftpPassword": "[ENTER SFTP PASSWORD HERE]",
"sftpBaseDirectory": "/incoming/liaison/",
"sftpPathTemplate": "[ENTER CAS NAME HERE]_pers_<casApplicantId>__<docType><transcriptType>_<collegeAttendedId>_<fileId>!<deliveredDate>.pdf"
}
},
{
"destinationType": "SFTP",
"event": "file.vendorTranscriptEval.updated",
"responseLevel": "organization",
"responseType": "fullResponse",
"dataHold": "InProgress",
"sftpDestination": {
"sftpHost": "ft.technolutions.net",
"sftpPort": 22,
"sftpUser": "[ENTER SFTP USERNAME HERE]",
"sftpPassword": "[ENTER SFTP PASSWORD HERE]",
"sftpBaseDirectory": "/incoming/liaison/",
"sftpPathTemplate": "[ENTER CAS NAME HERE]_pers_<casApplicantId>__<docType>_<collegeAttendedId>_<fileId>!<deliveredDate>.pdf"
}
}
]
}

 

If you're working with this integration using Postman, see our guide Using Postman to Set Up the CAS API Integration.

For more information, also see the Slate Knowledge Base.

  • Was this article helpful?