HomeGuidesAPI Reference


Make enrolling in IDR plans easy with Nexus.enroll

After you've linked servicer accounts to build a loan portfolio, and shown an Assessment to your Borrower, they will be ready to choose and enroll in an IDR Plan. Nexus.enroll makes this easy by doing all the hard work for you—providing a simple, easy-to-use experience for borrowers to submit accurate Enrollment Requests that are more likely to be approved quickly by their Servicer(s).


Nexus pre-fills information we know about your borrowers

To make things easy for your borrowers, we will pre-fill information required to submit an Enrollment. This means if you're using the API, or if a borrower has used Nexus before, we'll fill in information that's been saved before—like SSN, address, and contact info. We'll still present these steps to the user so they can confirm or correct the information as they proceed through the workflow.

Calling Nexus.enroll

Nexus.enroll expects to receive a single options object as a parameter. This options object allows you to specify an optional plan name (details below), as well as an onEvent callback to take actions based on your borrower's activity within Nexus:

// Assuming you have a button your Borrower can click to Enroll
let enrollButton = document.querySelector('#nexus-enroll-button')

// Attach click handler to invoke Nexus.enroll
enrollButton.addEventListener('click', e => {
    // If using API—`repayment_plan.type` from Repayment Options
    // If using Nexus.assess—`requested_plan.name` from assess response
    // This field is OPTIONAL
    plan: 'save',
    // the function to call when borrower is done
    onEvent: handleEvent,

Nexus.enroll presenting repayment options to a user.

plan parameter

The plan option parameter is optional for enrollment to begin. You only need to provide plan when you know what plan your user has chosen to enroll in—for example, when you're building your own Assessment UX, or you are calling Nexus.assess and Nexus.enroll independently with some kind of UX break in between.


Rely on Nexus to do all the things!

If you want Nexus.enroll to handle the entire workflow, you can omit the plan parameter entirely. When you do not provide a plan upon invoking Nexus.enroll, Nexus will walk your borrower through the entire flow to create an Enrollment Request—we will ask your borrowers to link their servicer accounts, then present all eligible repayment options so borrowers can see which plan saves them the most money, and we'll finish up by walking them through enrolling in the plan once they've chosen a plan they like.

This is the perfect option when you want your borrowers to submit Enrollment Requests, but don't want to call each Nexus workflow independently.

If you are relying on Nexus.assess to present borrowers with Repayment Options, you should grab the requested_plan.name that is returned from Nexus.assess to your callback function.

If you are building your own Assessment UX, you're relying on our API to fetch and display Repayment Options to your borrowers. In this case, you should provide the plan parameter to Nexus.enroll, and the value should be a repayment_plan.type value from our Repayment Options API endpoint.

onEvent callback

When Nexus transmits an event, your onEvent callback will be called with one an argument, a JavaScript object with a top-level property nexusEvent containing an object with the details of the event:

  nexusEvent: {
    name: "workflow_finished",
    workflow: "enroll",
    consumer: {
      uuid: "dceea28c-2245-41a8-a558-fef1643f99b2"
    metadata: {
      enrollment: {
        created_at: "2021-05-07T16:36:12.051603Z",
        estimated_approval_date: "2023-12-15",
        id: 23,
        repayment_plan: {
          description: "Saving on a Valuable Education (SAVE)",
          type: "save"
        status: {
          updated_at: "2021-05-07T16:36:12.055132Z",
          description: "Submission in Progress",
          type: "pending"
        uuid: "c399298f-47ef-4fab-85b3-6244fca22448"

Nexus.enroll Events

workflow_finishedThe borrower successfully submitted an enrollment request for an IDR plan.enrollment has details about the enrollment request and its status (see above)
quitThe borrower closed Nexus without submitting an enrollment request.none

Nexus.enroll presenting confirmation of plan details. Clicking Continue results in the onEvent callback above being triggered with the workflow_finished event and details of the enrollment in the metadata.


Remember the borrower

If you're relying on Nexus to create borrowers for you, you will want to save the borrower.uuid that is returned so you can make API calls on behalf of your borrowers.


Nexus handles gathering all of the necessary information and documentation from the borrower to enroll them in the requested repayment plan. For reference, that includes:

  • Full name
  • Phone number
  • Email address
  • Servicers of their federal student loans
  • Current income
  • Documentation of current income if the borrower has taxable income: their most recent tax return if their income hasn't changed, or a recent paystub if it has.
  • And the above information/documentation for the borrower's spouse if they are married and file taxes jointly.