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

tech.alexib.plaid.client.model.MortgageLiability.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 mortgage account.
 * @param accountId The ID of the account that this liability belongs to.
 * @param accountNumber The account number of the loan.
 * @param currentLateFee The current outstanding amount charged for late payment.
 * @param escrowBalance Total amount held in escrow to pay taxes and insurance on behalf of the
 * borrower.
 * @param hasPmi Indicates whether the borrower has private mortgage insurance in effect.
 * @param hasPrepaymentPenalty Indicates whether the borrower will pay a penalty for early payoff of
 * mortgage.
 * @param interestRate Object containing metadata about the interest rate for the mortgage.
 * @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 loanTypeDescription Description of the type of loan, for example `conventional`, `fixed`,
 * or `variable`. This field is provided directly from the loan servicer and does not have an
 * enumerated set of possible values.
 * @param loanTerm Full duration of mortgage as at origination (e.g. `10 year`).
 * @param maturityDate Original date on which mortgage is due in full. Dates are returned in an ISO
 * 8601 format (YYYY-MM-DD).
 * @param nextMonthlyPayment The amount of the next payment.
 * @param nextPaymentDueDate The due date for the next payment. 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 mortgage.
 * @param pastDueAmount Amount of loan (principal + interest) past due for payment.
 * @param propertyAddress Object containing fields describing property address.
 * @param ytdInterestPaid The year to date (YTD) interest paid.
 * @param ytdPrincipalPaid The YTD principal paid.
 */
@Serializable
data class MortgageLiability(
    @SerialName("account_id")
    val accountId: String? = null,
    @SerialName("account_number")
    val accountNumber: String,
    @SerialName("current_late_fee")
    val currentLateFee: Double? = null,
    @SerialName("escrow_balance")
    val escrowBalance: Double? = null,
    @SerialName("has_pmi")
    val hasPmi: Boolean? = null,
    @SerialName("has_prepayment_penalty")
    val hasPrepaymentPenalty: Boolean? = null,
    @SerialName("interest_rate")
    val interestRate: MortgageInterestRate? = null,
    @SerialName("last_payment_amount")
    val lastPaymentAmount: Double? = null,
    @SerialName("last_payment_date")
    val lastPaymentDate: String? = null,
    @SerialName("loan_type_description")
    val loanTypeDescription: String? = null,
    @SerialName("loan_term")
    val loanTerm: String? = null,
    @SerialName("maturity_date")
    val maturityDate: String? = null,
    @SerialName("next_monthly_payment")
    val nextMonthlyPayment: 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("past_due_amount")
    val pastDueAmount: Double? = null,
    @SerialName("property_address")
    val propertyAddress: MortgagePropertyAddress? = null,
    @SerialName("ytd_interest_paid")
    val ytdInterestPaid: Double? = null,
    @SerialName("ytd_principal_paid")
    val ytdPrincipalPaid: Double? = null
)




© 2015 - 2025 Weber Informatics LLC | Privacy Policy