/* tslint:disable */ /* eslint-disable */ /** * deposits * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: v2 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ // May contain unused imports in some cases // @ts-ignore import type { AccountArrearsSettings } from './account-arrears-settings'; // May contain unused imports in some cases // @ts-ignore import type { Asset } from './asset'; // May contain unused imports in some cases // @ts-ignore import type { Balances } from './balances'; // May contain unused imports in some cases // @ts-ignore import type { Currency } from './currency'; // May contain unused imports in some cases // @ts-ignore import type { DisbursementDetails } from './disbursement-details'; // May contain unused imports in some cases // @ts-ignore import type { FeesAccountSettings } from './fees-account-settings'; // May contain unused imports in some cases // @ts-ignore import type { Guarantor } from './guarantor'; // May contain unused imports in some cases // @ts-ignore import type { InterestSettings } from './interest-settings'; // May contain unused imports in some cases // @ts-ignore import type { InvestorFund } from './investor-fund'; // May contain unused imports in some cases // @ts-ignore import type { LoanAccountRedrawSettings } from './loan-account-redraw-settings'; // May contain unused imports in some cases // @ts-ignore import type { LoanTranche } from './loan-tranche'; // May contain unused imports in some cases // @ts-ignore import type { PenaltySettings } from './penalty-settings'; // May contain unused imports in some cases // @ts-ignore import type { PlannedInstallmentFee } from './planned-installment-fee'; // May contain unused imports in some cases // @ts-ignore import type { PrepaymentSettings } from './prepayment-settings'; // May contain unused imports in some cases // @ts-ignore import type { PrincipalPaymentAccountSettings } from './principal-payment-account-settings'; // May contain unused imports in some cases // @ts-ignore import type { RevolvingAccountCreditBalanceSettings } from './revolving-account-credit-balance-settings'; // May contain unused imports in some cases // @ts-ignore import type { ScheduleSettings } from './schedule-settings'; /** * Represents a loan account. A loan account defines the amount that your organization lends to a client. The terms and conditions of a loan account are defined by a loan product. In a loan account, Mambu stores all the information related to disbursements, repayments, interest rates, and withdrawals. */ export interface LoanAccount { accountArrearsSettings?: AccountArrearsSettings; /** * The encoded key of the account holder. */ accountHolderKey: string; /** * Indicated the account holder type. */ accountHolderType: LoanAccountAccountHolderTypeEnum; /** * All the generic account states applicable to loans. */ accountState?: LoanAccountAccountStateEnum; /** * All the generic account sub states applicable to loans. */ accountSubState?: LoanAccountAccountSubStateEnum; /** * The amount of interest that has been accrued in the loan account. */ accruedInterest?: number; /** * The accrued penalty, represents the amount of penalty that has been accrued in the loan account. */ accruedPenalty?: number; /** * The encoded key of the transaction that activated the loan account. */ activationTransactionKey?: string; /** * Adjust the total due for repayment when the repayment period is different than the repayment frequency */ adjustTotalDueForInstallmentsWithDifferentInterval?: boolean; /** * True if advance repayment is allowed; false otherwise. */ allowAdvanceRepayment?: boolean; /** * DEPRECATED - Will always be false. */ allowOffset?: boolean; /** * The date the loan account was approved. */ approvedDate?: string; /** * The arrears tolerance (period or day of month) depending on the product settings. */ arrearsTolerancePeriod?: number; /** * The list of assets associated with the current loan account. */ assets?: Array; /** * The key of the branch this loan account is assigned to. The branch is set to unassigned if no branch field is set. */ assignedBranchKey?: string; /** * The key of the centre this account is assigned to. */ assignedCentreKey?: string; /** * The key of the user this loan account is assigned to. */ assignedUserKey?: string; balances?: Balances; /** * The date the loan was closed. */ closedDate?: string; /** * The date the loan account was created. */ creationDate?: string; /** * The key to the line of credit where this account is registered to. */ creditArrangementKey?: string; creditBalanceSettings?: RevolvingAccountCreditBalanceSettings; currency?: Currency; /** * The number of days the loan account is in arrears. */ daysInArrears?: number; /** * The number of days a repayment for the loan account is late. */ daysLate?: number; disbursementDetails?: DisbursementDetails; /** * The encoded key of the loan account, it is auto generated, and must be unique. */ encodedKey?: string; feesSettings?: FeesAccountSettings; /** * The list of funds associated with the loan account. */ fundingSources?: Array; /** * Shows whether the repayment transactions with entry date set in the future are allowed or not for this loan account. */ futurePaymentsAcceptance?: LoanAccountFuturePaymentsAcceptanceEnum; /** * The list of guarantees associated with the loan account. */ guarantors?: Array; /** * The ID of the loan account, it can be generated and customized, and must be unique. */ id?: string; /** * The interest that is accrued in the current billing cycle. */ interestAccruedInBillingCycle?: number; /** * The value of the interest booked by the organization from the accounts funded by investors. Null if the funds are not enabled. */ interestCommission?: number; /** * The amount of interest from arrears that has been accrued in the loan account. */ interestFromArrearsAccrued?: number; interestSettings?: InterestSettings; /** * The date the loan account has last been evaluated for interest, principal, fees, and penalties calculations expressed in the organization time format and time zone. */ lastAccountAppraisalDate?: string; /** * The date of the last time the loan account had interest applied (stored to interest balance), expressed in the organization time format and time zone. */ lastInterestAppliedDate?: string; /** * The date the interest was reviewed last time, stored in the organization time format and time zone. */ lastInterestReviewDate?: string; /** * The date when the loan account was set for the last time in the `LOCKED` state expressed in the organization time format and time zone. If null, the account is not locked anymore. */ lastLockedDate?: string; /** * The last date the loan was updated. */ lastModifiedDate?: string; /** * The date when the loan account was set to last standing or null; if never set, it is expressed in your organization time format and time zone. */ lastSetToArrearsDate?: string; /** * The date the tax rate on the loan account was last checked, expressed in the organization time format and time zone. */ lastTaxRateReviewDate?: string; /** * The late payment recalculation method. Is used by loan accounts to have the schedule recalculated when late payments are posted on accounts.. */ latePaymentsRecalculationMethod?: LoanAccountLatePaymentsRecalculationMethodEnum; /** * The loan amount. */ loanAmount: number; /** * The name of the loan account. */ loanName?: string; /** * Type of total due amount for a locked account. */ lockedAccountTotalDueType?: LoanAccountLockedAccountTotalDueTypeEnum; /** * A list with operations which are locked when the account is in the AccountState.LOCKED substate. */ lockedOperations?: Array; /** * The migration event encoded key associated with this loan account. If this account was imported, track which \'migration event\' they came from. */ migrationEventKey?: string; /** * Adjust the interest for the first repayment when the first repayment period is different than the repayment frequency */ modifyInterestForFirstInstallment?: boolean; /** * The notes about this loan account. */ notes?: string; /** * The key of the original rescheduled or refinanced loan account. */ originalAccountKey?: string; /** * The amount of interest that has been accrued during payment holidays in the loan account. */ paymentHolidaysAccruedInterest?: number; /** * The payment allocation method used by the loans defining how the payments get performed. */ paymentMethod?: LoanAccountPaymentMethodEnum; penaltySettings?: PenaltySettings; /** * The list with manual fees planned on the installments of the loan account. */ plannedInstallmentFees?: Array; prepaymentSettings?: PrepaymentSettings; principalPaymentSettings?: PrincipalPaymentAccountSettings; /** * The key for the type of loan product that this loan account is based on. */ productTypeKey: string; redrawSettings?: LoanAccountRedrawSettings; /** * The key pointing to where this loan account was rescheduled or refinanced to. This value is only not null if rescheduled. */ rescheduledAccountKey?: string; scheduleSettings: ScheduleSettings; /** * The encoded key of the settlement account. */ settlementAccountKey?: string; /** * The tax rate. */ taxRate?: number; /** * The date this loan account was terminated. */ terminationDate?: string; /** * The list of disbursement tranches available for the loan account. */ tranches?: Array; /** * Use interest accrued as total due for repayment when the repayment period is different than the repayment frequency */ useInterestAccruedAsTotalDueWhenIntervalIsDifferent?: boolean; } export const LoanAccountAccountHolderTypeEnum = { Client: 'CLIENT', Group: 'GROUP', } as const; export type LoanAccountAccountHolderTypeEnum = (typeof LoanAccountAccountHolderTypeEnum)[keyof typeof LoanAccountAccountHolderTypeEnum]; export const LoanAccountAccountStateEnum = { PartialApplication: 'PARTIAL_APPLICATION', PendingApproval: 'PENDING_APPROVAL', Approved: 'APPROVED', Active: 'ACTIVE', ActiveInArrears: 'ACTIVE_IN_ARREARS', Closed: 'CLOSED', ClosedWrittenOff: 'CLOSED_WRITTEN_OFF', ClosedRejected: 'CLOSED_REJECTED', } as const; export type LoanAccountAccountStateEnum = (typeof LoanAccountAccountStateEnum)[keyof typeof LoanAccountAccountStateEnum]; export const LoanAccountAccountSubStateEnum = { PartiallyDisbursed: 'PARTIALLY_DISBURSED', Locked: 'LOCKED', LockedCapping: 'LOCKED_CAPPING', Refinanced: 'REFINANCED', Rescheduled: 'RESCHEDULED', Withdrawn: 'WITHDRAWN', Repaid: 'REPAID', Rejected: 'REJECTED', WrittenOff: 'WRITTEN_OFF', Terminated: 'TERMINATED', } as const; export type LoanAccountAccountSubStateEnum = (typeof LoanAccountAccountSubStateEnum)[keyof typeof LoanAccountAccountSubStateEnum]; export const LoanAccountFuturePaymentsAcceptanceEnum = { NoFuturePayments: 'NO_FUTURE_PAYMENTS', AcceptFuturePayments: 'ACCEPT_FUTURE_PAYMENTS', AcceptOverpayments: 'ACCEPT_OVERPAYMENTS', } as const; export type LoanAccountFuturePaymentsAcceptanceEnum = (typeof LoanAccountFuturePaymentsAcceptanceEnum)[keyof typeof LoanAccountFuturePaymentsAcceptanceEnum]; export const LoanAccountLatePaymentsRecalculationMethodEnum = { OverdueInstallmentsIncrease: 'OVERDUE_INSTALLMENTS_INCREASE', LastInstallmentIncrease: 'LAST_INSTALLMENT_INCREASE', NoRecalculation: 'NO_RECALCULATION', } as const; export type LoanAccountLatePaymentsRecalculationMethodEnum = (typeof LoanAccountLatePaymentsRecalculationMethodEnum)[keyof typeof LoanAccountLatePaymentsRecalculationMethodEnum]; export const LoanAccountLockedAccountTotalDueTypeEnum = { BalanceAmount: 'BALANCE_AMOUNT', DueAmountOnLateInstallments: 'DUE_AMOUNT_ON_LATE_INSTALLMENTS', } as const; export type LoanAccountLockedAccountTotalDueTypeEnum = (typeof LoanAccountLockedAccountTotalDueTypeEnum)[keyof typeof LoanAccountLockedAccountTotalDueTypeEnum]; export const LoanAccountLockedOperationsEnum = { ApplyInterest: 'APPLY_INTEREST', ApplyFees: 'APPLY_FEES', ApplyPenalties: 'APPLY_PENALTIES', } as const; export type LoanAccountLockedOperationsEnum = (typeof LoanAccountLockedOperationsEnum)[keyof typeof LoanAccountLockedOperationsEnum]; export const LoanAccountPaymentMethodEnum = { Horizontal: 'HORIZONTAL', Vertical: 'VERTICAL', } as const; export type LoanAccountPaymentMethodEnum = (typeof LoanAccountPaymentMethodEnum)[keyof typeof LoanAccountPaymentMethodEnum];