Student Loan - Bill Payment Requirements

Overview

Spinwheel payments for Student Loans, facilitated via the Bill Pay rails, may require additional verification on the account number from the user.

Below, we will break this down into "Required for Payment", "Not Required for Payment" and "May be Required for Payment". To accompany these statuses, we have included the rules that are necessary for payment on the bill pay rails for your evaluation.

Example account numbers for each servicer are included based on the expected value the user may return on their Credit Report. In cases of variance between the user's account number and what is returned from the bureau, we have provided the example accountNumber format that is expected to be updated on the user.

The intent of adding this is to provide further visibility and consistency to each step of the transaction process. These Bill Pay payment rails are supported by a Mastercard bill payment standard.

Usage

With the availability of the update account number API, you will be able to update any student loan(s) with the appropriate account number. You may determine if and when you will want to update the account number based on the capabilities matrix exposed per studentLoanId.

For payment, you will want to follow the communicated form of payment request, with the updated use of funds model

Per Payment Request

The CREATE /v1/payments/requests endpoint has the below requirements

Invocation Parameters:

  • Partner secret key
  • userId
  • extRequestId
  • use of funds object inclusive of the allocation array designation

Example code request:

{  
 "extRequestId": "j3gh59d-c87b-415e-94e2-15367975218d",  
 "amount": 500,  
 "payerId": "{{UUID}}",  
 "userId": "{{UUID}}",  
 "scheduleTs": 1636250123000,  
 "requestType": "ONE_TIME"  
 "useOfFunds": {  
   "allocation":[  
"liabilityType": "STUDENT_LOAN"  
"studentLoanId": "{{UUID}}",  
"percentage": 100,  
  ]  
 }  
}\`

The Update Account Number API

The PATCH /v1/users/:userId/studentLoans/:studentLoanId endpoint has the below requirements

extAccountId (the account number) is a required parameter

Example code request:

{
	extAccountId: string,
creditor: {
billingAddress: { 
	“addressLine1”: string,
	 “addressLine2”: string,
	“city”: string,
	“state”: string,
	“zip”: string,
	“zipExtension”: string,
}
}
}

Payment Coverage

The coverage for Student Loan via Bill Payments are as follows:

ServicersAccount Number Update StatusRules for Payment
MohelaMay be Required for Payment9-11 digit mask
AidvantageMay be Required for Payment9-10 digit mask; a leading "F" may also be accepted followed by 9 digits
NelnetRequired for Payment9-10 digits; a leading "E" may also be accepted followed by 9 digits
EarnestNot Required for Payment6-22 digit mask
AESMay be Required for Payment9-10 digit mask
NavientRequired for Payment9-22 digit mask
EdFinancialRequired for Payment9-10 digit mask; a leading "F" may be accepted followed by 9 digits
Heartland - ESCIRequired for PaymentDOE: 8 digit mask
ECSI directly: 7 or 9 digit mask; leading letter(s) followed by 7 digits may be accepted
Mohela-SoFiMay be Required for PaymentMissouri Higher Ed:10 digit mask
Mohela BillPay: 9-11 digit mask
Mohela-Laurel RoadMay be Required for PaymentMissouri Higher Ed:10 digit mask
Mohela BillPay: 9-11 digit mask
CFNCRequired for Payment9 digit mask
Sallie MaeMay be Required for Payment16 digit mask with '58525(0)' prefix
DiscoverNot Required for Payment11-15 digit mask

Capabilities Matrix

{
        "capabilities": {
          "payments": {
            "billPayment": {
              "availability": "NOT_SUPPORTED"
              "description": "ACCOUNT_NUMBER_VERIFICATION_FAILED"
            }
          }
        }

Loan Level Payments/highImpact

Part of the current student loan payment request logic is the highImpact flag. With the highImpact flag, Spinwheel used to perform an evaluation to determine the most impactful loan to apply the payment towards. This highImpact logic is no longer available with the updated source of data.

For some of the loan servicers, Spinwheel supports payment to the specific loan - instead of at the loanAccount or group level. For these servicers, the change to these new payments rails will mean that by default all payments will be applied at the account level.