All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tech.alexib.plaid.client.model.StudentLoan.kt Maven / Gradle / Ivy

/*
 * Copyright 2020 Alexi Bre
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package tech.alexib.plaid.client.model

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 * Contains details about a student loan account
 * @param accountId The ID of the account that this liability belongs to.
 * @param accountNumber The account number of the loan.
 * @param disbursementDates The dates on which loaned funds were disbursed or will be disbursed.
 * These are often in the past. Dates are returned in an ISO 8601 format (YYYY-MM-DD).
 * @param expectedPayoffDate The date when the student loan is expected to be paid off. Availability
 * for this field is limited. Dates are returned in an ISO 8601 format (YYYY-MM-DD).
 * @param guarantor The guarantor of the student loan.
 * @param interestRatePercentage The interest rate on the loan as a percentage.
 * @param isOverdue `true` if a payment is currently overdue. Availability for this field is
 * limited.
 * @param lastPaymentAmount The amount of the last payment.
 * @param lastPaymentDate The date of the last payment. Dates are returned in an ISO 8601 format
 * (YYYY-MM-DD).
 * @param lastStatementBalance The outstanding balance on the last statement. This field could also
 * be interpreted as the next payment due. Availability for this field is limited.
 * @param lastStatementIssueDate The date of the last statement. Dates are returned in an ISO 8601
 * format (YYYY-MM-DD).
 * @param loanName The type of loan, e.g., "Consolidation Loans".
 * @param loanStatus An object representing the status of the student loan
 * @param minimumPaymentAmount The minimum payment due for the next billing cycle. There are some
 * exceptions:
 * Some institutions require a minimum payment across all loans associated with an account number.
 * Our API presents that same minimum payment amount on each loan. The institutions that do this are:
 * Great Lakes ( `ins_116861`), Firstmark (`ins_116295`), Commonbond Firstmark Services (`ins_116950`),
 * Nelnet (`ins_116528`), EdFinancial Services (`ins_116304`), Granite State (`ins_116308`), and
 * Oklahoma Student Loan Authority (`ins_116945`).
 * Firstmark (`ins_116295` ) will display as $0 if there is an autopay program in effect.
 * @param nextPaymentDueDate The due date for the next payment. The due date is `null` if a payment
 * is not expected. A payment is not expected if `loan_status.type` is `deferment`, `in_school`,
 * `consolidated`, `paid in full`, or `transferred`. Dates are returned in an ISO 8601 format
 * (YYYY-MM-DD).
 * @param originationDate The date on which the loan was initially lent. Dates are returned in an
 * ISO 8601 format (YYYY-MM-DD).
 *
 * @param originationPrincipalAmount The original principal balance of the loan.
 * @param outstandingInterestAmount The total dollar amount of the accrued interest balance. For
 * Sallie Mae ( `ins_116944`), this amount is included in the current balance of the loan, so this
 * field will return as `null`.
 * @param paymentReferenceNumber The relevant account number that should be used to reference this
 * loan for payments. In the majority of cases, `payment_reference_number` will match a`ccount_number,`
 * but in some institutions, such as Great Lakes (`ins_116861`), it will be different.
 * @param pslfStatus Information about the student's eligibility in the Public Service Loan
 * Forgiveness program. This is only returned if the institution is Fedloan (`ins_116527`).
 * @param repaymentPlan An object representing the repayment plan for the student loan
 * @param sequenceNumber The sequence number of the student loan. Heartland ECSI (`ins_116948`) does
 * not make this field available.
 * @param servicerAddress The address of the student loan servicer. This is generally the remittance
 * address to which payments should be sent.
 * @param ytdInterestPaid The year to date (YTD) interest paid. Availability for this field is
 * limited.
 * @param ytdPrincipalPaid The year to date (YTD) principal paid. Availability for this field is
 * limited.
 */
@Serializable
data class StudentLoan(
    @SerialName("account_id")
    val accountId: String? = null,
    @SerialName("account_number")
    val accountNumber: String? = null,
    @SerialName("disbursement_dates")
    val disbursementDates: List? = null,
    @SerialName("expected_payoff_date")
    val expectedPayoffDate: String? = null,
    @SerialName("guarantor")
    val guarantor: String? = null,
    @SerialName("interest_rate_percentage")
    val interestRatePercentage: Double,
    @SerialName("is_overdue")
    val isOverdue: Boolean? = null,
    @SerialName("last_payment_amount")
    val lastPaymentAmount: Double? = null,
    @SerialName("last_payment_date")
    val lastPaymentDate: String? = null,
    @SerialName("last_statement_balance")
    val lastStatementBalance: Double? = null,
    @SerialName("last_statement_issue_date")
    val lastStatementIssueDate: String? = null,
    @SerialName("loan_name")
    val loanName: String? = null,
    @SerialName("loan_status")
    val loanStatus: StudentLoanStatus? = null,
    @SerialName("minimum_payment_amount")
    val minimumPaymentAmount: Double? = null,
    @SerialName("next_payment_due_date")
    val nextPaymentDueDate: String? = null,
    @SerialName("origination_date")
    val originationDate: String? = null,
    @SerialName("origination_principal_amount")
    val originationPrincipalAmount: Double? = null,
    @SerialName("outstanding_interest_amount")
    val outstandingInterestAmount: Double? = null,
    @SerialName("payment_reference_number")
    val paymentReferenceNumber: String? = null,
    @SerialName("pslf_status")
    val pslfStatus: PSLFStatus? = null,
    @SerialName("repayment_plan")
    val repaymentPlan: StudentRepaymentPlan? = null,
    @SerialName("sequence_number")
    val sequenceNumber: String? = null,
    @SerialName("servicer_address")
    val servicerAddress: ServicerAddressData? = null,
    @SerialName("ytd_interest_paid")
    val ytdInterestPaid: Double? = null,
    @SerialName("ytd_principal_paid")
    val ytdPrincipalPaid: Double? = null
)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy